daa*_*166 6 python amazon-web-services amazon-cognito boto3
我已经被困在以下问题上很长一段时间了。在 Python 中,我希望用户使用 srp 身份验证从 AWS 认知身份池中检索基于他们的用户名和密码的令牌。有了这个令牌,我希望用户将数据上传到 s3。
这是我使用的代码的一部分(来自权证库):https : //github.com/capless/warrant
self.client = boto3.client('cognito-idp', region_name="us-east-1")
response = boto_client.initiate_auth(
AuthFlow='USER_SRP_AUTH',
AuthParameters=auth_params,
ClientId=self.client_id
)
def get_auth_params(self):
auth_params = {'USERNAME': self.username,
'SRP_A': long_to_hex(self.large_a_value)}
if self.client_secret is not None:
auth_params.update({
"SECRET_HASH":
self.get_secret_hash(self.username,self.client_id, self.client_secret)})
return auth_params
Run Code Online (Sandbox Code Playgroud)
但是,我不断得到:
botocore\auth.py", line 352, in add_auth raise NoCredentialsError
botocore.exceptions.NoCredentialsError: Unable to locate credentials
Run Code Online (Sandbox Code Playgroud)
通过在 .aws/credentials 文件中添加凭据,我能够摆脱这个错误。但这不符合本计划的目的。似乎授权或 botocore 库中存在错误,它继续尝试使用凭证文件中的 AWS 访问密钥 ID 和 AWS 秘密访问密钥,而不是使用给定的凭证(用户名和密码)。
任何帮助表示赞赏
我加入了 Cognito 团队。发起身份验证是未经身份验证的调用,因此不需要您提供 AWS 凭证。服务端点不会验证这些调用的 sigv4 签名。
话虽如此,某些客户端库具有某些特殊性,因为您需要提供一些虚拟凭据,否则客户端库将引发异常。但是,您可以为凭据提供任何内容。
| 归档时间: |
|
| 查看次数: |
1744 次 |
| 最近记录: |