谷歌身份验证器的一次性验证

本教程描述了如何将ISAM for Mobile基于上下文的访问(CBA)策略应用于IBM DataPower Gateway(以下称为DataPower)。 它扩展了本系列第1部分中描述的功能。 您将开发一种移动访问策略,该策略要求在尝试“高价值”交易时执行身份验证。 使用的身份验证机制是一次性密码(OTP)的一种形式。 此机制是作为政策执行义务触发的。 触发时,OTP表示强大的第二因素身份验证,可为移动事务以及对高价值业务API和数据的访问提供高级别的身份保证和风险缓解。

您将学到以下内容:

  • 使用自动化脚本配置DataPower和ISAM for Mobile之间的集成。
  • 为移动CBA策略开发一个简单的ISAM。
  • 将可执行策略附加到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.高层架构
  • 移动应用程序将请求发送到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接口:

  1. 管理系统设置>网络设置>应用程序接口配置P.2应用程序接口
  2. 配置P.2接口,ISAM for Mobile将侦听运行时流量。 选择“ 安全移动设置”>“管理”>“运行时参数”>“运行时调整参数” 。 在“ 运行时侦听接口”下 ,修改表以使用以下接口(您的IP地址将有所不同)和端口组合,如图3所示。
    图3. ISAM for Mobile运行时界面

    F

    反向代理使用P.2应用程序接口与ISAM进行移动RTSS和身份验证服务的通信。 部署所有未完成的更改并重新启动运行时服务器(“ 安全移动设置”>“管理”>“运行时设置”>“重新启动本地运行时” )。

    • 您还将需要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_>
    #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
  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.反向代理状态

    该脚本修改了反向代理对象中的几个字段。 EAI服务是关键组件之一。

  2. 打开dp-reverse-proxy并单击Authentication选项卡以查看EAI配置,如图5所示。
    图5.新的EAI触发器URL和认证级别

    注意 :触发​​URL用于确定反向代理是否检查外部认证接口(EAI)认证标头的响应。

    认证级别用于指定EAI成功认证请求之前所需的因素数量。 在此配置中,反向代理支持使用最低级别的密码(基于表单的身份验证)和更高级别的ext-auth-interface进行身份验证。 第二种机制启用了与ISAM的集成,以用于移动高级身份验证方法。

  3. 反向代理对象需要使用其指定的应用程序接口<ISAM_Interface_P.2>通过SSL连接到ISAM for Mobile运行时。 ISAM移动版运行时证书必须位于Access Manager反向代理结密钥文件的信任存储中。 该脚本将获取ISAM for Mobile运行时CA证书,然后将其导出并上传到DataPower设备。

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

    图6. ISAM for Mobile Runtime CA证书密钥数据库
  4. “移动设备”的ISAM连接在“ 连接”选项卡中定义,如图7所示。
    图7.与ISAM for Mobile的连接
  5. 打开MGA条目并查看配置,如图8所示。
    图8. MGA连接细节

    服务器”选项卡定义了主机和端口(在isam.properties文件中指定)。 “ 身份”选项卡定义了从反向代理传播到ISAM移动设备的身份。

测试针对ISAM for Mobile的反向代理配置

测试反向代理配置,以验证其可以连接到用于移动RTSS和身份验证服务的ISAM。

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

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

  2. 使用您的用户标识和密码凭证登录。 本教程使用的是模拟帐户。 现在您将看到以下页面,如图9所示。
    图9.来自ISAM for Mobile初始配置的成功响应

此测试验证了ISAM移动版脚本执行的步骤。

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

在本节中,您将编写ISAM移动访问策略,该策略保护移动应用程序中的“高价值”交易。 该策略将OTP用作保护资源的可执行策略义务。 此安全策略使用上下文运行时信息,特别是包含事务值的HTTP POST参数,并评估策略以确定请求是否应“逐步”执行,因为它需要更高的安全凭证。 您将配置一个策略,该策略允许通过少于100美元的交易而没有额外的安全性,但是高于该数额的交易将需要通过OTP进行身份验证。

  1. 登录到ISAM移动设备。
  2. 选择“ 安全移动设置”>“策略”>“访问控制” ,然后单击加号“ +”以创建新策略,并为新策略分配名称。 例如, HOTP for Large Transfer
  3. 使用Add Rule按钮创建以下规则(对于Rule#3,选择无条件规则 ),如图10所示。单击Save
    图10. ISAM移动策略

    该策略可以表示如下:

    • 如果用户发送的authenticationType包含成员urn:ibm:security:authentication:asf:hotp的POST请求,则允许。 如果该成员存在,则用户已经加紧。
    • 如果用户发送的转移量大于100的POST请求,则运行时必须使用HOTP将请求返回到逐步验证。
    • 如果这些先前的测试都不匹配,则允许该请求。

现在在ISAM移动版中定义了该策略。 接下来,您将策略附加到受反向代理保护的资源上,以便可以执行该策略。

将策略附加到受反向代理保护的资源

在本节中,您将策略附加到由反向代理保护的资源上,从而使该策略可强制执行。

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

    图11.访问控制受保护资源菜单
  2. Add Resource对话框中,选择lab-idg-dp-reverse-proxy,然后输入资源/worklight/apps ,如图12所示。完成后单击Save 。 您可以使用更细粒度的资源URI以避免多次运行时检查(如果适用)。
    图12.添加一个新的策略保护资源

    注意 URI( /worklight/apps )是来自ISAM策略服务器的资源,用于触发此“大传输” HOTP策略并检查是否需要逐步认证。 如果它使用其他URI模式,请更改此资源。

  3. 单击“ 附加”按钮,然后选择“ 大传输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交付方式。

  1. 从您的移动应用商店下载Google Authenticator
  2. 用户可以使用“ ISAM移动版”自助服务页面访问其OTP共享密钥。 输入URL https://<lab-idg>:<port>/mga/sps/mga/user/mgmt/html/otp/otp.html ,然后使用演示用户ID和密码登录。 OTP QR码如图14所示。
    图14. OTP QR码
  3. 使用Google Authenticator扫描HOTP QR码。 现在您将看到一个OTP,如图15所示。
    图15. Google Authenticator OTP

测试解决方案

在本节中,您将测试在本系列教程中开发的集成。

执行以下步骤:

  1. 重新打开Web浏览器以从以前的测试中删除所有会话cookie,然后输入您的移动应用程序的URL。 对于本教程系列,它是:

    https://<lab-idg>:<port>/worklight/apps/services/preview/ISAMforWorklight/common/1.0/default/ISAMforWorklight.html
  2. 浏览器返回登录页面。 选择用户名和密码按钮。 输入您的演示用户ID和密码。 成功后,您将被重定向到主页,如图16所示。
    图16.成功登录
  3. 点击基于风险/上下文的访问按钮,然后点击转账
  4. 将“ 从帐户”和“ 到帐户”保留为默认值。 输入金额50 ,然后单击立即转移 。 回想一下,当转移金额大于100时会触发OTP策略。如图17所示,系统不会提示您输入OTP。
    图17.没有OTP的转账资金
  5. 单击返回到欢迎页面 。 点击基于风险/上下文的访问按钮,然后点击转账 。 将“ 从帐户”和“ 到帐户”保留为默认值。 输入金额300 。 当转账金额大于100时,将触发OTP策略。提示您输入OTP。
  6. 输入Google Authenticator移动应用程序中提供的OTP,如图18所示,然后单击Submit HOTP 。 您现在看到成功的交易。
    图18.使用OTP转移资金
  7. 单击“ 返回到欢迎页面”,然后执行大于100的另一次传输。由于升压在每个会话中都有效,因此不会再次提示您输入OTP。 图19显示了成功的传输,没有提示您进行OTP。
    图19. OTP之后转移资金

恭喜你! 现在,您已经完成了教程系列,在该系列中,您已在DataPower Gateway设备上构建了高度健壮和安全的移动网关解决方案。

致谢

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

结论

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


翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/1506_sheikh/1506_sheikh-trs.html

谷歌身份验证器的一次性验证

谷歌身份验证器的一次性验证_使用一次性密码创建和应用多因素身份验证策略相关推荐

  1. 使用谷歌身份验证器(Google Authenticator)保护你的后台

    为何要使用谷歌身份验证器 普通的网站只使用账号.密码.图形验证码进行后台登录.根据我(作为站长)多年的经验来看,这种方式安全性很低,尤其是使用 http 协议,明文的帐号和密码相当于在网络上裸奔.如果 ...

  2. 计算机器怎么验证,谷歌验证器【设置步骤】

    喜欢使用电脑的小伙伴们一般都会遇到win7系统谷歌验证器的问题,突然遇到win7系统谷歌验证器的问题就不知道该怎么办了,其实win7系统谷歌验证器的解决方法非常简单,按照 1:首先打开手机上的应用商店 ...

  3. android开发动态口令,谷歌动态口令最新版下载-谷歌动态口令验证器v5.00 安卓官方版 - 极光下载站...

    谷歌动态口令安卓版是全新推出的安全性极高的口令软件,有的用户反应自己的谷歌账号会有所不良好的反应,该工具就是为了全面解决这种恶意还打造的验证app,有需要的朋友们可以来试试,极光下载站提供谷歌动态口令 ...

  4. 如何使用Google Authenticator在ASP.NET Core中设置两因素身份验证

    介绍 (Introduction) In this article, we are going to learn how to perform two-factor authentication in ...

  5. Vulnerabilities in multi-factor authentication:多因素身份验证漏洞

    许多网站完全依赖使用密码的单因素身份验证来验证用户.但是,有些要求用户使用多种身份验证因素来证明其身份. 对于大多数网站来说,验证生物识别因素是不切实际的.但是,基于您知道的和您拥有的内容,同时看到强 ...

  6. laravel validate 验证器

    1.简介 Laravel 提供了多种方法来验证应用输入数据.默认情况下,Laravel 的控制器基类使用ValidatesRequests trait,该trait提供了便利的方法通过各种功能强大的验 ...

  7. 9、 Struts2验证(声明式验证、自定义验证器)

    1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...

  8. [EntLib]微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇...

    本文是为后面的学习之路做铺垫,简单介绍下企业库中的Validation模块的一些相关知识,包括Validation模块的简介.用途.使用方法.默认提供的多种验证器的介绍等. 一.简介及用途 在实际的项 ...

  9. m_Orchestrate learning system---十三、thinkphp的验证器支持多语言么

    m_Orchestrate learning system---十三.thinkphp的验证器支持多语言么 一.总结 一句话总结:支持,不仅验证器支持,其它的插件应该都支持 不仅thinkphp支持多 ...

  10. 【Android Developers Training】 93. 创建一个空验证器

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

最新文章

  1. 为什么阿里Java规约禁止使用Java内置Executors创建线程池?
  2. FJ集团企业级邮件服务器---iRedMail客户端配置
  3. Tomcat 直接使用端口号访问项目
  4. (41)FPGA面试技能提升篇(FC接口、GTX/GTH介绍)
  5. Mysql : InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!
  6. 20190818:(leetcode习题)反转字符串整数反转
  7. IntelliJ 通过 Cloud Toolkit 登陆远程服务器终端 Terminal
  8. P3146 [USACO16OPEN]248 P3147 [USACO16OPEN]262144
  9. Oracle 提取汉子去除非汉子数据(保留标点符号)
  10. Python爬虫错误重试,超时处理
  11. pdf论文中查看使用的字体
  12. 冯诺依曼计算机流程图,基本流程图综述
  13. 软件测试之客户端(Client)测试
  14. ONNXRUNTIME_EXCEPTION : Non-zero status code returned while running Where node. Name:‘Where‘
  15. php pack ode,Python中的数值ODE求解
  16. C#:实现大图片压缩算法(附完整源码)
  17. html文本怎么打印出来,如何把一个html文件直接打印出来(200分)
  18. Android+CS6:工业动画之变速变方向旋转齿轮
  19. android 打开微信好友动态,朋友圈可以查看“访客记录”?微信8.0.1不简单,新功能大解析...
  20. 阿里云话费api调用实例教程

热门文章

  1. 如何在 Excel 中计算 NPS
  2. 外卖系统源码,如何搭建一套同城o2o外卖商城平台
  3. 【Python纪念册】哪些浪漫至极的表白程序—“你做我的男孩,我做你的宇宙”
  4. 汽车故障诊断技术【10】
  5. 一个动态路由OSPF配置实例(eNSP)
  6. 智能控制导论 # 模糊控制 2 模糊控制器的原理与设计方法
  7. powerapps简介
  8. esp8266作为wifi中继固件 无线信号延展
  9. linux 怎么格式化u盘写保护,u盘怎样去掉写保护状态手机怎么加密软件
  10. Python数据挖掘实战——贝叶斯分类算法