电子邮件OTP身份验证
Email OTP是与Citrix ADC 12.1 build 51.x一起引入的。通过Email OTP方式,您可以使用发送到注册邮箱的一次性密码(OTP)进行身份验证。当您尝试在任何服务上进行身份验证时,服务器将向用户的注册电子邮件地址发送一个OTP。
要使用电子邮件OTP功能,您必须首先注册您的备用电子邮件ID。需要一个替代的电子邮件ID注册,以便OTP可以发送到该邮件ID,因为如果您的帐户被锁定或忘记了AD密码,您将无法访问主电子邮件ID。
您可以使用电子邮件OTP验证而不需要注册电子邮件ID,如果您已经提供了备用电子邮件ID作为某些AD属性的一部分。您可以在电子邮件操作中引用相同的属性,而不是在电子邮件地址部分指定备用电子邮件ID。
先决条件
配置Email OTP特性前,请先了解以下前提条件:
- Citrix ADC特性版本12.1构建51.28及以上
- Email OTP特性仅在nFactor认证流程中可用
- 欲知更多详情,请参阅https://support.citrix.com/pages/citrix-adc-authentication-how#nfactor
- 支持AAA-TM, Citrix Gateway(浏览器,本机插件,接收器)。
Active Directory设置
- 支持的版本为2016/2012和2008 Active Directory域功能级别
- “Citrix ADC ldapBind”用户名必须对用户的AD路径有写访问权
邮件服务器
为了使Email OTP解决方案生效,请确保SMTP服务器上启用了基于登录的身份验证。Citrix ADC只支持基于认证登录的电子邮件OTP工作。
为了确保启用基于身份验证的登录,在SMTP服务器上输入以下命令。如果启用了基于登录的身份验证,您会注意到出现文本AUTH login大胆的在输出。
限制
- 当认证后端类型为LDAP时,才支持该特性。
- 已经无法看到已注册的备用电子邮件ID。
- 只能更新来自KBA注册页面的备用电子邮件ID。
- KBA和Email OTP认证和注册不能成为认证流程中的首要因素。这是为了实现健壮的身份验证。
- 如果使用相同的认证LDAP动作,则必须为KBA和Alternate email ID配置相同的AD属性。
- 对于本机插件和Receiver,仅通过浏览器支持注册。
活动目录的配置
Email OTP使用Active Directory属性作为用户数据存储。
注册备用电子邮件ID后,它们被发送到Citrix ADC设备,该设备将其存储在AD用户对象中配置的KB属性中。
备用电子邮件ID被加密并存储在配置的AD属性中。
配置AD属性时,请考虑以下几点:
- 支持的属性名长度必须至少为128个字符。
- 属性类型必须为' DirectoryString '。
- 相同的AD属性可以用于本机OTP和KBA注册数据。
- LDAP管理员必须对选定的AD属性具有写访问权限。
使用现有的属性
本例中使用的属性是' Userparameters '。由于这是AD用户中已有的属性,因此不需要对AD本身进行任何更改。但是,必须确保没有使用该属性。
要确保未使用属性,请导航到ADSI然后选择user,右键单击该用户,向下滚动到属性列表。必须查看的属性值UserParameters作为没有设置.这表示该属性目前未被使用。
配置电子邮件OTP
电子邮件OTP解决方案包含以下两部分:
- 电子邮件注册
- 电子邮件验证
电子邮件注册
有两种方法可以注册用户的备用电子邮件ID:
- 以及KBA注册
- 只有电子邮件ID注册-这个方法从13.0 build 61支持。x及以上;12.1构建58。x和。
与KBA注册一起
KBA登记LoginSchema
导航安全> AAA -应用流量>登录模式>配置文件并点击添加KBA注册LoginSchema.
配置KBA注册身份验证架构。此LoginSchema生成后显示在注册过程中为最终用户配置的所有问题。在电子邮件注册部分,勾选“注册备用电子邮件”选项以注册用户的备用电子邮件ID。
在电子邮件注册部分,检查备用电子邮件注册注册备用电子邮件ID。
在上述KBA注册模式创建成功后,请使用CLI命令提示符进行以下配置。
绑定门户主题和证书到VPN全局。
bind authentication vserver authvs -portaltheme rfweb bind vpn global -userDataEncryptionKey c1
笔记:
上述证书绑定需要对AD属性中存储的用户数据(KB Q&A和注册的备用email ID)进行加密
创建LDAP认证策略。
添加身份验证ldapaction ldap -serverip 10.102.2.2 -serverport 636 -ldapbase“dc = aaatm-test,dc = com”-ldapbinddn管理员--ldapbinddnpassword freebsd -ldaploginname samaccountname -sectype ssl添加身份验证策略ldap -rule true-action ldap <! - callcopy - >
创建KBA注册Loginschema和PolicyLabel。
add authentication loginSchema Registrationschema -authenticationSchema /nsconfig/ loginSchema / loginSchema /KBARegistrationSchema.xml[这是在前一节中创建的身份验证模式。add authentication policylabel Registrationfactor -loginSchema Registrationschema add authentication ldapAction ldap_registration -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd - ldapploginname samAccountName -secType SSL -KBAttribute userParameters-alternateEmailAttr userParameters add authentication Policy ldap_registration -rule true -action ldap_registration绑定认证policylabel Registrationfactor -policyName ldap_registration -priority 1 -gotoPriorityExpression NEXT
绑定认证策略到认证虚拟服务器。
绑定认证vserver authvs - policy ldap -priority 1 - nextfactor Registrationfactor - gotopriorityexpression NEXT
一旦配置了前几节中提到的所有步骤,您必须看到下面的GUI屏幕。例如,通过URL访问,https://lb1.server.com/您将看到一个初始登录页面,该页面只需要LDAP登录凭据。
使用有效凭据登录后,您将看到如下用户注册页面。
点击提交以便用户注册成功并创建会话。
仅电子邮件ID
在上述KBA注册模式创建成功后,使用CLI命令提示符进行以下配置:
绑定门户主题和证书到VPN全局。
bind authentication vserver authvs -portaltheme rfweb bind vpn global -userDataEncryptionKey c1
笔记:
上述证书绑定需要对AD属性中存储的userdata (KB Q&A和alternate mail ID Registered)进行加密。
创建LDAP认证策略。
添加身份验证ldapaction ldap -serverip 10.102.2.2 -serverport 636 -ldapbase“dc = aaatm-test,dc = com”-ldapbinddn管理员--ldapbinddnpassword freebsd -ldaploginname samaccountname -sectype ssl添加身份验证策略ldap -rule true-action ldap <! - callcopy - >
创建“邮件注册”的LDAP认证策略。
add authentication ldapAction ldap_email_registration -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd - ldapploginname samAccountName -secType SSL -KBAttribute userParameters -alternateEmailAttr userParameters add authentication Policy ldap_email_registration-rule true -action ldap_email_registration
创建电子邮件注册登录模式和PolicyLabel。
添加身份验证loginschema ockeemailregistration -authenticationschema /nsconfig/loginschema/loginschema/altemailregister.xml添加身份验证policylabelabel email_registration_factemailregistration绑定验证policylabel email_fregistration_factor -policyname ldap_email_registration -priority 1-gootoporityexpression next <! - caltcopy - >
绑定认证策略到认证虚拟服务器。
绑定认证vserver authvs -policy ldap -priority 1 -nextFactor email_Registration_factor -gotoPriorityExpression NEXT
一旦配置了前几节中提到的所有步骤,您必须看到下面的GUI屏幕。例如,通过URL访问,https://lb1.server.com/您将看到一个初始登录页面,该页面只需要LDAP登录凭据,然后是另一个电子邮件注册页面。
电子邮件验证
执行以下步骤以获取电子邮件analmaition。
绑定门户主题和证书到VPN全局
bind authentication vserver authvs -portaltheme rfweb bind vpn global -userDataEncryptionKey c1
笔记:
上述证书绑定需要对AD属性中存储的userdata (KB Q&A和注册的备用email ID)进行解密。
创建LDAP认证策略。LDAP必须是电子邮件验证因素的优先因素,因为在电子邮件OTP验证中需要用户的电子邮件ID或备用电子邮件ID
add authentication ldapAction ldap1 - serverip 10.2.2.2 - serverport 636 - ldapbase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com - ldapbinddnpassword freebsd - ldploginname samAccountName - sectype SSL - kbattribute userParameters - alternateemailattr userParameters add authentication Policy ldap1 -rule true -action ldap1
创建电子邮件身份验证策略
添加身份验证电子邮件电子邮件-Unername sqladmin@aaa.com -password freebsd-cregrypted -encryptmethod encmthd_3 -serverurl“smtps://10.2.3.3:25”-Content“OTP为$ Code”-DefaultAuthenticationGroup EmailGRP -EmailAddress“AAA.User。属性(\“rectrate_mail \”)“添加身份验证策略电子邮件-rule true -action电子邮件<! - yourcopy - >
在前面提到的命令中,电子邮件地址是在KBA注册期间提供的备用电子邮件ID用户。
创建Email OTP验证policyLabel。
add authentication policylabel email_Validation_factor绑定authentication policylabel email_Validation_factor -policyName email -priority 1 -gotoPriorityExpression NEXT
绑定认证策略到认证虚拟服务器
绑定认证vserver authvs - policy ldap1 -priority 1 - nextfactor email_Validation_factor - gotopriorityexpression NEXT
配置了上一节中提到的所有步骤后,您必须看到以下GUI屏幕以获取电子邮件OTP验证。例如,通过URL访问,https://lb1.server.com/您将看到一个初始登录页面,该页面只需要LDAP登录凭据,然后是EMAIL OTP Validation页面。
笔记:
在LDAP策略中,重要的是配置alternateEmailAttr,使其能够从AD属性查询用户的电子邮件id。
故障排除
在分析日志之前,建议将日志级别设置为调试级别,如下所示。
set syslogparams -loglevel DEBUG
注册 - 成功场景
以下条目表示成功的用户注册。
"ns_aaa_insert_hash_keyValue_entry key:kba_registered value:1" Nov 14 23:35:51 10.102.229.76 11/14/2018:18:05:51 GMT 0- ppp -1: default SSLVPN Message 1588 0:“ns_aaa_insert_hash_keyValue_entry关键:alternate_mail价值:eyJ2ZXJzaW9uIjoiMSIsICJraWQiOiIxbk1oWjN0T2NjLVVvZUx6NDRwZFhxdS01dTA9IiwgImtleSI6IlNiYW9OVlhKNFhUQThKV2dDcmJSV3pxQzRES3QzMWxINUYxQ0tySUpXd0h4SFRIdVlWZjBRRTJtM0ZiYy1RZmlQc0tMeVN2UHpleGlJc2hmVHZBcGVMZjY5dU5iYkYtYXplQzJMTFF1M3JINFVEbzJaSjdhN1pXUFhqbUVrWGdsbjdUYzZ0QWtqWHdQVUI3bE1FYVNpeXhNN1dsRkZXeWtNOVVnOGpPQVdxaz0iLCAiaXYiOiI4RmY3bGRQVzVKLVVEbHV4IiwgImFsZyI6IkFFUzI1Nl9HQ00ifQ = =。oKmvOalaOJ3a9z7BcGCSegNPMw = =“< !——NeedCopy >
注册失败场景
在用户登录页面上,您会看到以下错误信息:“Cannot Complete your request”。这表明用于加密用户数据的VPN global的certkey丢失。
7月31日08:51:46 10.102.229.79 07/31/2020:03:21:4 6 GMT 0-PPE-1:默认SSLVPN消息696 0:“Encrypt UserData:没有加密证书绑定VPN Global“7月31日08:51:46 10.102.229.79 07/31/2020:03:21:46 GMT 0-PPE-1:默认SSLVPN消息697 0:”KBA寄存器:备用电子邮件ID加密Blob Length是零AaaUser“<! - CentCopy - >
电子邮件验证-成功的场景
以下条目表示Email OTP验证成功。
"NFactor: Successfully completed email auth, nextfactor is pwd_reset"
电子邮件验证-失败的场景
现象描述在用户登录页面,提示“Cannot Complete your request”错误。这表示邮件服务器上没有启用基于登录的认证,需要启用相同的认证。
/home/build/ rs_130_36_15_rtm /usr.src/netscaler/aaad/pocomail.cpp[100]: void ThreadWorker_SendMailJob(SMTPJob*) 0-215: [POCO][JobID: 8]SMTP Configuration is Secure../home/build/ rs_130_36_15_rtm /usr.src/netscaler/aaad/pocomail.cpp[108]: void ThreadWorker_SendMailJob(SMTPJob*) 0-215: [POCO][JobID: 8] First login succeeded Wed Mar 4 17:16:28 2020 /home/build/ rs_130_36_15_rtm /usr.src/netscaler/aaad/naaad.c[697]: main 0-0: timer 2 firing…/home/build/ rs_130_36_15_rtm /usr.src/netscaler/aaad/pocomail.cpp[127]: void ThreadWorker_SendMailJob(SMTPJob*) 0-0: [Poco - error][JobID: 8] Poco SMTP Mail Dispatch Failed. cpp[127]: void ThreadWorker_SendMailJob(SMTPJob*) 0-0: [Poco - error][JobID: 8] Poco SMTP Mail Dispatch失败。SMTP类型:1、SMTPException:出现异常。SMTP例外:邮件服务不支持登录认证:250-smtprelay.citrix.com Hello [10.9.154.239] 250- size 62914560 250- pipelining 250- dsn 250- enhancedstatuscodes 250- 8bitmime 250- binarymime 250 CHUNKING