Boto3 - 使用Amazon Cognito进行身份验证而不使用访问密钥

时间:2017-10-19 18:23:17

标签: python amazon-web-services authentication boto3 amazon-cognito

我正在开发一个python脚本,该脚本与使用Amazon Cognito(我不熟悉)的Web服务进行交互,作为身份验证后端,并且我在登录时遇到了困难。

我的主要问题是boto3需要AWS访问密钥和密钥(不提供我得到的" NoCredentialsError"),但由于此脚本将驻留在多个不受信任的计算机上,因此我不会这样做。出于明显的安全原因,我想存储/嵌入这些密钥。

这些不受信任的计算机可以访问的信息是:

  • 登录Web服务的用户名和密码
  • Cognito Identity Pool ID
  • Cognito用户池ID
  • Cognito客户ID

使用这些客户端的信息,是否可以使用Cognito正确进行身份验证?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:0)

是。致电get_credentials_for_identity()。它不需要任何凭据。使用方法如下:

import boto3
cognito = boto3.client('cognito-identity')
response = cognito.get_credentials_for_identity(IdentityId="id")

其中"id"是Cognito Identity Pool ID。 response应返回dict,包括临时访问密钥,秘密访问密钥,会话令牌和到期日期。