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

配置应用程序客户端设置

Original console
注意

只有在您编辑现有用户池时才会显示 General settings(常规设置)选项卡。

如果您希望使用内置托管页面注册和登录用户,或者希望使用 OAuth2.0 流,则必须在 General settings(常规设置)选项卡上,至少为应用程序配置一个身份提供商(IdP)。有关更多信息,请参阅 配置用户池应用程序客户端

为用户池指定应用程序客户端设置
  1. Enabled Identity Providers(启用的身份提供商)中,为您在 App Clients(应用程序客户端)选项卡中配置的应用程序选择您要使用的身份提供商。

  2. 输入您所需的 Callback URLs (回调 URL)(以逗号分隔)。这些 URL 应用到所有选定的身份提供商。

    注意

    您必须先在控制台中或者使用 Amazon CLI 或 API 来注册 URL,然后才能在应用程序中使用它们。

  3. 输入您所需的 Sign out URLs (注册 URL) (以逗号分隔)。

    注意

    您必须先在控制台中或者使用 CLI 或 API 来注册 URL,然后才能在应用程序中使用它们。

  4. OAuth 2.0 下,从以下选项中进行选择。有关更多信息,请参阅 应用程序客户端设置术语OAuth 2.0 规范

    • 对于 Allowed OAuth Flows (允许的 OAuth 流程),选择 Authorized code grant (授权代码授予)Implicit grant (隐式授予)。只有在您的应用程序需要代表自己而不是代表用户请求访问令牌时才选择 Client credentials (客户端凭证)

    • 对于 Allowed OAuth Scopes (允许的 OAuth 范围),选择您所需的范围。每个范围是包含一个或多个标准属性的集合。

    • 对于 Allowed Custom Scopes (允许的自定义范围),从您定义的任何自定义范围中选择所需的范围。自定义范围在 Resource Servers (资源服务器) 选项卡中进行定义。有关更多信息,请参阅 为您的用户池定义资源服务器

New console

如果您希望使用内置托管页面注册和登录用户,或者希望使用 OAuth2.0 流,则必须在 Sign-in experience(登录体验)选项卡上,至少为应用程序配置一个 Federated identity provider sign-in(联合身份提供商登录)身份提供商(IdP)。有关更多信息,请参阅 配置用户池应用程序客户端

配置应用程序
  1. App integration(应用程序集成)选项卡的 App clients(应用程序客户端)下,选择您的应用程序客户端。检查当前 Hosted UI(托管 UI)信息。

  2. Allowed callback URL(s)(允许的回调 URL)下选择 Add a callback URL(添加回调 URL)。回调 URL 是在用户成功登录之后将被重新导向的地址。

  3. Allowed sign-out URL(s)(允许的注销 URL)下选择 Add a sign-out URL(添加注销 URL)。注销 URL 是在您的用户注销后会被重新导向的地址。

  4. Identity providers(身份提供商)列表中添加至少一个提供商。

  5. OAuth 2.0 grant types(OAuth 2.0 授予类型)下,选择 Authorization code grant(授权代码授予)以返回随后更换为用户池令牌的授权代码。由于令牌绝不会直接向终端用户公开,因此它们不太可能被泄露。但是,后端需要自定义应用程序以将授权代码换成用户池令牌。出于安全原因,对于移动应用程序,强烈建议您将授权代码授予流程与代码交换的证明密钥(PKCE)一起使用。

  6. OAuth 2.0 grant types(OAuth 2.0 授予类型)下,选择 Implicit grant(隐式授予),以便从 Amazon Cognito 将用户池 JSON Web 令牌(JWT)返回给您。当没有可用于将授权代码更换为令牌的后端时,您可以使用此流程。它对于调试令牌也很有帮助。

  7. 您可以同时启用 Authorization code(授权代码)和 Implicit code(隐式代码),然后按需使用每个授予。如果未选中 Authorization code(授权代码)或 Implicit code(隐式代码)授权,并且您的应用程序客户端具有客户端密钥,您可以启用 Client credentials(客户端凭证)授权。只有在您的应用程序需要代表自己而不是代表用户请求访问令牌时才选择 Client credentials (客户端凭证)

  8. 选择您要为此应用程序客户端授权的 OpenID Connect scopes(OpenID Connect 范围)。

  9. 选择保存更改