ADC

自助服务密码重置

自助服务密码重置是一种基于 Web 的密码管理解决方案。它在 NetScaler 设备和 NetScaler Gateway 的身份验证、授权和审核功能中均可用。它消除了用户对管理员协助更改密码的依赖。

自助服务密码重置使最终用户能够在以下情况下安全地重置或创建密码:

  • 用户忘记了密码。
  • 用户无法登录。

到目前为止,如果最终用户忘记了 AD 密码,最终用户必须联系 AD 管理员重置密码。有了自助服务密码重置功能,最终用户就可以自己重置密码,而无需管理员介入。

以下是使用自助服务密码重置的一些好处:

  • 通过自动密码更改机制提高了工作效率,该机制消除了用户等待密码重置的准备时间。
  • 借助自动密码更改机制,管理员可以专注于其他关键任务。

下图说明了重置密码的自助服务密码重置流程。

SSPR 工作流程

要使用自助服务密码重置,必须通过 NetScaler 身份验证、授权和审计或 NetScaler Gateway 虚拟服务器注册用户。

自助服务密码重置提供以下功能:

  • 新用户自助注册。您可以自行注册为新用户。
  • 配置基于知识的问题。作为管理员,您可以为用户配置一组问题。
  • 备用电子邮件 ID 注册。注册时必须提供备用电子邮件 ID。OTP 已发送到备用电子邮件 ID,因为用户忘记了主要电子邮件 ID 密码。

    注意:

    从版本 12.1 的内部版本 51.xx 开始,可以单独注册备用电子邮件 ID。引入了一种新的登录架构 AltEmailRegister.xml ,仅用于注册备用电子邮件 ID。以前,只能在进行 KBA 注册时进行备用电子邮件 ID 注册。

  • 重置忘记的密码。用户可以通过回答基于知识的问题来重置密码。作为管理员,您可以配置和存储问题。

自助服务密码重置提供以下两种新的身份验证机制:

  • 基于知识的问题和答案。在选择基于知识的问答架构之前,您必须注册到 NetScaler 身份验证、授权和审计或 NetScaler Gateway。

  • 电子邮件 OTP 身份验证。OTP 将发送到用户在自助服务密码重置注册期间注册的备用电子邮件 ID。

注意

这些身份验证机制可用于自助服务密码重置用例,也可用于所有类似任一现有身份验证机制的身份验证目的。

必备条件

在配置自助服务密码重置之前,请查看以下先决条件:

  • NetScaler 功能版本 12.1,版本 50.28。
  • 支持的版本为 2016、2012 和 2008 AD 域功能级别。
  • 绑定到 NetScaler 的 ldapBind 用户名必须具有对用户 AD 路径的写入权限。

    注意

    仅 nFactor 身份验证流程支持自助服务密码重置。有关更多信息,请参阅 通过 NetScaler 进行 nFactor 身份验证

限制

以下是自助服务密码重置存在的一些限制:

  • LDAPS 支持自助服务密码重置。仅当身份验证后端为 LDAP(LDAP 协议)时,自助服务密码重置才可用。
  • 用户无法看到已注册的备用电子邮件 ID。
  • 基于知识的问题和答案以及电子邮件 OTP 身份验证与注册不是身份验证流程的首要因素。
  • 对于本机插件和 Receiver,仅支持通过浏览器进行注册。
  • 用于自助服务密码重置的最小证书大小为 1024 字节,并且必须遵循 x.509 标准。
  • 仅支持 RSA 证书进行自助服务密码重置。

Active Directory 设置

NetScaler 基于知识的问题和答案以及电子邮件 OTP 使用 AD 属性来存储用户数据。您必须配置 AD 属性来存储问题和答案以及备用电子邮件 ID。NetScaler 设备将其存储在 AD 用户对象中配置的 KB 属性中。配置 AD 属性时,请注意以下事项:

  • AD 属性必须支持最大长度为 32k 的值。
  • 属性类型必须是“DirectoryString”。
  • 单个 AD 属性可用于基于知识的问题和答案以及备用电子邮件 ID。
  • 单个 AD 属性不能用于本机 OTP 和基于知识的问题和答案或备用电子邮件 ID 注册。
  • NetScaler LDAP 管理员必须对所选 AD 属性具有写入权限。

此外,您还可以使用现有的 AD 属性。但是,请确保您计划使用的属性未作他用。例如,userParameters 是 AD 用户中您可以使用的现有属性。要验证此属性,请执行以下步骤:

  1. 导航到 ADSI > 选择用户
  2. 右键单击并向下滚动到属性列表。
  3. CN=testuser 属性窗口窗格中,您可以看到未设置 userParameters 属性。

用户参数

自助服务密码重置注册

要在 NetScaler 设备上实施自助服务密码重置解决方案,必须执行以下操作:

  • 注册自助服务密码重置(基于知识的问题和答案/电子邮件 ID)。
  • 用户登录页面(用于密码重置,包括基于知识的问题和答案、电子邮件 OTP 验证和最终密码重置因素)。

提供的一组预定义问题目录将作为 JSON 文件。作为管理员,您可以选择问题并通过 NetScaler GUI 创建自助服务密码重置注册登录架构。您可以选择以下任一选项:

  • 最多选择四个系统定义的问题。
  • 为用户提供用于自定义两个问题和答案的选项。

从 CLI 查看基于知识的问题的默认 JSON 文件

JSON 文件

注意

  • NetScaler Gateway 默认包含一组系统定义的问题。管理员可以编辑“KBQuestions.json”文件以包含他们选择的问题。

  • 系统定义的问题仅以英语显示,这些问题不提供语言本地化支持。

使用 GUI 完成基于知识的问题和答案注册登录架构

  1. 导航到 Security(安全)> AAA - Application Traffic(AAA - 应用程序流量)> Login Schema(登录架构)

  2. Login Schema(登录架构)页面上,单击 Profiles(配置文件)。
  3. 单击 Add KBA Registration Login Schema(添加 KBA 注册登录架构)。
  4. 在“创建身份验证登录架构”页上,在“架构名称”字段中指定一个名称

    架构名称

  5. 选择选定的问题并将其移动到 Configured(已配置)列表中。

  6. User Defined Questions(用户定义的问题)部分中,您可以在 Q1 和 A1 字段中提供问题和答案。

  7. Email Registration(电子邮件注册)部分中,选中 Register Alternate Email(注册备用电子邮件)选项。您可以从用户注册登录页面注册备用电子邮件 ID 以接收 OTP。

    用户定义的问题

  8. 单击 Create(创建)。登录架构一旦生成,便会在注册过程中向最终用户显示所有已配置的问题。

使用 CLI 创建用户注册和管理工作流程

在开始配置之前,需要提供以下信息:

  • 分配给身份验证虚拟服务器的 IP 地址
  • 与已分配的 IP 地址对应的 FQDN
  • 身份验证虚拟服务器的服务器证书

要设置设备注册和管理页面,您需要身份验证虚拟服务器。下图说明了用户注册情况。

设备注册

创建身份验证虚拟服务器

  1. 配置身份验证虚拟服务器。该服务器必须为 SSL 类型,并确保将身份验证虚拟服务器与门户主题绑定在一起。

    > add authentication vserver <vServerName> SSL <ipaddress> <port>
    > bind authentication vserver <vServerName> [-portaltheme<string>]
    
  2. 绑定 SSL 虚拟服务器证书密钥对。

    > bind ssl vserver <vServerName> certkeyName <string>
    

    示例:

    > add authentication vserver authvs SSL 1.2.3.4 443
    > bind authentication vserver authvs -portaltheme RFWebUI
    > bind ssl vserver authvs -certkeyname c1
    

创建 LDAP 登录操作

    > add authentication ldapAction <name> {-serverIP <ipaddr|ipv6\_addr|> \[-serverPort <port>] \[-ldapBase <BASE> ] \[-ldapBindDn <AD USER>] \[-ldapBindDnPassword <PASSWORD>] \[-ldapLoginName <USER FORMAT>]

注意

您可以将任何身份验证策略配置为首要因素。

示例

    > add authentication ldapAction ldap_logon_action -serverIP 1.2.3.4 -serverPort 636 -ldapBase "OU=Users,DC=server,DC=com" -ldapBindDn administrator@ctxnsdev.com -ldapBindDnPassword PASSWORD -ldapLoginName samAccountName -serverport 636 -sectype SSL -KBAttribute userParameters

为 LDAP 登录创建身份验证策略

    > add authentication policy <name> <rule> [<reqAction]

示例

    > add authentication policy ldap_logon -rule true -action ldap_logon_action

创建基于知识的问答注册操作

ldapAction 中引入了两个新参数。KBAttribute 用于 KBA 身份验证(注册和验证),alternateEmailAttr 用于注册用户的备用电子邮件 ID。

    > add authentication ldapAction <name> {-serverIP  <ipaddr|ipv6\_addr|> \[-serverPort <port>] \[-ldapBase <BASE> ] \[-ldapBindDn <AD USER>] \[-ldapBindDnPassword <PASSWORD>] \[-ldapLoginName <USER FORMAT>] \[-KBAttribute <LDAP ATTRIBUTE>] \[-alternateEmailAttr <LDAP ATTRIBUTE>]

示例

    > add authentication ldapAction ldap1 -serverIP 1.2.3.4 -sectype ssl -serverPort 636 -ldapBase "OU=Users,DC=server,DC=com" -ldapBindDn administrator@ctxnsdev.com -ldapBindDnPassword PASSWORD -ldapLoginName samAccountName -KBAttribute userParameters -alternateEmailAttr userParameters

显示用户注册和管理屏幕

“KBARegistrationSchema.xml”登录架构用于向最终用户显示用户注册页面。使用以下 CLI 显示登录架构。

> add authentication loginSchema <name> -authenticationSchema <string>

示例

> add authentication loginSchema kba_register -authenticationSchema /nsconfig/loginschema/LoginSchema/KBARegistrationSchema.xml

我们建议使用两种方式显示用户注册和管理屏幕:URL 或 LDAP 属性。

使用 URL

如果 URL 路径包含“/register”(例如 https://lb1.server.com/register),则使用该 URL 显示用户注册页面。

创建和绑定注册策略

> add authentication policylabel user_registration -loginSchema kba_register
> add authentication policy ldap1 -rule true -action ldap1
> bind authentication policylabel user_registration -policy ldap1 -priority 1

当 URL 包含“/register”时,将身份验证策略绑定到身份验证、授权和审核虚拟服务器

> add authentication policy ldap_logon -rule "http.req.cookie.value(\"NSC_TASS\").contains(\"register\")" -action ldap_logon
> bind authentication vserver authvs -policy ldap_logon -nextfactor user_registration -priority 1

将证书全局绑定到 VPN

bind vpn global -userDataEncryptionKey c1

注意

  • 您必须绑定证书才能对存储在 AD 属性中的用户数据(知识库问答和注册的备用电子邮件 ID)进行加密。

  • 如果证书过期,则必须绑定新证书并重新执行注册。

使用属性

您可以将身份验证策略绑定到身份验证、授权和审核虚拟服务器,以检查用户是否已注册。在此流程中,基于知识的问答注册因素之前的任何上述策略都必须是配置了 KBA 属性的 LDAP。这是为了使用 AD 属性来检查是否已注册 AD 用户。

重要提示

规则“AAA.USER.ATTRIBUTE(“kba_registered”).EQ(“0”)”会强制新用户注册基于知识的问题和答案及备用电子邮件。

创建身份验证策略以检查用户是否尚未注册

> add authentication policy switch_to_kba_register -rule "AAA.USER.ATTRIBUTE(\"kba_registered\").EQ(\"0\")" -action NO_AUTHN
> add authentication policy first_time_login_forced_kba_registration -rule true -action ldap1

创建注册策略标签并绑定到 LDAP 注册策略

> add authentication policylabel auth_or_switch_register -loginSchema LSCHEMA_INT
> add authentication policylabel kba_registration -loginSchema kba_register

> bind authentication policylabel auth_or_switch_register -policy switch_to_kba_register -priority 1 -nextFactor kba_registration
> bind authentication policylabel kba_registration -policy first_time_login_forced_kba_registration -priority 1

将身份验证策略绑定到身份验证、授权和审核虚拟服务器

bind authentication vserver authvs -policy ldap_logon -nextfactor auth_or_switch_register -priority 2

用户注册和管理验证

配置完前面各节中提到的所有步骤后,必须看到以下 UI 屏幕。

  1. 输入 lb 虚拟服务器 URL;例如 https://lb1.server.com。此时将显示登录屏幕。

    虚拟服务器 URL

  2. 输入用户名和密码。单击 Submit(提交)。此时将显示用户注册屏幕。

    Credentials

  3. 从下拉列表中选择首选问题,然后输入 答案
  4. 单击 Submit(提交)。此时将显示用户注册成功屏幕。

配置用户登录页面

在此示例中,管理员假定第一个因素是 LDAP 登录(最终用户忘记了密码)。然后,用户遵循基于知识的问题和答案注册以及电子邮件 ID OTP 验证,最后使用自助服务密码重置来重置密码。

您可以使用任何身份验证机制进行自助服务密码重置。我们建议您使用基于知识的问题和答案以及电子邮件 OTP,或两者兼而有之,以保护隐私并避免任何非法的用户密码重置。

在开始配置用户登录页面之前,必须执行以下操作:

  • 负载平衡器虚拟服务器的 IP
  • 负载平衡器虚拟服务器的对应 FQDN
  • 负载平衡器的服务器证书

使用 CLI 创建负载平衡器虚拟服务器

要访问内部网站,您必须创建一个 LB 虚拟服务器来处理后端服务,并将身份验证逻辑委派给身份验证虚拟服务器。

> add lb vserver lb1 SSL 1.2.3.162 443 -persistenceType NONE -cltTimeout 180 -AuthenticationHost otpauth.server.com -Authentication ON -authnVsName authvs

> bind ssl vserver lb1 -certkeyname c1

要在负载平衡中表示后端服务,请执行以下操作:

> add service iis_backendsso_server_com 1.2.3.4 HTTP 80

> bind lb vserver lb1 iis_backendsso_server_com

创建禁止将身份验证作为第一个策略的 LDAP 操作

> add authentication ldapAction ldap3 -serverIP 1.2.3.4 -serverPort 636 -ldapBase "OU=Users,DC=server,DC=com" -ldapBindDn administrator@ctxnsdev.com -ldapBindDnPassword PASSWORD -ldapLoginName samAccountName -authentication disabled

> add authentication policy ldap3 -rule aaa.LOGIN.VALUE("passwdreset").EQ("1") -action ldap3

创建基于知识的问题和答案验证操作

要在自助服务密码重置流程中进行基于知识的问答验证,您需要将 LDAP 服务器配置为禁用身份验证。

> add authentication ldapAction <LDAP ACTION NAME> -serverIP <SERVER IP> -serverPort <SERVER PORT> -ldapBase <BASE> -ldapBindDn <AD USER> -ldapBindDnPassword <PASSWORD> -ldapLoginName <USER FORMAT> -KBAttribute  <LDAP ATTRIBUTE> - alternateEmailAttr <LDAP ATTRIBUTE> -authentication DISABLED

示例

> add authentication ldapAction ldap2 -serverIP 1.2.3.4 -serverPort 636 -ldapBase "OU=Users,DC=server,DC=com" -ldapBindDn administrator@ctxnsdev.com -ldapBindDnPassword PASSWORD -ldapLoginName samAccountName -KBAttribute userParameters -alternateEmailAttr userParameters -authentication disabled

使用 CLI 为基于知识的问答验证创建身份验证策略

add authentication policy kba_validation -rule true -action ldap2

创建电子邮件验证操作

LDAP 必须是电子邮件验证因素的优先考虑因素,因为您需要用户的电子邮件 ID 或备用电子邮件 ID 作为自助服务密码重置注册的一部分。

注意:

要使用电子邮件 OTP 解决方案,请确保在 SMTP 服务器上启用了基于登录的身份验证。

要确保启用基于登录的身份验证,请在 SMTP 服务器上键入以下命令。如果启用了基于登录的身份验证,您会注意到文本 AUTH LOGIN 在输出中以粗体显示。

root@ns# telnet <IP address of the SMTP server><Port number of the server>
ehlo

示例:

root@ns# telnet 10.106.3.66 25
Trying 10.106.3.66...
Connected to 10.106.3.66.
Escape character is '^]'.
220 E2K13.NSGSanity.com Microsoft ESMTP MAIL Service ready at Fri, 22 Nov 2019 16:24:17 +0530
ehlo
250-E2K13.NSGSanity.com Hello [10.221.41.151]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH LOGIN
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST

有关如何启用基于登录的身份验证的信息,请参阅 https://support.microfocus.com/kb/doc.php?id=7020367

使用 CLI 配置电子邮件操作

add authentication emailAction emailact -userName sender@example.com -password <Password> -serverURL "smtps://smtp.example.com:25" -content "OTP is $code"

示例:

add authentication emailAction email -userName testmail@gmail.com -password 298a34b1a1b7626cd5902bbb416d04076e5ac4f357532e949db94c0534832670 -encrypted -encryptmethod ENCMTHD_3 -serverURL "smtps://10.19.164.57:25" -content "OTP is $code" -emailAddress "aaa.user.attribute(\"alternate_mail\")"

注意

配置中的“emailAddress”参数是 PI 表达式。因此,此参数配置用于从会话中获取默认用户电子邮件 ID 或已注册的备用电子邮件 ID。

使用 GUI 配置电子邮件 ID

  1. 导航到 Security(安全)> AAA - Application Traffic(AAA - 应用程序流量) > Policies(策略)> Authentication(身份验证)> Advanced Policies(高级策略)> Actions(操作)> Authentication Email Action(身份验证电子邮件操作)。单击添加
  2. Create Authentication Email Action(创建身份验证电子邮件操作)页面上,填写详细信息,然后单击 Create(创建)。

使用 CLI 创建用于电子邮件验证的身份验证策略

add authentication policy email_validation -rule true -action email

为密码重置因素创建身份验证策略

add authentication policy ldap_pwd -rule true -action ldap_logon_action

通过登录架构呈现 UI

有三个 LoginSchema 用于重置自助服务密码以重置密码。请使用以下 CLI 命令查看这三个登录架构:

root@ns# cd  /nsconfig/loginschema/LoginSchema/
root@ns# ls -ltr | grep -i password
-r--r--r--  1 nobody  wheel  2088 Nov 13 08:38 SingleAuthPasswordResetRem.xml
-r--r--r--  1 nobody  wheel  1541 Nov 13 08:38 OnlyUsernamePasswordReset.xml
-r--r--r--  1 nobody  wheel  1391 Nov 13 08:38 OnlyPassword.xml

使用 CLI 创建单个身份验证密码重置

> add authentication loginSchema lschema_password_reset -authenticationSchema "/nsconfig/loginschema/LoginSchema/SingleAuthPasswordResetRem.xml"

> add authentication loginSchemaPolicy lpol_password_reset -rule true -action lschema_password_reset

通过策略标签创建基于知识的问题和答案及电子邮件 OTP 验证因素

如果第一个因素是 LDAP 登录,则可以使用以下命令为下一个因素创建基于知识的问题和答案以及电子邮件 OTP 策略标签。

> add authentication loginSchema lschema_noschema -authenticationSchema noschema

> add authentication policylabel kba_validation -loginSchema lschema_noschema

> add authentication policylabel email_validation -loginSchema lschema_noschema

通过策略标签创建密码重置因素

您可以使用以下命令通过策略标签创建密码重置因素。

> add authentication loginSchema lschema_noschema -authenticationSchema noschema

> add authentication policylabel password_reset -loginSchema lschema_noschema

> bind authentication policylabel password_reset -policyName ldap_pwd -priority 10 -gotoPriorityExpression NEXT

使用以下命令将基于知识的问题和答案及电子邮件策略绑定到先前创建的策略。

> bind authentication policylabel email_validation -policyName email_validation -nextfactor password_reset -priority 10 -gotoPriorityExpression NEXT

> bind authentication policylabel kba_validation -policyName kba_validation -nextfactor email_validation -priority 10 -gotoPriorityExpression NEXT

绑定流

您必须在 LDAP 登录的身份验证策略下创建 LDAP 登录流程。在此流程中,用户单击第一个 LDAP 登录页面上显示的忘记密码链接,然后单击 KBA 验证,然后单击 OTP 验证,最后单击密码重置页面。

bind authentication vserver authvs -policy ldap3 -nextfactor kba_validation -priority 10 -gotoPriorityExpression NEXT

绑定所有 UI 流

bind authentication vserver authvs -policy lpol_password_reset -priority 20 -gotoPriorityExpression END

用户登录工作流以重置密码

以下是用户需要重置密码时的用户登录工作流程:

  1. 输入 lb 虚拟服务器 URL;例如 https://lb1.server.com。此时将显示登录屏幕。

    登录屏幕

  2. 单击忘记密码。验证屏幕显示针对AD用户注册的最多六个问题和答案中的两个问题。

  3. 回答问题,然后单击登录。此时将显示电子邮件 OTP“验证”屏幕,您必须在其中输入通过已注册的备用电子邮件 ID 收到的 OTP。

  4. 输入电子邮件 OTP。电子邮件 OTP 验证成功后,将显示密码重置页面。

  5. 输入一个新密码并确认该新密码。单击 Submit(提交)。密码重置成功后,将显示密码重置成功屏幕。

现在,您可以使用重置密码登录。

故障排除

NetScaler 提供了一个选项来解决您在使用自助服务密码重置时可能遇到的一些基本问题。以下部分将帮助您解决可能会在特定区域中出现的一些问题。

NS 日志

在分析日志之前,我们建议您使用 set syslogparams -loglevel DEBUG 命令将日志级别设置为进行调试。启用此参数后,日志将打印在 ns.log 文件中。

注册

以下消息表示已成功注册用户。

"ns_aaa_insert_hash_keyValue_entry key:kba_registered value:1"
Nov 14 23:35:51 <local0.debug> 10.102.229.76 11/14/2018:18:05:51 GMT  0-PPE-1 : default SSLVPN Message 1588 0 :  "ns_aaa_insert_hash_keyValue_entry key:alternate_mail value:eyJ2ZXJzaW9uIjoiMSIsICJraWQiOiIxbk1oWjN0T2NjLVVvZUx6NDRwZFhxdS01dTA9IiwgImtleSI6IlNiYW9OVlhKNFhUQThKV2dDcmJSV3pxQzRES3QzMWxINUYxQ0tySUpXd0h4SFRIdVlWZjBRRTJtM0ZiYy1RZmlQc0tMeVN2UHpleGlJc2hmVHZBcGVMZjY5dU5iYkYtYXplQzJMTFF1M3JINFVEbzJaSjdhN1pXUFhqbUVrWGdsbjdUYzZ0QWtqWHdQVUI3bE1FYVNpeXhNN1dsRkZXeWtNOVVnOGpPQVdxaz0iLCAiaXYiOiI4RmY3bGRQVzVKLVVEbHV4IiwgImFsZyI6IkFFUzI1Nl9HQ00ifQ==.oKmvOalaOJ3a9z7BcGCSegNPMw=="

基于知识的问题和答案验证

以下消息表示已成功验证基于知识的问题和答案。

"NFactor: Successfully completed KBA Validation, nextfactor is email"

电子邮件 ID 验证

以下消息表示已成功重置密码。

"NFactor: Successfully completed email auth, nextfactor is pwd_reset"

使用 nFactor 可视化工具配置 SSPR

在我们开始使用 nFactor 可视化工具配置 SSPR 之前,我们需要添加以下 LDAP 服务器:

  1. 启用了身份验证的标准 LDAP 服务器,用于对用户进行身份验证和指定 AD 属性。

  2. 用于在未启用身份验证的情况下提取用户参数的 LDAP 服务器。

  3. 用于在未启用身份验证的情况下通过 SSL 重置密码的 LDAP 服务器。此外,必须在此服务器中定义用于存储用户详细信息的 AD 属性。

  4. 用于用户注册的 LDAP 服务器,启用身份验证并指定 AD 属性。

  5. 下图显示了完整的流程:

    可视化工具工作流程

  6. 使用以下 CLI 命令全局绑定证书:

    bind vpn global -userDataEncryptionKey Wildcard
    

现在已添加 LDAP 服务器,请使用可视化工具继续进行 nFactor 配置

  1. 导航到安全 > AAA > 应用程序流量 > nFactor 可视化工具 > nFactor 流,单击添加,然后单击框内的加号图标。

  2. 为流指定名称。

  3. 单击作为默认 架构的添加 架构。单击登录架构页面上的添加

  4. 为架构命名后,选择架构。单击右上角的选择以选择架构。

    选择架构

  5. 单击创建确定

添加默认架构后,我们必须配置以下三个流:

  • 用户注册:用于显式注册用户
  • 密码重置:用于重置密码
  • 普通登录+注册用户检查:如果用户已注册并输入正确的密码,则用户已登录。如果用户未注册,则会将用户带到注册页面。

用户注册

接下来我们将从添加架构后离开的位置继续。

  1. 单击 Add Policy(添加策略),这将检查用户是否在尝试显式注册。

  2. 单击创建,然后单击添加

  3. 单击绿色的“+”图标,将下一个身份验证因素添加到用户注册流程中。

    添加下一个因素名称

  4. 单击 Create(创建)。

  5. 为 User-Registration-1 因素单击添加策略

  6. 创建身份验证策略。此策略将提取用户信息并在将其重定向到注册页面之前对其进行验证。

  7. 单击创建,然后单击添加

  8. 现在,单击绿色的“+”图标为用户注册创建另一个因素,然后单击“创建”。单击添加架构

    输入另一个因素名称

  9. 为用户注册创建身份验证登录架构。

  10. 单击“添加策略”并创建身份验证策略。

  11. 单击 Create(创建),然后单击 Add(添加)。

密码重置

  1. 单击蓝色“+”图标为父 SSPR 因素添加另一个策略(密码重置流)。

    密码重置策略

  2. 在“选择身份验证策略”页中,单击“添加”以创建身份验证策略或在下拉列表中选择现有策略。如果用户在登录页面上单击“忘记密码”,则会触发此策略。

  3. 单击添加

  4. 单击密码重置身份验证策略的绿色“+”图标以添加下一个因素。

    密码重置的身份验证策略

  5. 单击 Create(创建)。

  6. 单击 添加策略 为先前创建的因素创建身份验证策略。此因素用于验证用户。

  7. 单击添加

  8. 单击绿色的“+”图标为密码因素流添加下一个因素。这会验证为重置密码而提供的答案。单击 Create(创建)。

  9. 单击 添加策略 为因素添加身份验证策略。

  10. 从下拉列表中选择相同的身份验证策略,然后单击“添加”。

    选择密码重置策略

普通登录 + 注册用户检查

  1. 单击蓝色“+”图标将另一个身份验证策略(普通登录流)添加到父 SSPR 因素中。

    添加策略以登录流程

  2. 单击 添加,为普通用户登录创建身份验证策略。

  3. 单击创建,然后单击添加

    添加决策块

  4. 单击先前创建的策略的绿色“+”图标以添加下一个因素,然后选择 创建决策块 选项并为决策块提供名称。

  5. 单击 Create(创建)。

  6. 单击添加策略为此决策因素创建身份验证策略。

  7. 单击创建,然后单击添加。这会检查用户是否已注册。

  8. 单击决策区块上的绿色“+”图标,将用户指向注册策略,然后选择“连接到现有因素”选项。

    注册策略

  9. 从“连接到 ”下拉列表中选择注册因素,然后单击“创建”。

  10. 现在,单击决策区块图块上的蓝色“+”图标,将其他策略添加到决策区块。此政策适用于注册用户完成身份验证。

  11. 单击 添加策略 以创建身份验证策略。

  12. 单击 Create(创建),然后单击 Add(添加)。