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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

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

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

所有前缀域都遵循此格式:prefix. authAWS 区域 codeamazoncognitocom自定义域用户池可以在您拥有的任何域上托管托管登录或托管用户界面页面。

注意

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

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

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

要使用添加应用程序客户端和用户池域 AWS Management Console,请参阅创建应用程序客户端

先决条件

在开始之前,您需要:

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

配置 Amazon Cognito 域前缀

您可以使用 AWS Management Console 或 AWS CLI 或 API 来配置用户池域。

Amazon Cognito console
配置域
  1. 导航至 “品牌” 下的 “域名” 菜单。

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

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

  4. 选择品牌推广版本。您的品牌版本适用于该域名的所有用户互动页面。您的用户池可以为所有应用程序客户端托管托管登录或托管用户界面品牌。

    注意

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

  5. 选择创建

CLI/API

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

配置用户池域
  • AWS 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

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

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

  • 用户池 API 操作:DescribeUserPoolDomain

删除域
  • AWS 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(应用程序客户端设置)页面上。