Amazon Cognito
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

指定用户池应用程序设置

应用程序是用户池中的一个实体,它有权调用未经身份验证的 API (不具备已经过身份验证的用户的 API),例如用于注册、登录和处理忘记的密码的 API。要调用这些 API,您需要应用程序客户端 ID 和可选的客户端私有密钥。您有责任确保任何应用程序客户端 ID 或密钥的安全,以便只有经过授权的客户端应用程序才能调用这些未经身份验证的 API。

您可以为用户池创建多个应用程序,通常一个应用程序对应于该应用程序的平台。例如,您可以为服务器端应用程序和其他 Android 应用程序创建一个应用程序。每个应用程序都有各自的应用程序客户端 ID。

创建应用程序时,您可以选择为该应用程序创建一个私有密钥。如果为应用程序创建了一个私有密钥,则必须提供该私有密钥才能使用应用程序。以 JavaScript 编写的基于浏览器的应用程序可能不需要带有私有密钥的应用程序。

私有密钥在应用程序创建后即无法更改。如果您要轮换正在使用的私有密钥,可以创建一个具备新私有密钥的新应用程序。您也可以删除应用程序,以便阻止使用该应用程序客户端 ID 的应用程序的访问。

创建应用程序

  1. Create a user poolApps 选项卡中,选择 Add an app client

  2. 指定 App client name

  3. 指定应用程序的 Refresh token expiration (days)。默认值是 30。您可以将其更改为 1 到 3650 之间的任何值。

  4. 默认情况下,用户池会为您的应用程序生成一个客户端密钥。如果您不希望出现这种情况,请清除 Generate client secret

  5. 如果您的应用程序是需要开发人员凭证的服务器应用程序 (使用签名版本 4) 并且不使用安全远程协议 (SRP) 身份验证,请选择 Enable sign-in API for server-based authentication (ADMIN_NO_SRP_AUTH) 以启用服务器端身份验证。有关更多信息,请参阅 管理员身份验证流程

  6. 默认情况下,用户池会允许您的应用程序读取和写入所有属性。如果您要为应用程序设置不同的权限,请执行以下步骤。

    1. 选择 Set attribute read and write permissions

    2. 您可以通过以下两种方式设置读取和写入权限:

      • 选择一个或多个范围。每个范围都是一组标准属性。有关更多信息,请参阅标准 OIDC 范围列表。

      • 选择单个标准或自定义属性。

    注意

    您无法删除任何应用程序中写入权限的必需属性。

  7. 选择 Create app client

  8. 如果您希望创建另一个应用程序,请选择 Add an app

  9. 创建完您需要的所有应用程序后,选择 Save changes

您还可以使用 CLI 命令 create-user-pool-clientupdate-user-pool-client 以及 API CreateUserPoolClientUpdateUserPoolClient,在用户池上创建和更新应用程序客户端。