本教程描述如何向 IBM DataPower Gateway(以下简称 DataPower)应用 ISAM for Mobile 基于上下文的访问策略。我们扩展了本系列第 1 部分 中描述的功能。您将制定一个移动访问策略,该策略需要在有人试图开展 “高价值” 交易时执行身份验证升级。使用的身份验证机制是一种一次性密码 (OTP)。该机制被作为一种策略执行义务触发。被触发时,OTP 表示强大的第二因素身份验证,为移动交易和高价值业务 API 和数据的访问提供高级身份确认和风险缓解。
您将了解以下步骤:
您可以对任何后端服务提供程序(取代 IBM MobileFirst 服务器)应用本教程中讨论的功能。只需更改受保护资源(或移动应用程序)的策略服务器访问控制列表 (ACL) 和单点登录 (SSO) 机制。
您需要以下产品来完成本教程:
本教程基于此处 记载的 ISAM 和 MobileFirst 集成。本教程使用指南中的同一样例移动应用程序。
回页首
这里出于方便重复使用本教程第 1 部分 的总体解决方案架构。总体架构如图 1 所示,其中显示了请求流。
图 1. 总体架构
回页首
在本教程系列的第 1 部分,您在 DataPower 上配置了 ISAM 逆向代理的实例。在本部分中,您将增强该配置,集成并连接到 ISAM for Mobile。这一步使逆向代理能够在 “高价值” 交易在运行时发生时触发策略评估。从低级别来看,这里执行的技术配置支持连接和运行 ISAM 反向代理与 Runtime Security Services (RTSS) 和 ISAM for Mobile Authentication Services。
尽管实现集成的配置步骤可手动执行,遵循 DataPower integration with IBM Security Access Manager for Mobile 中给出的说明和 Perl 脚本要容易很多。
本教程需要以下 ISAM for Mobile 接口:
您可以在 ISAM Admin 控制台主页上查看 IP 地址,如图 2 所示。
图 2. ISAM for Mobile 接口
如果您配置了 P.1 接口,那么可以在 P.2 被引用时使用该接口。如果未配置该接口,可以使用以下步骤配置 P.2 接口:
图 3. ISAM for Mobile 运行时接口
f逆向代理使用 P.2 应用程序接口与 ISAM for Mobile RTSS 和 Authentication Services 进行通信。部署任何未兑现的更改并重启运行时服务器 ( Secure Mobile Settings > Manage > Runtime Settings > Restart Local Runtime )。
这一节的其余部分将介绍如何使用上述脚本配置集成。
isam.properties
。 清单 1. 属性文件 - ISAM
components= rba,eas #address to your ISAM4Mobile appliance(REQUIRED) isamApplianceHostname=<ISAM_Interface_M.1> #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_P.2 > #isam Runtime port. (REQUIRED) isamRuntimePort=443
清单 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.
登录到逆向代理的应用程序域并验证应用的新配置。
域中,并导航到逆向代理对象页面,检查对象状态是否已修改,如图 4 所示。
图 4. 逆向代理状态
脚本修改逆向代理对象中的若干字段。其中一个关键组件是 EAI 服务。
图 5. 新 EAI 触发器 URL 和身份验证级别
备注:触发器 URL 用于确定逆向代理是否检查 External Authentication Interface (EAI) 认证标头的响应。
Authentication Level用于指定 EAI 成功验证请求之前需要的因子数量。在此配置中,逆向代理支持在最低级别使用密码(基于表单的身份验证)且在较高级别使用 ext-auth-interface 的身份验证。第二个机制支持与 ISAM for Mobile 高级身份验证方法的部分集成。
单击 SSL 选项卡查看证书密钥数据库设置,如图 6 所示。
图 6. ISAM for Mobile 运行时 CA 证书密钥数据库
图 7. ISAM for Mobile 连接点
图 8. MGA 连接点细节
Servers选项卡定义主机和端口(在 isam.properties 文件中指定)。 Identity 选项卡定义要从逆向代理传播到 ISAM for Mobile 设备的身份标识。
测试逆向代理配置,验证其可连接到 ISAM for Mobile RTSS 和 Authentication Services。
https://<lab-idg>:<port>/mga/sps/xauth?Target=https://www.google.com
<lab-idg>是您的 DataPower 应用程序接口的主机名称, <port> 是为逆向代理配置的端口号。
图 9. 来自 ISAM for Mobile 初始配置的成功响应
该测试验证 ISAM for Mobile 脚本执行的步骤。
回页首
在这一节中,您将创建 ISAM for Mobile 访问策略来保护移动应用程序中的 “高价值” 交易。该策略使用 OTP 作为可执行策略义务来保护资源。该安全策略使用上下文运行时信息,特别是一个 HTTP POST 参数,该参数包含一个交易价并评估一个策略来确定请求是否应 “升级”,因为它需要安全性更高的凭据。您将配置一个策略,允许金额少于 $100 的交易进行,而无需更高的安全性,但大于这个金额的交易将需要使用 OTP 进行验证。
HOTP for Large Transfer
。 。
图 10. ISAM for Mobile 策略
策略可如下表达:
如今已在 ISAM for Mobile 中定义了策略。接下来将该策略附加到一个受逆向代理保护的资源,以便执行该策略。
在这一节中,您要通过将策略附加到受逆向代理保护的资源使策略变得可执行。
图 11. 访问控制受保护资源菜单
/worklight/apps
,如图 12 所示。完成后单击 Save 。您可以使用更细粒度的资源 URI 避免多次运行时检查(如适用)。 图 12. 添加一个新策略受保护资源
备注 : URI ( /worklight/apps
) 是 ISAM 策略服务器上的资源,用于触发这个 HOTP for Large Transfer 策略并检查是否需要递升式认证。如果该资源使用一个不同的 URI 模式,则更改它。
图 13. 策略附加
回页首
CBA 策略现已定义并在 ISAM for Mobile 中发布。DataPower 上的 ISAM 逆向代理现在可以执行此策略。试图使用移动应用程序和执行大于 $100 的交易的用户需要提供一个 OTP。此时您的用户必须启用 OTP 交付方法。
策略将 HOTP 定义为 OTP 机制。该功能最方便的交付方法之一是使用 Google® Authenticator。这是在 iOS 或 Android 设备上安装的一个移动应用程序。Google Authenticator 可扫描 OTP 共享密钥的一个快速响应 (QR) 码表示。ISAM for Mobile 允许用户通过 QR 码获取其 OTP 共享密钥。
这一节将描述您的用户可执行哪些步骤,在用户的移动设备上将 Google Authenticator 作为一种 HOTP 交付方法进行安装。
https://<lab-idg>:<port>/mga/sps/mga/user/mgmt/html/otp/otp.html
,并使用 demo 用户 ID 和密码登录。OTP QR 码如图 14 所示。 图 14. OTP QR 码
图 15. Google Authenticator OTP
回页首
在这一节中,您将测试本教程系列全程开发的集成解决方案。
执行以下步骤:
https://<lab-idg>:<port>/worklight/apps/services/preview/ISAMforWorklight/common/1.0/default/ ISAMforWorklight.html
图 16. 成功登录
图 17. 不使用 OTP 转账
图 18. 使用 OTP 转账
图 19. OTP 后转账
恭喜!现在您完成了本教程系列,在 DataPower Gateway 设备上构建了一个高度健全且安全的网关解决方案。
感谢以下 ISAM 和 DataPower工程团队成员对本教程的审阅: Leo Farrell 、 Jon Palgon 、 Davin Holmes 和 Scott Andrews 。
回页首
在本教程中,您学习了如何扩展 DataPower 上逆向代理的安全功能,使用一个简单的脚本从 ISAM for Mobile 执行策略。然后使用 ISAM for Mobile 创作工具创建了一个基于上下文的身份验证策略,该策略使用表单和一次性密码身份验证策略保护移动应用程序。然后将创建的策略附加到 DataPower 上的 ISAM 逆向代理保护的资源。最后,您测试了移动应用程序,特别是使用 Google Authenticator 获取一次性代码,并成功执行了 “高价值” 交易。