在“Logon Page”对象后面的“fallback”分支,添加一个“AD Auth”对象
这一步可以验证姓名和密码。
提供如下信息:
1. 姓名:AD Auth
2. AAA服务器:/Common/dc1.test.lab (选择你的AD 服务器)
“Branch Rules”为默认。结束后选择“保存”。
“AD Auth”对象之后的操作成功分支上,添加一个“AD Query”对象
这一步检查用户的Active Directory账号是否有YubiKey。我们已经为每位用户把YubiKey的序列号添加到Active Directory。以前笔者出于方便会使用employeeID,但这里,推荐大家创建一个用于YubiKey序列号的自定义AD属性。
提供如下属性:
1. 姓名:YubiKey Provisioned
2. 搜索过滤:sAMAccountName=%{session.logon.last.username}
在“Branch Rules”下,删除默认,选择“添加Branch Rule”
更新Branch Rule设置:
姓名:Yes
表达式:expr{[mcgt{session.ad.last.attr.employeeID}]!=””}
选择“完成”,然后保存。
在“YubiKey Provisioned”对象的“Yes”分支里,添加“iRule Event”对象
这一步可以把“session.ad.last.attr.employeeID”(YubiKey 序列)从AD Query发送到名为“irule_apm_yubikey_modhex_encode”的iRule。iRule会返回一个用MODHEX编码的字符,并将其保存在“session.custom.yubikey.modhex”。我们需要MODHEX格式的YubiKey序列号,这样我们就可以把它与登录页面输入的原始YubiKey OTP进行比对。
提供如下信息:
1. 姓名:YubiKey MODHEX Encode
2. ID:irule_apm_yubikey_modhex_encode
现在,我们把MODHEX格式的YubiKey序列号与登录页面输入的YubiKey OTP进行比较。这一步可以验证用户是否正在使用他们的YubiKey抑或是被盗用。这个YubiKey OTP的前面12个字符是YubiKey序列号,这样就可以用“字符优先”的TCK命令进行验证。