MODHEX 编码iRule
本地数据>>iRules>>iRules 列表>>“创建”
复制粘贴下列iRule,它们可以把YubiKey序列号转换成MODHEX格式。在本文示例中,笔者检索了与Active Directory用户相关的YubiKey序列号,该Active Directory使用employeeID 属性。如果序列号已经保存在备用处,如一个数据群组或一个自定义LDAP/AD属性,那么就需要修改此iRule。
when ACCESS_POLICY_AGENT_EVENT {
if { [ACCESS::policy agent_id] eq "irule_apm_yubikey_modhex_encode" } {
# yubikey serial number
set yubikey_serial [ACCESS::session data get session.ad.last.attr.employeeID]
# modhex alphabet
array set modhex_alphabet { 0 c 1 b 2 d 3 e 4 f 5 g 6 h 7 i 8 j 9 k A l B n C r D t E u F v }
# remove leading zeros from serial number
set yubikey_serial [string trimleft $yubikey_serial 0]
# convert serial to hex and pad with zeros
set yubikey_serial [format %012X $yubikey_serial]
# split the string
set yubikey_serial [split $yubikey_serial ""]
# for each HEX change to MODHEX using alphabet
set yubikey_modhex ""
foreach index $yubikey_serial {
append yubikey_modhex $modhex_alphabet($index)
}
ACCESS::session data set session.custom.yubikey.modhex $yubikey_modhex
}
}
if { [ACCESS::policy agent_id] eq "irule_apm_yubikey_modhex_encode" } {
# yubikey serial number
set yubikey_serial [ACCESS::session data get session.ad.last.attr.employeeID]
# modhex alphabet
array set modhex_alphabet { 0 c 1 b 2 d 3 e 4 f 5 g 6 h 7 i 8 j 9 k A l B n C r D t E u F v }
# remove leading zeros from serial number
set yubikey_serial [string trimleft $yubikey_serial 0]
# convert serial to hex and pad with zeros
set yubikey_serial [format %012X $yubikey_serial]
# split the string
set yubikey_serial [split $yubikey_serial ""]
# for each HEX change to MODHEX using alphabet
set yubikey_modhex ""
foreach index $yubikey_serial {
append yubikey_modhex $modhex_alphabet($index)
}
ACCESS::session data set session.custom.yubikey.modhex $yubikey_modhex
}
}
访问配置文件和策略
访问策略>>访问配置文件>>访问配置文件列表>>“创建”
提供如下信息:
1. 姓名:profile_yubicloud
2. 语言:English
3. 使用默认设置。
选择“完成”以保存。
访问策略>>访问配置文件>>访问配置文件列表>>“编辑”
在“start”对象后的“fallback”上,添加“logon page”对象。
添加第三个域:
1. 类型:文本。
2. 贴出变量名称:yubiotp
3. 会话变量名称:yubiotp
4. 只读:否
在“自定义”部分,将“表单标头文本”设置为你需要的效果,并把“登录页面输入区域#3”改成有意义的值,如下。“Branch Rules”设为默认状态。别忘了点“保存”。