转载

使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

简介

本教程描述如何向 IBM DataPower Gateway(以下简称 DataPower)应用 ISAM for Mobile 基于上下文的访问策略。我们扩展了本系列第 1 部分 中描述的功能。您将制定一个移动访问策略,该策略需要在有人试图开展 “高价值” 交易时执行身份验证升级。使用的身份验证机制是一种一次性密码 (OTP)。该机制被作为一种策略执行义务触发。被触发时,OTP 表示强大的第二因素身份验证,为移动交易和高价值业务 API 和数据的访问提供高级身份确认和风险缓解。

您将了解以下步骤:

  • 使用一个自动化脚本配置 DataPower 与 ISAM for Mobile 之间的集成。
  • 制定一个简单的 ISAM for Mobile CBA 策略。
  • 将可执行策略附加到 DataPower 上的 ISAM 逆向代理保护的一个资源。

先决条件

备注:

您可以对任何后端服务提供程序(取代 IBM MobileFirst 服务器)应用本教程中讨论的功能。只需更改受保护资源(或移动应用程序)的策略服务器访问控制列表 (ACL) 和单点登录 (SSO) 机制。

您需要以下产品来完成本教程:

  • IBM DataPower Gateway V7.1 或更高版本
  • ISAM for Mobile V8.0.0.5 或更高版本
  • IBM MobileFirst™ V6 或 V7

本教程基于此处 记载的 ISAM 和 MobileFirst 集成。本教程使用指南中的同一样例移动应用程序。

回页首

总体架构回顾

这里出于方便重复使用本教程第 1 部分 的总体解决方案架构。总体架构如图 1 所示,其中显示了请求流。

图 1. 总体架构

使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...
  • 移动应用程序向 DataPower 设备上的逆向代理发送一个请求,该代理会检查检查此请求是否具有有效的会话。如果没有,则会提示用户输入用户 ID 和密码。
  • 然后用户将其凭据提交给 DataPower 设备上的逆向代理,逆向代理将身份验证和授权请求发送给 ISAM for Mobile 设备上的策略服务器和 LDAP 服务器。
  • 在成功执行身份验证和授权后,逆向代理会生成一个 HTTP 标头,用以断言身份并将其传递给 MobileFirst 服务器,该服务器还会在允许访问受保护的后端资源之前验证该身份。
  • 因为该用户会话是有效的,所以任何后续请求都不会被提示进行身份验证。
  • 如果用户试图在一个身份验证会话或请求流期间执行 “高价值” 交易,并且当前身份验证级别太低,那么系统就会提示用户完成一个 OTP 递升式身份验证流。
  • 成功响应递升式挑战后,执行 “高价值” 交易的后续尝试将不会需要额外的升级或身份验证。

回页首

配置逆向代理与 ISAM for Mobile 的集成

在本教程系列的第 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 接口:

  • Management : M.1
  • 应用程序 :P.2(RTSS 和 Authentication Services)

您可以在 ISAM Admin 控制台主页上查看 IP 地址,如图 2 所示。

图 2. ISAM for Mobile 接口

使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

如果您配置了 P.1 接口,那么可以在 P.2 被引用时使用该接口。如果未配置该接口,可以使用以下步骤配置 P.2 接口:

  1. 通过 Manage System Settings > Network Settings > Application Interfaces 配置 P.2 应用程序接口。
  2. 配置 P.2 接口,ISAM for Mobile 将监听该接口看是否有运行时流量。选择 Secure Mobile Settings > Manage > Runtime Parameters > Runtime Tuning Parameters 。在 Runtime Listening Interfaces 下,修改表来使用以下接口(您的 IP 地址会有所不同)和端口组合,如图 3 所示。

    图 3. ISAM for Mobile 运行时接口

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码... f

    逆向代理使用 P.2 应用程序接口与 ISAM for Mobile RTSS 和 Authentication Services 进行通信。部署任何未兑现的更改并重启运行时服务器 ( Secure Mobile Settings > Manage > Runtime Settings > Restart Local Runtime )。

    • 您还需要 ISAM 和 DataPower 管理员凭据才能运行 ISAM for Mobile 自动化脚本。
    • 在上一个教程 中,您创建了一个用户帐户 demo ,您可以在本教程中使用该帐户。

这一节的其余部分将介绍如何使用上述脚本配置集成。

  1. 从此处 下载集成配置脚本。
  2. 通过这个链接 下载配套示例集成属性,并将文件重命名为 isam.properties
  3. 根据您的环境编辑第 2 步中的属性文件(清单 1):

    清单 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
  4. 输入以下信息来配置 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>
  5. 对配置的属性文件运行 Perl 脚本:

    perl isamcfg.pl isam.properties –v

    如果提示输入 easuser 密码(而且您没有更改密码),可以输入默认密码 passw0rd

    基于您的网络连接,脚本需要几秒钟完成。您可以在脚本执行时查看输出。确保脚本中没有任何错误。脚本中的最后一行显示如下信息:

    INFO: Configuration Complete.

登录到逆向代理的应用程序域并验证应用的新配置。

  1. 确保您在 isam

    域中,并导航到逆向代理对象页面,检查对象状态是否已修改,如图 4 所示。

    图 4. 逆向代理状态

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

    脚本修改逆向代理对象中的若干字段。其中一个关键组件是 EAI 服务。

  2. 打开 dp-reverse-proxy 并单击 Authentication 选项卡查看 EAI 配置,如图 5 所示。

    图 5. 新 EAI 触发器 URL 和身份验证级别

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

    备注:触发器 URL 用于确定逆向代理是否检查 External Authentication Interface (EAI) 认证标头的响应。

    Authentication Level用于指定 EAI 成功验证请求之前需要的因子数量。在此配置中,逆向代理支持在最低级别使用密码(基于表单的身份验证)且在较高级别使用 ext-auth-interface 的身份验证。第二个机制支持与 ISAM for Mobile 高级身份验证方法的部分集成。

  3. 逆向代理对象需要使用其指定应用程序接口 <ISAM_Interface_P.2> 经由 SSL 连接到 ISAM for Mobile 运行时。ISAM for Mobile 运行时证书必须在 Access Manager 逆向代理连接密钥文件的信任库中。脚本获取 ISAM for Mobile 运行时 CA 证书,然后导出并将其上传到 DataPower 设备。

    单击 SSL 选项卡查看证书密钥数据库设置,如图 6 所示。

    图 6. ISAM for Mobile 运行时 CA 证书密钥数据库

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...
  4. ISAM for Mobile 设备连接点是在 Junctions 选项卡中定义的,如图 7 所示。

    图 7. ISAM for Mobile 连接点

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...
  5. 打开 MGA 条目并查看配置,如图 8 所示。

    图 8. MGA 连接点细节

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

    Servers选项卡定义主机和端口(在 isam.properties 文件中指定)。 Identity 选项卡定义要从逆向代理传播到 ISAM for Mobile 设备的身份标识。

测试连接到 ISAM for Mobile 的逆向代理配置

测试逆向代理配置,验证其可连接到 ISAM for Mobile RTSS 和 Authentication Services。

  1. 打开浏览器并输入以下 URL: https://<lab-idg>:<port>/mga/sps/xauth?Target=https://www.google.com

    <lab-idg>是您的 DataPower 应用程序接口的主机名称, <port> 是为逆向代理配置的端口号。

  2. 使用您的用户 ID 和密码凭据登录。本教程使用 demo 帐户。现在您可以看到以下界面,如图 9 所示。

    图 9. 来自 ISAM for Mobile 初始配置的成功响应

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

该测试验证 ISAM for Mobile 脚本执行的步骤。

回页首

创建基于上下文的访问策略

在这一节中,您将创建 ISAM for Mobile 访问策略来保护移动应用程序中的 “高价值” 交易。该策略使用 OTP 作为可执行策略义务来保护资源。该安全策略使用上下文运行时信息,特别是一个 HTTP POST 参数,该参数包含一个交易价并评估一个策略来确定请求是否应 “升级”,因为它需要安全性更高的凭据。您将配置一个策略,允许金额少于 $100 的交易进行,而无需更高的安全性,但大于这个金额的交易将需要使用 OTP 进行验证。

  1. 登录到 ISAM for Mobile 设备。
  2. 选择 Secure Mobile Settings > Policy > Access Control 并单击加号 “+” 创建一个新策略,并向此新策略赋予一个名称。例如, HOTP for Large Transfer
  3. 使用 Add Rule 按钮创建以下规则(对于 Rule #3,可选择 unconditional rule ),如图 10 所示。单击 Save

    图 10. ISAM for Mobile 策略

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

    策略可如下表达:

    • 如果用户发送一个 POST 请求,该请求带一个包含 urn:ibm:security:authentication:asf:hotp 成员的 authenticationType ,则允许该请求。如果该成员存在,那么用户已升级。
    • 如果用户发送一个 POST 请求,其中转账金额大于 100 ,那么运行时必须使用 HOTP 返回一个递升式身份验证请求。
    • 如果前面这些测试都不匹配, 则允许该请求。

如今已在 ISAM for Mobile 中定义了策略。接下来将该策略附加到一个受逆向代理保护的资源,以便执行该策略。

附加策略到逆向代理保护的资源

在这一节中,您要通过将策略附加到受逆向代理保护的资源使策略变得可执行。

  1. 确保您仍然在 Access Control 页面中 ( Secure Mobile Settings > Policy > Access Control ) 并单击 Resources 选项卡,如图 11 所示。然后单击 “+” 创建一个新资源策略。

    图 11. 访问控制受保护资源菜单

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...
  2. Add Resource 对话框中,选择 lab-idg-dp-reverse-proxy 并输入资源 /worklight/apps ,如图 12 所示。完成后单击 Save 。您可以使用更细粒度的资源 URI 避免多次运行时检查(如适用)。

    图 12. 添加一个新策略受保护资源

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

    备注 URI ( /worklight/apps ) 是 ISAM 策略服务器上的资源,用于触发这个 HOTP for Large Transfer 策略并检查是否需要递升式认证。如果该资源使用一个不同的 URI 模式,则更改它。

  3. 单击 Attach 按钮,选择 HOTP for Large Transfer 并单击 OK 。单击 Publish 发布运行时策略,如图 13 所示。

    图 13. 策略附加

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

回页首

为移动设备交付方法配置 OTP

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 交付方法进行安装。

  1. 从您的移动应用商店下载 Google Authenticator
  2. 用户可使用 ISAM for Mobile 自助服务页面访问其 OTP 共享密钥。输入 URL, https://<lab-idg>:<port>/mga/sps/mga/user/mgmt/html/otp/otp.html ,并使用 demo 用户 ID 和密码登录。OTP QR 码如图 14 所示。

    图 14. OTP QR 码

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...
  3. 使用 Google Authenticator 扫描 HOTP QR 码。现在您可看到一个 OTP,如图 15 所示。

    图 15. Google Authenticator OTP

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

回页首

测试解决方案

在这一节中,您将测试本教程系列全程开发的集成解决方案。

执行以下步骤:

  1. 重新打开 Web 浏览器,删除先前的测试产生的任何会话 cookies,并为您的移动应用程序输入 URL。对于本教程系列,该 URL 是:
    https://<lab-idg>:<port>/worklight/apps/services/preview/ISAMforWorklight/common/1.0/default/  ISAMforWorklight.html
  2. 浏览器返回登录页面。选择 Username & Password 按钮。输入您的 demo 用户 ID 和密码。成功登录后,您被重定向到主页,如图 16 所示。

    图 16. 成功登录

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...
  3. 单击 Risk/Context Based Access 按钮,然后单击 Transfer Funds
  4. 保留 From AccountTo Account 的默认值。输入金额 50 并单击 Transfer Now 。前面讲过,当转账金额大于 100 时 OTP 策略被触发。系统不提示您输入 OTP,如图 17 所示。

    图 17. 不使用 OTP 转账

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...
  5. 单击 Return to Welcome Page 。单击 Risk/Context Based Access 按钮,然后单击 Transfer Funds 。保留 From AccountTo Account 的默认值。输入金额 300 。当转账金额大于 100 时 OTP 策略被触发。系统提示您输入 OTP。
  6. 输入 Google Authenticator 移动应用程序中提供的 OTP,如图 18 所示,并单击 Submit HOTP 。现在您看到一次成功的交易。

    图 18. 使用 OTP 转账

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...
  7. 单击 Return to Welcome Page 并执行另一笔大于 100 的转账。同样系统不会提示您输入 OTP,因为每个会话的升级是有效的。图 19 显示未提示输入 OTP 便成功转账。

    图 19. OTP 后转账

    使用 IBM DataPower Gateway 的 ISAM 模块保护移动应用程序,第 2 部分: 创建和应用使用一次性密码...

恭喜!现在您完成了本教程系列,在 DataPower Gateway 设备上构建了一个高度健全且安全的网关解决方案。

致谢

感谢以下 ISAM 和 DataPower工程团队成员对本教程的审阅: Leo FarrellJon PalgonDavin HolmesScott Andrews

回页首

结束语

在本教程中,您学习了如何扩展 DataPower 上逆向代理的安全功能,使用一个简单的脚本从 ISAM for Mobile 执行策略。然后使用 ISAM for Mobile 创作工具创建了一个基于上下文的身份验证策略,该策略使用表单和一次性密码身份验证策略保护移动应用程序。然后将创建的策略附加到 DataPower 上的 ISAM 逆向代理保护的资源。最后,您测试了移动应用程序,特别是使用 Google Authenticator 获取一次性代码,并成功执行了 “高价值” 交易。

正文到此结束
Loading...