AWS::Cognito::UserPoolClient - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::Cognito::UserPoolClient

AWS::Cognito::UserPoolClient 资源指定 Amazon Cognito 用户池客户端。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::Cognito::UserPoolClient", "Properties" : { "AllowedOAuthFlows" : [ String, ... ], "AllowedOAuthFlowsUserPoolClient" : Boolean, "AllowedOAuthScopes" : [ String, ... ], "AnalyticsConfiguration" : AnalyticsConfiguration, "CallbackURLs" : [ String, ... ], "ClientName" : String, "DefaultRedirectURI" : String, "ExplicitAuthFlows" : [ String, ... ], "GenerateSecret" : Boolean, "LogoutURLs" : [ String, ... ], "PreventUserExistenceErrors" : String, "ReadAttributes" : [ String, ... ], "RefreshTokenValidity" : Integer, "SupportedIdentityProviders" : [ String, ... ], "UserPoolId" : String, "WriteAttributes" : [ String, ... ] } }

YAML

Type: AWS::Cognito::UserPoolClient Properties: AllowedOAuthFlows: - String AllowedOAuthFlowsUserPoolClient: Boolean AllowedOAuthScopes: - String AnalyticsConfiguration: AnalyticsConfiguration CallbackURLs: - String ClientName: String DefaultRedirectURI: String ExplicitAuthFlows: - String GenerateSecret: Boolean LogoutURLs: - String PreventUserExistenceErrors: String ReadAttributes: - String RefreshTokenValidity: Integer SupportedIdentityProviders: - String UserPoolId: String WriteAttributes: - String

属性

AllowedOAuthFlows

允许的 OAuth 流。

设置为 code 可启动代码授权流程,该流程提供授权代码作为响应。该代码可用来与令牌终端结点交换访问令牌。

设置为 implicit 可指定客户端应直接获取访问令牌(以及可选的 ID 令牌,基于范围而定)。

设置为 client_credentials 以指定客户端应使用 client 和 client_secret 的组合,从令牌终端节点获取访问令牌(以及基于范围的可选 ID 令牌)。

必需:否

类型:字符串列表

最高3

Update requires: No interruption

AllowedOAuthFlowsUserPoolClient

如果在与 Cognito 用户池进行交互时允许客户端遵循 OAuth 协议,则设置为 true。

必需:否

类型:布尔值

Update requires: No interruption

AllowedOAuthScopes

允许的 OAuth 范围。OAuth 提供的可能值为:phoneemailopenidprofile。AWS 提供的可能值为:aws.cognito.signin.user.admin。还支持在资源服务器中创建的自定义范围。

必需:否

类型:字符串列表

最高50

Update requires: No interruption

AnalyticsConfiguration

Amazon Pinpoint 分析配置,用于收集此用户池的指标。

注意

在 Pinpoint 不可用的区域,Cognito 用户池仅支持将事件发送到 us-east-1 中的 Amazon Pinpoint 项目。在 Pinpoint 可用的区域,Cognito 用户池支持将事件发送到同一区域内的 Amazon Pinpoint 项目。

必需:否

类型AnalyticsConfiguration

Update requires: No interruption

CallbackURLs

身份提供商允许的重定向(回调)URL 的列表。

重定向 URI 必须:

  • 是绝对 URI。

  • 请注册到授权服务器。

  • 不包含片段组件。

请参阅 OAuth 2.0 – 重定向终端节点

Amazon Cognito 要求使用 HTTPS 而不是 HTTP,用于测试目的的 http://localhost 除外。

也支持应用程序回调 URL,如 myapp://example。

必需:否

类型:字符串列表

最高100

Update requires: No interruption

ClientName

要创建的用户池客户端的客户端名称。

必需:否

类型:字符串

最低1

最高128

模式[\w\s+=,.@-]+

Update requires: No interruption

DefaultRedirectURI

默认的重定向 URI。必须在 CallbackURLs 列表中。

重定向 URI 必须:

  • 是绝对 URI。

  • 请注册到授权服务器。

  • 不包含片段组件。

请参阅 OAuth 2.0 – 重定向终端节点

Amazon Cognito 要求使用 HTTPS 而不是 HTTP,用于测试目的的 http://localhost 除外。

也支持应用程序回调 URL,如 myapp://example。

必需:否

类型:字符串

最低1

最高1024

模式[\p{L}\p{M}\p{S}\p{N}\p{P}]+

Update requires: No interruption

ExplicitAuthFlows

用户池客户端支持的身份验证流程。不建议使用不带 ALLOW_ 前缀的流名称,而应使用带有 ALLOW_ 前缀的新名称。请注意,带有 ALLOW_ 前缀的值不能与不带 ALLOW_ 前缀的值一起使用。

有效值包括:

  • ALLOW_ADMIN_USER_PASSWORD_AUTH:启用基于管理员的用户密码身份验证流程 ADMIN_USER_PASSWORD_AUTH。该设置替代 ADMIN_NO_SRP_AUTH 设置。通过使用该身份验证流程,Cognito 在请求中接收密码,而不是使用 SRP(安全远程密码协议)协议验证密码。

  • ALLOW_CUSTOM_AUTH:启用基于 Lambda 触发器的身份验证。

  • ALLOW_USER_PASSWORD_AUTH:启用基于用户密码的身份验证。在该流程中,Cognito 在请求中接收密码,而不是使用 SRP 协议验证密码。

  • ALLOW_USER_SRP_AUTH:启用基于 SRP 的身份验证。

  • ALLOW_REFRESH_TOKEN_AUTH:启用身份验证流程以刷新令牌。

必需:否

类型:字符串列表

Update requires: No interruption

GenerateSecret

用于指定是否要为正在创建的用户池客户端生成密码的布尔值。

必需:否

类型:布尔值

Update requires: Replacement

LogoutURLs

身份提供商允许的注销 URL 的列表。

必需:否

类型:字符串列表

最高100

Update requires: No interruption

PreventUserExistenceErrors

在身份验证、账户确认和密码恢复期间,当用户在用户池中不存在时,可以使用该设置选择 Cognito API 返回哪些错误和响应。如果设置为 ENABLED 并且用户不存在,身份验证将返回一个错误以指示用户名或密码不正确,账户确认和密码恢复将返回一个响应以指示向模拟的目标发送了代码。如果设置为 LEGACY,并且用户在用户池中不存在,这些 API 将返回 UserNotFoundException 异常。

必需:否

类型:字符串

允许的值ENABLED | LEGACY

Update requires: No interruption

ReadAttributes

读取属性。

必需:否

类型:字符串列表

Update requires: No interruption

RefreshTokenValidity

时间限制(以天为单位),超过该限制后,刷新令牌将不再有效且无法使用。

必需:否

类型:整数

最低0

最高315360000

Update requires: No interruption

SupportedIdentityProviders

该客户端支持的身份提供商的提供商名称列表。支持以下项:COGNITOFacebookGoogleLoginWithAmazon

必需:否

类型:字符串列表

Update requires: No interruption

UserPoolId

要在其中创建用户池客户端的用户池的用户池 ID。

必需:是

类型:字符串

最低1

最高55

模式[\w-]+_[0-9a-zA-Z]+

Update requires: Replacement

WriteAttributes

应用程序客户端可对其进行写入的用户池属性。

如果您的应用程序客户端允许用户通过身份提供商登录,则该数组必须包含映射到身份提供商属性的所有属性。当用户通过身份提供商登录您的应用程序时,Amazon Cognito 会更新映射的属性。如果您的应用程序客户端缺少对映射属性的写入访问权限,则 Amazon Cognito 在尝试更新该属性时将导致出现错误。有关更多信息,请参阅指定适用于用户池的身份提供程序属性映射

必需:否

类型:字符串列表

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回 Amazon Cognito 用户池客户端 ID,例如 1h57kf5cpq17m0eml12EXAMPLE

For more information about using the Ref function, see Ref.