具有外部OIDC IdP的AWS用户池身份验证

时间:2018-12-06 19:45:17

标签: amazon-web-services amazon-cognito oidc

我正在为一个应用程序设计节点/表达后端。已经使用Auth0和Passport设置了身份验证过程。但是我们现在需要使用AWS ...

我已经关注了这些文档,并成功测试了本文结尾处引用的自定义端点:https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-oidc-idp.html

但是从这里我想连接到身份池以访问AWS服务。我不断收到错误消息,尽管我可以在AWS“用户池”中看到用户,但他们没有出现在AWS“身份池”中。

我当时使用以下方式致电AWS:

AWS.config.credentials = new AWS.CognitoIdentityCredentials({
     IdentityPoolId: IDENTITY_POOL_ID,
     Logins: {
       "cognito-idp.<region>.amazonaws.com/<user-pool-id>":
         id_token_from_provider,
     },
   })

我一直得到的主要错误是“登录令牌无效:发行者与提供者ID不匹配”。

感谢您的帮助...

1 个答案:

答案 0 :(得分:0)

经过进一步的挖掘:通过Auth0 https://auth0.com/docs/integrations/integrating-auth0-amazon-cognito-mobile-apps

找到了一个不错的演练

我已经跳过了用户池集成,而只是将Cognito用于“身份池”

我的凭据映射也进行了一些更改:

 AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: "IDENTITY_POOL_ID",
    Logins: {
      "<PROVIDER_NAME_FROM_IAM": id_token,
    },
  })