转载

使用 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 Account 和 To 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 Account 和 To 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 Farrell 、 Jon Palgon 、 Davin Holmes 和 Scott Andrews 。

回页首

结束语

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

正文到此结束
Loading...