以管理员身份创建用户账户
用户池不仅仅是客户身份和访问管理(CIAM)用户目录,互联网上的任何人都可以在您的应用程序中注册用户配置文件。您可以禁用自助注册。您可能已经认识您的客户,并且只想接纳那些事先获得授权的客户。您可以使用私有 SAML 2.0 或 OIDC 身份提供者、通过导入用户、通过在注册时筛选用户,或者通过使用管理 API 操作创建用户,您可以在应用程序周围设置手动身份验证护栏。以管理员身份创建用户的工作流程可以通过编程方式进行,即当用户在其他系统中注册后对用户进行预配置,也可以在 Amazon Cognito 控制台中根据具体情况或测试进行配置。
当您以管理员身份创建用户时,Amazon Cognito 会为他们设置临时密码并发送欢迎或邀请消息。他们可以点击邀请消息中的链接进行首次登录、设置密码并确认其账户。以下页面说明了如何创建新用户和配置欢迎消息。有关使用用户池 API 和 AWS SDK 或 CDK 创建用户的更多信息,请参阅 AdminCreateUser。
创建用户池之后,您可以使用AWS Management Console以及 AWS Command Line Interface 或 Amazon Cognito API 创建用户。您可以为用户池中的新用户创建配置文件,并通过 SMS 或电子邮件向用户发送带有注册说明的欢迎消息。
开发人员和管理员可以执行以下任务:
-
通过使用 AWS Management Console或调用
AdminCreateUser
API 来创建新的用户配置文件。 -
设置用户属性值。
-
创建自定义属性。
-
在
AdminCreateUser
API 请求中设置不可变自定义属性的值。此功能在 Amazon Cognito 控制台中不可用。 -
指定临时密码或允许 Amazon Cognito 自动生成一个密码。
-
指定是否将提供的电子邮件地址和电话号码标记已针对新用户进行验证。
-
通过 AWS Management Console或自定义消息 Lambda 触发器为新用户指定自定义 SMS 和电子邮件邀请消息。有关更多信息,请参阅 使用 Lambda 触发器自定义用户池工作流。
-
指定是否通过 SMS、电子邮件或两者发送邀请消息。
-
通过调用
AdminCreateUser
API,并为RESEND
参数指定MessageAction
,向现有用户重新发送欢迎消息。注意
目前,无法使用 AWS Management Console执行此操作。
-
创建用户时禁止发送邀请消息。
-
为用户账户指定到期时间限制(最多 90 天)。
-
允许用户自行注册或要求只能由管理员添加新用户。
针对由管理员或开发人员创建的用户的身份验证流程
针对这些用户的身份验证流程包括提交新密码并提供必须属性的任何缺失值的额外步骤。下面列出了相关步骤;步骤 5、6 和 7 特定于这些用户。
-
用户通过提交其用户名和密码首次开始登录。
-
开发工具包调用
InitiateAuth(Username, USER_SRP_AUTH)
。 -
Amazon Cognito 返回具有加密盐和私有密钥块的
PASSWORD_VERIFIER
质询。 -
开发工具包执行 SRP 计算并调用
RespondToAuthChallenge(Username,
。<SRP variables>
, PASSWORD_VERIFIER) -
Amazon Cognito 返回
NEW_PASSWORD_REQUIRED
质询。此质询的主体包括用户的当前属性,以及用户池中当前在用户配置文件中没有值的任何必需属性。有关更多信息,请参阅 RespondToAuthChallenge。 -
系统提示用户输入新密码和必需属性的任何缺失值。
-
开发工具包调用
RespondToAuthChallenge(Username,
。<New password>
,<User attributes>
) -
如果用户需要 MFA 的第二安全要素,则 Amazon Cognito 将返回 SMS_MFA 质询并提交代码。
-
用户成功更改自己的密码并选择性地提供属性值或完成 MFA 之后,用户将登录,并且系统将发出令牌。
用户满足所有质询后,Amazon Cognito 服务会将用户标记为已确认,并为用户发出 ID 令牌、访问令牌和刷新令牌。有关更多信息,请参阅 了解用户池 JSON Web 令牌(JWT)。
在 AWS Management Console 中创建新用户
您可以设置用户密码要求、配置发送给用户的邀请和验证消息,以及使用 Amazon Cognito 控制台添加新用户。
设置密码策略并启用自行注册
您可以配置设置来降低密码复杂性,以及用户是否可以在用户池中使用公有 API 进行注册。
配置密码策略
-
导航到 Amazon Cognito 控制台
,选择用户池。 -
从列表中选择一个现有用户池,或创建一个用户池。
-
选择登录体验选项卡,然后查找密码策略。选择编辑。
-
选择自定义的密码策略模式。
-
选择密码最小长度。有关密码长度要求的限制,请参阅用户池资源配额。
-
选择密码复杂性要求。
-
选择管理员设置的密码应在多长时间内有效。
-
选择保存更改。
允许自助注册
-
导航到 Amazon Cognito 控制台
,选择用户池。 -
从列表中选择一个现有用户池,或创建一个用户池。
-
选择注册体验选项卡,然后查找自助注册。选择编辑。
-
选择是否启用自助注册。自助注册通常用于需要在用户池中注册新用户而不分发客户端密钥或 AWS Identity and Access Management(IAM)API 凭证的公有应用程序客户端。
禁用自助注册
如果您不启用自助注册,则必须通过使用 IAM API 凭证的管理 API 操作或通过联合提供商登录来创建新用户。
-
选择保存更改。
自定义电子邮件和 SMS 消息
自定义用户消息
当您邀请用户登录、注册用户账户或登录并提示用户进行多重身份验证(MFA)时,您可以自定义 Amazon Cognito 发送给用户的消息。
注意
当您在用户池中创建用户并邀请他们登录时将发送邀请消息。Amazon Cognito 将初始登录信息发送到用户的电子邮件地址或电话号码。
当用户在您的用户池中注册用户账户时将发送验证消息。Amazon Cognito 向用户发送代码。当用户向 Amazon Cognito 提供代码时,他们会验证自己的联系人信息并确认自己的账户以进行登录。验证代码的有效期为 24 小时。
当您在用户池中启用 SMS MFA,并且已配置 SMS MFA 的用户登录并提示输入 MFA 时,将发送 MFA 消息。
-
导航到 Amazon Cognito 控制台
,选择用户池。 -
从列表中选择一个现有用户池,或创建一个用户池。
-
选择消息收发选项卡,然后查找消息模板。选择验证消息、邀请消息或 MFA 消息,然后选择编辑。
-
自定义所选消息类型的消息。
注意
自定义消息时,必须包括消息模板中的所有变量。如果变量(例如,{####})不包括在内,您的用户将没有足够的信息来完成消息操作。
有关更多信息,请参阅消息模板。
-
-
验证消息
-
选择用于电子邮件消息的验证类型。代码验证将发送用户必须输入的数字代码。链接验证将发送一个链接,用户可以点击该链接以验证其联系人信息。用于链接消息变量中的文本显示为超链接文本。例如,使用变量 {##Click here##} 的消息模板在电子邮件中显示为单击此处。
-
输入用于电子邮件消息的电子邮件主题。
-
输入用于电子邮件消息的自定义电子邮件消息模板。您可以使用 HTML 自定义此模板。
-
输入用于 SMS 消息的自定义 SMS 消息模板。
-
选择保存更改。
-
-
邀请消息
-
输入用于电子邮件消息的电子邮件主题。
-
输入用于电子邮件消息的自定义电子邮件消息模板。您可以使用 HTML 自定义此模板。
-
输入用于 SMS 消息的自定义 SMS 消息模板。
-
选择保存更改。
-
-
MFA 消息
-
输入用于 SMS 消息的自定义 SMS 消息模板。
-
选择保存更改。
-
-
创建用户
创建用户
您可以从 Amazon Cognito 控制台为用户池创建新用户。通常,用户可以在设置密码后登录。要使用电子邮件地址登录,用户必须验证 email
属性。要使用电话号码登录,用户必须验证 phone_number
属性。要以管理员身份确认账户,您还可以使用 AWS CLI 或 API 或者使用联合身份提供商创建用户配置文件。有关更多信息,请参阅 Amazon Cognito API 参考。
-
导航到 Amazon Cognito 控制台
,选择用户池。 -
从列表中选择一个现有用户池,或创建一个用户池。
-
选择用户选项卡,然后选择创建用户。
-
检查用户池登录和安全要求以获取有关密码要求、可用的账户恢复方法和用户池的别名属性的指导。
-
选择您希望如何发送邀请消息。选择 SMS 消息和/或电子邮件消息。
注意
在您可以发送邀请消息之前,请在用户池的消息选项卡中使用 Amazon Simple Notification Service 和 Amazon Simple Email Service 配置发件人和 AWS 区域。收件人消息和数据费率适用。Amazon SES 单独向您收取电子邮件消息费用,Amazon SNS 单独向您收取 SMS 消息费用。
-
选择用于新用户的用户名。
-
选择您是要为用户创建密码,还是让 Amazon Cognito 生成密码。任何临时密码都必须遵守用户池密码策略。
-
选择创建。
-
选择用户选项卡,然后选择用户的用户名条目。添加和编辑用户属性和组成员资格。查看用户事件历史记录。