繁体   English   中英

在Python Boto3中将AWS Cognito Identity与OpenID Salesforce结合使用

[英]Using AWS cognito Identity with openID salesforce in python boto3

我正在为一个应用程序进行POC,该应用程序将使用来自Openforce的Salesforce的SSO,并将id_token传递给Cognito用户身份以获取s3的临时凭据。 我已经在AWS / Salesforce上设置了所有角色,服务和应用程序。 启用未经授权的身份访问后,我便可以访问s3。 但是,每当我尝试通过id_token进行身份验证访问时,都会引发此错误:

botocore.errorfactory.NotAuthorizedException:调用GetId操作时发生错误(NotAuthorizedException):无效的登录令牌。 发行者与providerName不匹配

我在这里关注教程https://aws.amazon.com/blogs/security/building-an-app-using-amazon-cognito-and-an-openid-connect-identity-provider/

我正在使用python Boto3。 这是我当前的代码:

import boto3

id_token='aaaaaa.bbbbbbbb.cccccccc' #Got from the url salesforce sends after successful authentication
client = boto3.client('cognito-identity', 'us-east-2')
resp = client.get_id(AccountId='123456789123', IdentityPoolId='us-east-2:xxxxxxx-yyyy-zzz-hhhhh-jj888hhhh',
                     Logins={
                         'provider_url': id_token
                     }
                     )

任何帮助将不胜感激。

显然问题出在provider_url,提示错误。 我只是将login.salesforce.com放进去,而我不得不将其更改为id_token作为发行者ID返回的内容。 我必须在IAM的AWS访问提供程序以及代码中进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM