首页 > 解决方案 > AWS Cognito 如何验证我自己的 IdP 颁发的身份令牌?

问题描述

我有一个由移动应用程序和后端(Django)组成的系统,当前的身份验证工作流程:

现在我想允许移动应用程序直接访问 aws 资源(s3..etc),而不是通过后端,所以所需的工作流程是:

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html

但是,我不想使用亚马逊作为 idP(如上图),而是想创建自己的 idP,我的问题是:

标签: authenticationjwtamazon-cognitoopenid-connect

解决方案


关于 cognito 如何验证 id 令牌的部分答案,取自此处

  1. iss 参数必须与登录映射中使用的键匹配(例如 login.provider.com)。
  2. 签名必须有效。签名必须可以通过 RSA 公钥进行验证。
  3. 托管公钥的证书指纹与您的 OpenId Connect Provider 上的配置相匹配。
  4. 如果存在 azp 参数,请根据您的 OpenId Connect 提供程序中列出的客户端 ID 检查此值。
  5. 如果 azp 参数不存在,请根据您的 OpenId Connect 提供程序中列出的客户端 ID 检查 aud 参数

推荐阅读