当前位置: 首页 > 知识库问答 >
问题:

在python boto3中用openID salesforce使用AWS认知标识

翟凯
2023-03-14

我正在为一个应用程序执行POC,该应用程序将使用OpenID从Salesforce使用SSO,并将id_token传递给cognito用户标识,以获得S3的临时凭据。我已经在AWS/Salesforce上设置了所有的角色、服务和应用程序。当我对我的身份启用未经授权的访问时,我能够访问s3。但是每当我试图传递id_token以进行身份验证访问时,它就会抛出这个错误:

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

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
                     }
                     )

共有1个答案

伊羽
2023-03-14

显然,问题是provider_url,正如错误所暗示的那样。我只是简单地将login.salesforce.com,但我必须将其更改为id_token返回的发行方ID。我不得不在AWS访问提供程序、IAM和代码中更改它。

 类似资料:
  • 如何在后端管理(删除)AWS Cognito中的用户(使用节点)?

  • 我们正在研究为我们的应用程序使用用户池。我想用REST的方式来尝试API。https://docs.aws.amazon.com/cognito-user-identity-pools/lates/apireference/welcome.html中的文档不像其他文档那样有请求和响应示例。寻找SignUp、ResendConfirmationCode、ChangePassword和ConfirmS

  • 我想使用Cognito用户池作为标识提供者。我对我的用户进行身份验证。然后,我尝试通过以下步骤将该用户与用户池中的用户集成: http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-integration-user-pools-with-identity-pools.html 我已经用绳子代替了敏感的部分。我已

  • 有人知道我们是否可以增加1000s用户池的限制吗?

  • 我有一个AWS认知用户池,我试图在Android应用程序上添加Facebook登录。我的应用程序目前成功登录到facebook,但没有在我的用户池中创建用户。我已经按照这里的指示去做了

  • Im使用用户池,是否可能开发一个api来与AWS认知通信?还是仅仅为了与前端应用程序(android、ios、javascript web)进行通信?