Amazon Cognito
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

SAML 用户池 IdP 身份验证流程

您可以直接从您的用户池集成基于 SAML 的 IdP。

  1. 应用程序通过将用户定向到由 AWS 托管的 UI 来开始注册和登录过程。移动应用程序可以使用 Web 视图显示由 AWS 托管的页。

  2. 通常,您的用户池将通过用户的电子邮件地址确定用户的身份提供商。

    或者,如果您的应用程序在将用户定向到用户池之前已收集信息,它可以通过查询参数来向 Amazon Cognito 提供这些信息。

  3. 您的用户将重定向到身份提供商。

  4. IdP 将对用户进行身份验证 (如有必要)。如果 IdP 发现用户具有活动会话,则 IdP 将跳过身份验证以提供单一登录 (SSO) 体验。

  5. IdP 以 POST 方式将 SAML 断言发送到 Amazon Cognito 服务。

  6. 可在 AWS 管理控制台中或使用 AWS CLI 或 Amazon Cognito API 调用创建或更新用户的配置文件。

  7. 在验证 SAML 断言并收集断言中的用户属性 (声明) 后,Amazon Cognito 将 OIDC 令牌返回到当前已登录用户的应用程序。

下图显示了此过程的身份验证流程:

 将 SAML IdP 用于用户池的身份验证流程图。

当用户进行身份验证后,用户池将返回 ID、访问权限和刷新令牌。ID 令牌是用于身份管理的标准 OIDC 令牌,而访问令牌是标准 OAuth 2.0 令牌。虽然 ID 和访问令牌将在 1 小时后过期,但应用程序可使用刷新令牌来获取新令牌,而无需让用户重新进行身份验证。作为开发人员,您可以选择刷新令牌的到期时间,从而设定用户需要重新进行身份验证的频率。如果用户已通过外部 IdP 进行身份验证 (即,他们是联合身份用户),则应用程序仍会将 Amazon Cognito 令牌与刷新令牌结合使用来决定用户重新进行身份验证之前经过的时间,无论外部 IdP 的令牌何时到期。当 ID 和访问令牌过期后,用户池将自动使用刷新令牌来获取新的 ID 和访问令牌。如果刷新令牌也已过期,则服务器将通过由 AWS 托管的应用程序中的页面来自动启动身份验证。