谷歌身份验证器的一次性验证
本教程描述了如何将ISAM for Mobile基于上下文的访问(CBA)策略应用于IBM DataPower Gateway(以下称为DataPower)。 它扩展了本系列第1部分中描述的功能。 您将开发一种移动访问策略,该策略要求在尝试“高价值”交易时执行身份验证。 使用的身份验证机制是一次性密码(OTP)的一种形式。 此机制是作为政策执行义务触发的。 触发时,OTP表示强大的第二因素身份验证,可为移动事务以及对高价值业务API和数据的访问提供高级别的身份保证和风险缓解。
您将学到以下内容:
- 使用自动化脚本配置DataPower和ISAM for Mobile之间的集成。
- 为移动CBA策略开发一个简单的ISAM。
- 将可执行策略附加到DataPower上受ISAM反向代理保护的资源上。
先决条件
您需要以下产品才能完成本教程:
- IBM DataPower Gateway V7.1或更高版本
- ISAM for Mobile V8.0.0.5或更高版本
- IBM MobileFirst™V6或V7
本教程基于此处记录的ISAM和MobileFirst集成。 本教程使用与指南中相同的示例移动应用程序。
高级架构审查
为了方便起见,在此重复了本教程系列的第1部分的高级解决方案体系结构。 图1描绘了高级体系结构,其中显示了请求流。
图1.高层架构
- 移动应用程序将请求发送到DataPower设备上的反向代理,该代理检查请求是否存在有效会话。 否则,它提示用户输入用户ID和密码。
- 然后,用户将其凭据提交到DataPower设备上的反向代理,该代理将针对ISAM for Mobile设备上的策略服务器和LDAP服务器发送对身份验证和授权的请求。
- 成功进行身份验证和授权后,反向代理会生成一个HTTP标头,以声明身份并将其传递给IBM MobileFirst服务器,该服务器还将在允许访问受保护的后端资源之前验证身份。
- 由于用户会话有效,因此任何后续请求都不会提示进行身份验证。
- 如果用户在经过身份验证的会话或请求流中尝试执行“高价值”交易,并且当前身份验证级别太低,则会提示用户完成OTP逐步身份验证流。
- 成功地应对升迁挑战后,随后执行“高价值”交易的尝试将无需进行额外的升迁或身份验证。
配置与ISAM for Mobile的反向代理集成
在本系列教程的第1部分中,您在DataPower上配置了ISAM反向代理的实例。 在本部分中,您将增强该配置以实现与ISAM for Mobile的集成和连接。 此步骤允许反向代理在运行时发生“高价值”交易时触发策略评估。 在较低级别上,此处执行的技术配置支持ISAM反向代理与移动安全性ISAM的运行时安全服务(RTSS)和身份验证服务的连接和操作。
尽管启用集成的配置步骤可以手动执行,但遵循DataPower与IBM Security Access Manager for Mobile集成中的说明和Perl脚本要容易得多。
本教程需要以下ISAM移动版接口:
- 管理 :M.1
- 应用程序 :P.2(RTSS和身份验证服务)
您可以从ISAM管理控制台主页查看IP地址,如图2所示。
图2. ISAM for Mobile界面
如果配置了P.1接口,则在引用P.2时可以使用该接口。 否则,请按照以下步骤配置P.2接口:
- 从管理系统设置>网络设置>应用程序接口配置P.2应用程序接口 。
- 配置P.2接口,ISAM for Mobile将侦听运行时流量。 选择“ 安全移动设置”>“管理”>“运行时参数”>“运行时调整参数” 。 在“ 运行时侦听接口”下 ,修改表以使用以下接口(您的IP地址将有所不同)和端口组合,如图3所示。
图3. ISAM for Mobile运行时界面
F反向代理使用P.2应用程序接口与ISAM进行移动RTSS和身份验证服务的通信。 部署所有未完成的更改并重新启动运行时服务器(“ 安全移动设置”>“管理”>“运行时设置”>“重新启动本地运行时” )。
- 您还将需要ISAM和DataPower管理员凭据才能运行ISAM for Mobile自动化脚本。
- 在上一教程中 ,您创建了一个用户帐户demo ,可用于本教程。
本节的其余部分描述了如何使用上述脚本配置集成。
- 从此处下载集成配置脚本。
- 从此链接下载配套示例集成属性文件,并将文件重命名为
isam.properties
。 - 根据您的环境从步骤2编辑属性文件(清单1):
清单1.属性文件-ISAM
components= rba,eas #address to your ISAM4Mobile appliance(REQUIRED) isamApplianceHostname=<ISAM_Interface_> #port the ISAM LMI is running on(REQUIRED) isamAppliancePort=443 #admin username to log into ISAM LMI(REQUIRED) isamApplianceAdmin=admin #admin password to log into ISAM LMI isamApplianceAdminPwd=<isam_admin_pw> #isam Runtime address. (REQUIRED) isamRuntimeHostname=<ISAM_Interface_ > #isam Runtime port. (REQUIRED) isamRuntimePort=443
- 输入以下信息以配置DataPower反向代理:
清单2.属性文件-DataPower
dpHostname=<DP_Hostname> #datapower SOMA port(REQUIRED) dpPort=5550 #datapower domain (REQUIRED) dpDomain=isam #datapower administrator(REQUIRED) dpAdmin=admin #datapower admin password dpAdminPwd=<dp_admin_pw> #name of the ISAMReverseProxy Object to configure on datapower(REQUIRED) dpProxy=dp-reverse-proxy #whether or not to set "-b ignore" on the junction to ISAM4Mobile(Optional. #defaults to false). dpProxyForwardAuthZHeader=true #pdadmin credentials(REQUIRED) pdadminUsr=sec_master pdadminPwd=<pdadmin_pw>
- 对配置的属性文件运行Perl脚本:
perl isamcfg.pl isam.properties –v
如果提示您输入easuser密码(并且尚未更改),则可以输入默认密码
passw0rd
。根据您的网络连接,脚本需要花费几秒钟来完成。 您可以在脚本执行时查看输出。 确保在脚本中没有看到任何错误。 脚本的最后一行显示以下内容:
INFO: Configuration Complete.
登录到反向代理的应用程序域,并验证已应用的新配置。
- 确保您在isam域中,并导航到反向代理对象页面,并检查对象状态是否已被修改,如图4所示。
图4.反向代理状态
该脚本修改了反向代理对象中的几个字段。 EAI服务是关键组件之一。
- 打开dp-reverse-proxy并单击Authentication选项卡以查看EAI配置,如图5所示。
图5.新的EAI触发器URL和认证级别
注意 :触发URL用于确定反向代理是否检查外部认证接口(EAI)认证标头的响应。
认证级别用于指定EAI成功认证请求之前所需的因素数量。 在此配置中,反向代理支持使用最低级别的密码(基于表单的身份验证)和更高级别的ext-auth-interface进行身份验证。 第二种机制启用了与ISAM的集成,以用于移动高级身份验证方法。
- 反向代理对象需要使用其指定的应用程序接口<ISAM_Interface_P.2>通过SSL连接到ISAM for Mobile运行时。 ISAM移动版运行时证书必须位于Access Manager反向代理结密钥文件的信任存储中。 该脚本将获取ISAM for Mobile运行时CA证书,然后将其导出并上传到DataPower设备。
单击SSL选项卡以查看证书密钥数据库设置,如图6所示。
图6. ISAM for Mobile Runtime CA证书密钥数据库
- “移动设备”的ISAM连接在“ 连接”选项卡中定义,如图7所示。
图7.与ISAM for Mobile的连接
- 打开MGA条目并查看配置,如图8所示。
图8. MGA连接细节
“ 服务器”选项卡定义了主机和端口(在isam.properties文件中指定)。 “ 身份”选项卡定义了从反向代理传播到ISAM移动设备的身份。
测试针对ISAM for Mobile的反向代理配置
测试反向代理配置,以验证其可以连接到用于移动RTSS和身份验证服务的ISAM。
- 打开浏览器并输入以下URL:
https://<lab-idg>:<port>/mga/sps/xauth?Target=https://www.google.com
<lab-idg>是DataPower应用程序接口的主机名,而<port>是为反向代理配置的端口号。
- 使用您的用户标识和密码凭证登录。 本教程使用的是模拟帐户。 现在您将看到以下页面,如图9所示。
图9.来自ISAM for Mobile初始配置的成功响应
此测试验证了ISAM移动版脚本执行的步骤。
创建基于上下文的访问策略
在本节中,您将编写ISAM移动访问策略,该策略保护移动应用程序中的“高价值”交易。 该策略将OTP用作保护资源的可执行策略义务。 此安全策略使用上下文运行时信息,特别是包含事务值的HTTP POST参数,并评估策略以确定请求是否应“逐步”执行,因为它需要更高的安全凭证。 您将配置一个策略,该策略允许通过少于100美元的交易而没有额外的安全性,但是高于该数额的交易将需要通过OTP进行身份验证。
- 登录到ISAM移动设备。
- 选择“ 安全移动设置”>“策略”>“访问控制” ,然后单击加号“ +”以创建新策略,并为新策略分配名称。 例如,
HOTP for Large Transfer
。 - 使用Add Rule按钮创建以下规则(对于Rule#3,选择无条件规则 ),如图10所示。单击Save 。
图10. ISAM移动策略
该策略可以表示如下:
- 如果用户发送的authenticationType包含成员urn:ibm:security:authentication:asf:hotp的POST请求,则允许。 如果该成员存在,则用户已经加紧。
- 如果用户发送的转移量大于100的POST请求,则运行时必须使用HOTP将请求返回到逐步验证。
- 如果这些先前的测试都不匹配,则允许该请求。
现在在ISAM移动版中定义了该策略。 接下来,您将策略附加到受反向代理保护的资源上,以便可以执行该策略。
将策略附加到受反向代理保护的资源
在本节中,您将策略附加到由反向代理保护的资源上,从而使该策略可强制执行。
- 确保您仍然在Access Control页面( Secure Mobile Settings> Policy> Access Control )中,然后单击Resources选项卡,如图11所示。然后单击“ +”创建新的资源策略。
图11.访问控制受保护资源菜单
- 在Add Resource对话框中,选择lab-idg-dp-reverse-proxy,然后输入资源
/worklight/apps
,如图12所示。完成后单击Save 。 您可以使用更细粒度的资源URI以避免多次运行时检查(如果适用)。图12.添加一个新的策略保护资源
注意 : URI(
/worklight/apps
)是来自ISAM策略服务器的资源,用于触发此“大传输” HOTP策略并检查是否需要逐步认证。 如果它使用其他URI模式,请更改此资源。 - 单击“ 附加”按钮,然后选择“ 大传输的HOTP” ,然后单击“ 确定” 。 单击Publish以发布运行时策略,如图13所示。
图13.策略附件
为移动设备交付方法配置OTP
现在,已经在ISAM移动版中定义并发布了CBA策略。 现在,DataPower上的ISAM反向代理可以强制执行此策略。 尝试使用移动应用程序并执行大于$ 100的交易的用户需要提供OTP。 此时,您的用户必须启用OTP交付方式。
该策略将HOTP定义为OTP机制。 使用此功能最便捷的交付方式之一就是使用Google®Authenticator。 这是安装在iOS或Android设备上的移动应用程序。 Google Authenticator可以扫描OTP共享密钥的快速响应(QR)代码表示。 ISAM移动版允许用户通过QR码获取其OTP共享机密。
本节将介绍您的用户可以执行的步骤,以在其移动设备上将Google身份验证器设置为HOTP交付方式。
- 从您的移动应用商店下载Google Authenticator 。
- 用户可以使用“ ISAM移动版”自助服务页面访问其OTP共享密钥。 输入URL
https://<lab-idg>:<port>/mga/sps/mga/user/mgmt/html/otp/otp.html
,然后使用演示用户ID和密码登录。 OTP QR码如图14所示。图14. OTP QR码
- 使用Google Authenticator扫描HOTP QR码。 现在您将看到一个OTP,如图15所示。
图15. Google Authenticator OTP
测试解决方案
在本节中,您将测试在本系列教程中开发的集成。
执行以下步骤:
- 重新打开Web浏览器以从以前的测试中删除所有会话cookie,然后输入您的移动应用程序的URL。 对于本教程系列,它是:
https://<lab-idg>:<port>/worklight/apps/services/preview/ISAMforWorklight/common/1.0/default/ ISAMforWorklight.html
- 浏览器返回登录页面。 选择用户名和密码按钮。 输入您的演示用户ID和密码。 成功后,您将被重定向到主页,如图16所示。
图16.成功登录
- 点击基于风险/上下文的访问按钮,然后点击转账 。
- 将“ 从帐户”和“ 到帐户”保留为默认值。 输入金额50 ,然后单击立即转移 。 回想一下,当转移金额大于100时会触发OTP策略。如图17所示,系统不会提示您输入OTP。
图17.没有OTP的转账资金
- 单击返回到欢迎页面 。 点击基于风险/上下文的访问按钮,然后点击转账 。 将“ 从帐户”和“ 到帐户”保留为默认值。 输入金额300 。 当转账金额大于100时,将触发OTP策略。提示您输入OTP。
- 输入Google Authenticator移动应用程序中提供的OTP,如图18所示,然后单击Submit HOTP 。 您现在看到成功的交易。
图18.使用OTP转移资金
- 单击“ 返回到欢迎页面”,然后执行大于100的另一次传输。由于升压在每个会话中都有效,因此不会再次提示您输入OTP。 图19显示了成功的传输,没有提示您进行OTP。
图19. OTP之后转移资金
恭喜你! 现在,您已经完成了教程系列,在该系列中,您已在DataPower Gateway设备上构建了高度健壮和安全的移动网关解决方案。
致谢
作者要感谢ISAM和DataPower工程团队的成员对本教程的审阅: Leo Farrell , Jon Palgon , Davin Holmes和Scott Andrews 。
结论
在本教程中,您学习了如何在DataPower上扩展反向代理的安全功能,以使用简单的脚本从ISAM for Mobile实施策略。 然后,您使用ISAM移动版创作工具来创建基于上下文的身份验证策略,该策略使用表单和一次性密码身份验证策略来保护移动应用程序。 然后将创作的策略附加到受DataPower上的ISAM反向代理保护的资源上。 最后,您测试了移动应用程序,特别是使用Google Authenticator获得了一次性密码并成功执行了“高价值”交易。
翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/1506_sheikh/1506_sheikh-trs.html
谷歌身份验证器的一次性验证