使用 Amazon Cognito 前缀域进行托管登录 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon Cognito 前缀域进行托管登录

托管登录的默认体验托管在 Amazon 拥有的域中。这种方法的进入门槛较低(选择一个前缀名称即可生效),但该方法没有自定义域所具有的值得信任的特征。Amazon Cognito 域选项和自定义域选项在费用上没有差异。唯一的差异是您引导用户访问的 Web 地址中的域。对于第三方 IdP 重定向和客户端凭证流,托管域几乎没有明显的影响。自定义域更适合以下情况,即,您的用户使用托管登录进行登录,并且会与不匹配应用程序域的身份验证域进行交互。

托管的 Amazon Cognito 域有您选择的前缀,但托管在根域 amazoncognito.com。以下是示例:

https://cognitoexample.auth.ap-south-1.amazoncognito.com

所有前缀域都遵循以下格式:prefix.auth.Amazon Web Services 区域 code.amazoncognito.com自定义域用户池可以在您拥有的任何域中对托管登录或托管 UI 页面进行托管。

注意

为了增强您的 Amazon Cognito 应用程序的安全性,用户池端点的父域将在公共后缀列表 (PSL) 中注册。PSL 可帮助用户的网络浏览器对您的用户池端点及其设置的 Cookie 建立一致的理解。

用户池父域采用以下格式。

auth.Region.amazoncognito.com auth-fips.Region.amazoncognito.com

要使用 Amazon Web Services 管理控制台添加应用程序客户端和用户池域,请参阅创建应用程序客户端

先决条件

在开始之前,您需要:

  • 用户池和应用程序客户端。有关更多信息,请参阅用户池入门

配置 Amazon Cognito 域前缀

您可以使用 Amazon Web Services 管理控制台、Amazon CLI 或 API 来配置用户池域。

Amazon Cognito console
配置域
  1. 导航到品牌下的菜单。

  2. 选择旁边的操作,然后选择创建 Cognito 域。如果您已配置用户池前缀域,请先选择删除 Cognito 域,然后再创建新的自定义域。

  3. 输入可用的域前缀,以与 Amazon Cognito 域结合使用。有关设置自定义域的信息,请参阅使用您自己的域进行托管登录

  4. 选择品牌版本。您的品牌版本适用于该域的所有用户交互页面。您的用户池可以针对所有应用程序客户端,对托管登录或托管 UI 品牌进行托管。

    注意

    您可以拥有自定义域和前缀域,但是 Amazon Cognito 仅为自定义域处理 /.well-known/openid-configuration 端点。

  5. 选择创建

CLI/API

使用以下命令可以创建域前缀并将其分配到您的用户池。

配置用户池域
  • Amazon CLI: aws cognito-idp create-user-pool-domain

    示例:aws cognito-idp create-user-pool-domain --user-pool-id <user_pool_id> --domain <domain_name> --managed-login-version 2

  • 用户池 API 操作:CreateUserPoolDomain

获取有关域的信息
  • Amazon CLI: aws cognito-idp describe-user-pool-domain

    示例:aws cognito-idp describe-user-pool-domain --domain <domain_name>

  • 用户池 API 操作:DescribeUserPoolDomain

删除域
  • Amazon CLI: aws cognito-idp delete-user-pool-domain

    示例:aws cognito-idp delete-user-pool-domain --domain <domain_name>

  • 用户池 API 操作:DeleteUserPoolDomain

验证登录页面

  • 验证登录页面是否可从您的 Amazon Cognito 托管域访问。

    https://<your_domain>/login?response_type=code&client_id=<your_app_client_id>&redirect_uri=<your_callback_url>

您的域显示在 Amazon Cognito 控制台的 Domain name (域名) 页面上。您的应用程序客户端 ID 和回调 URL 将显示在 App client settings(应用程序客户端设置)页面上。