配置用户池应用程序客户端 - Amazon Cognito
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

配置用户池应用程序客户端

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

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

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

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

创建应用程序客户端(控制台)

  1. 在用户池仪表板上,选择创建用户池

  2. 输入池名称

  3. 选择 Review defaults

  4. 选择添加应用程序客户

  5. 选择 Add an app client

  6. 输入应用程序客户端名

  7. 指定应用程序的刷新令牌过期。默认值是 30。您可以将其更改为 1 小时到 10 年之间的任何值。

  8. 指定应用程序的访问令牌过期。默认值是 1 小时。您可以将其更改为从 5 分钟到 24 小时之间的任意值。

  9. 指定应用程序的ID 令牌过期。默认值是 1 小时。您可以将其更改为从 5 分钟到 24 小时之间的任意值。

    重要

    如果您使用托管 UI 并设置令牌不到一小时,最终用户将能够根据其会话 cookie 获取新令牌,该 cookie 当前固定在一小时内。

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

  11. 如果您的服务器应用需要开发人员凭据(使用Signature Version 4),并且不使用安全远程密码 (SRP) 身份验证选择启用用于身份验证的管理 API 的用户名密码身份验证(允许 _ 管理员 _ 用户 _ 密码 _ 身份验证)以启用服务器端身份验证。有关更多信息,请参阅 管理员身份验证流程

  12. Unst防止用户存在错误中,选择传统或者启用。有关更多信息,请参阅 。管理错误响应

  13. 默认情况下,用户池会允许您的应用程序读取和写入所有属性。如果您要为应用程序设置不同的权限,请执行以下步骤或选择创建应用程序客户以完成操作。

    1. 选择设置属性读取和写入权限

    2. 请执行以下任一操作以设置读取和写入权限:

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

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

    注意

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

  14. 选择 Create app client

  15. 如果您希望创建另一个应用程序,请选择添加应用程序

  16. 创建完您需要的所有应用程序后,选择返回池详细信息,更新任何其他字段,然后选择创建池

在用户池(API、AWS CLI)中创建和更新应用程序客户端

请执行下列操作之一: