在“Branch Rules”下选择“Add Branch Rule”
更新Branch Rule的设置:
1. 名称:YubiKey Serial Match
2. 表达式“expr { [string first [mcget {session.custom.yubikey.modhex}] [mcget {session.logon.last.yubiotp}]] == 0 }
选择“完成”,然后保存。
在YubiKey MODHEX Encode对象后面的YubiKey Serial Match上,添加一个Variable Assign对象。
这一步会把YubiCloud Auth ID 分配到“session.logon.last.username”,并把登录页面上的YubiKey OTP分配给“session.logon.last.password”。这些会话变量随后被分配到之前创建的HTTP Auth AAA对象aaa_yubicloud所使用的id和otp HTTP参数。
提供下列属性:
名称:Assign YubiCloud Variables
选择“Add new entry”>>”change” 添加变量分配。
变量赋值1:
1. 自定义变量:session.logon.last.username
2. 自定义表达式:expr{“1111”} (把1111改为你的YubiCloud Auth ID)
变量赋值2:
1. 自定义变量:session.logon.last.password
2. 自定义表达式:expr { [mcget {session.logon.last.yubiotp}] }
选择“完成”,然后保存。Branch Rules使用默认设置。
在“Assisign YubiCloud Variables”对象的“fallback”分支上,添加一个“HTTP Auth”对象
这样可以把HTTP Get发送到YubiCloud API 以验证登录页面的YubiKey OTP。
提供下列属性:
1. 名称:YubiCloud Auth
2. AAA Server:/Common/aaa_yubicloud
Branch Rules使用默认设置。保存退出。
这样就媲美访问策略了。它应该和下图类似:
接下来把“访问配置文件”附加到虚拟服务器做测试。
结论
这是通过APM轻松添加双因素验证的典型案例。F5提供了一个10人同时使用的APM试验版本,且每个BIG-IP都颁发了LTM许可证。