yubikey复制
用于访问控制的传统身份验证方法是使用用户名和密码,但是对于当今的许多用户来说,记住不同应用程序的每组唯一凭据是一个挑战。 2013年11月,一份报告发现最受欢迎的密码是“ 123456”,而“ password”是第二受欢迎的密码。 从这些证据可以看出,对于许多用户而言,易用性和易记性通常比复杂密码的实际安全性更为重要。 降低与使用通用密码相关的风险的一种方法是在验证用户身份时强制使用一次性密码(OTP)。 RSA SecureID通过使硬件或软件令牌生成器发出可以根据需要输入的OTP来提供解决方案。
能够从多个位置和设备访问敏感的公司数据存在明显的风险。 在这种瞬息万变的环境中,需要安全的身份验证来保护数据和应用程序,这对业务需求至关重要。 适用于移动用户的IBM Security Access Manager(ISAM)可以配置第二因素身份验证并将其与基于上下文的访问控制策略集成,以保护其数据和应用程序。
各种不同类型的第二因素认证系统可以与IBM Security Access Manager for Mobile集成。 在本文中,通过使用身份验证机制扩展点线束,将YubiKey用作外部第二因素身份验证系统。
该文档是白皮书将ISAM4Web和YubiKey与EAI集成的直接后续文章,并讨论了ISAM v8.0中引入的更新的身份验证机制框架。 背景知识和动机可以在其中找到。
对于本教程,需要满足以下先决条件:
- 访问固件版本为9.0.1.0或更高的ISAM设备。
- 熟悉IBM Security Access Manager,并具有用于高级访问控制的基本设备的正确许可证。
- 能够运行isamcfg工具,设置基于上下文的访问(CBA)并了解ISAM设备上的身份验证服务。
- 熟悉IBM Security Access Manager for Mobile和认证机制扩展点。
- 熟悉Web反向代理服务器的IBM Security Access Manager。
- 了解Yubico和YubiKeys。
- 知道如何使用Eclipse构建环境。
- 访问Yubico开发人员网站以获取您的API客户端ID和密码。 (注意:这需要有效的YubiKey OTP才能获得。)
本文将涉及以下主题:
- 将YubiKey与ISAM一起使用:了解集成的工作原理。
- ISAM配置:设置ISAM以接受YubiKey作为身份验证形式。
- 使用该机制:测试配置。
下图概述了整个过程。
集成的目的是演示如何使用策略来驱动YubiKey的身份验证和自注册。 它记录了标准策略实施用例。
安全管理员可以在访问资源时使用ISAM4Mobile策略执行操作或加强身份验证。 在此演示中,应用程序使用YubiKey云身份验证服务来验证YubiKey设备生成的OTP。
YubiKey登录和注册认证流程
下图显示了登录和YubiKey注册方案:
这是对图中发生的情况的分步说明:
- 未经身份验证的用户尝试访问受反向代理保护的资源。
- 反向代理以ISAM登录表单和未经身份验证的会话cookie进行响应。
- 用户输入凭据,然后单击Submit 。
- 凭证由反向代理验证。
- 资源访问决策将传递给身份验证服务。
- 身份验证服务评估在受保护的请求资源上创作的策略。
- 客户端将使用OTP表单发送到自定义登录页面。 自定义登录页面包含一个采用YubiKey生成的OTP的表单。
- 用户将YubiKey插入计算机的USB端口并触摸接触点。 YubiKey生成的OTP通过反向代理发送到身份验证服务。
- 身份验证服务尝试找到YubiKey令牌ID,并将其映射到当前登录的用户。 在此步骤之后,您可以对未注册用户(步骤10a)或已注册用户(步骤10b)采取一组单独的步骤。
- 对于未注册的用户 ,请继续执行步骤a。 对于注册用户 ,请继续执行步骤b。
- 未注册用户:
- 如果身份验证服务找不到正确的令牌,则会提示您输入YubiKey。
- 用户将YubiKey插入计算机的USB端口并触摸接触点。 YubiKey生成的OTP会通过反向代理自动发送到身份验证服务。
- 然后,身份验证服务使用YubiKey身份验证机制来处理与YubiKey云身份验证服务的通信。
- 成功消息返回到企业应用程序集成(EAI)。 然后,密钥的唯一令牌标识符与ISAM目录中的已登录用户相关联。
- 然后,受保护资源上的策略将授予访问权限。
- 用户仍然可以通过登录凭据进行会话,并可以访问所请求的资源。
- 注册用户:
- 如果存在与YubiKey的设备ID关联的用户名,则身份验证机制会将OTP转发到YubiKey云身份验证服务。 请注意,本文中的示例代码使用YubiKey测试身份验证服务,并且不打算用于生产。
- 云认证服务将验证YubiKey和OTP并将成功或失败消息返回到认证机制。
- 然后,受保护资源上的策略将授予访问权限。
- 用户仍然具有来自用户名/密码登录的会话,并且可以访问所请求的资源。
YubiKey身份验证服务模块可用于Eclipse项目; 该Eclipse项目使用ant作为构建系统。
共有三个构建目标:
- ant clean
- ant build
- ant package
使用这三个命令来清理,构建和打包项目。 输出文件yubiAsf.jar包含在一个名为ship的文件夹中。
依存关系
可用的项目归档文件不包含生成所需的四个依赖项中的任何一个。 有两种依赖关系:一种是进入dep dir的依赖关系(这些依赖关系仅在构建时才需要,并且不包含在已构建的.jar文件中),另外三种依赖关系都位于lib dir中(这些都包含在构建软件包)。
四个依赖项如下:
- 文件名: com.ibm.security.access.extension_8.0.0.jar
- 说明:这是进入dep目录的唯一依赖项,因为它打包在设备上,不需要包含在创建的.jar文件中。
- 可以从任何ISAM设备在“文件下载”部分下找到包含.jar文件的压缩文件。
- 文件名: yubico-validation-client2-3.0.0-SNAPSHOT-jar-with-dependencies.jar
- 说明:一个Java™客户端,用于管理对Yubico的调用以进行令牌验证。 依赖于slf4j和log4j
- 作为Git项目可从https://github.com/Yubico/yubico-java-client.git获得。
- 文件名: log4j-api-2.4.1.jar
- 说明:Yubico Java客户端使用的日志记录框架。
- 可从以下网站获得: http://logging.apache.org/log4j/2.x/ : http://logging.apache.org/log4j/2.x/
- 档案名称: slf4j-log4j12-1.6.1.jar
- 说明:记录抽象。 由Yubico Java客户端使用。
- 可从以下网站获得: http : //www.slf4j.org/
生成Yubico v2 Client Git项目
构建步骤(CLI):
- 克隆Git存储库: $ git clone https://github.com/Yubico/yubico-java-client.git
- 将目录更改为克隆目录: $ cd yubico-java-client
- 使用Maven构建项目: $ mvn compile package
- 内置的.jar文件位于以下位置: yubico-java-client/v2client/target
构建步骤(Eclipse):
- 右键单击Package Explorer,然后选择import 。
- 输入git作为您的导入源。
- 单击克隆URI。
- 选择主分支,然后选择导入为常规项目。
- 右键单击导入的项目,然后选择配置>转换为Maven项目。
- 右键单击现在转换的项目,然后选择运行方式> Maven构建...。
- 在目标字段中输入compile package 。
- 单击运行。 您将看到下图。
- 该构建现在将运行。 在“ v2client / target”目录中查找已构建的.jar文件。
建立认证机制
要为ISAM身份验证机制构建Java包,您将需要下载与此项目一起提供的project.zip文件。 压缩文件包含一个Ant项目,可用于构建所需的.jar文件。
- 将提供的project.zip文件解压缩到您的工作区中。
- 生成Yubico项目后,将生成的.jar文件复制到/ lib文件夹中,然后将ISAM SDK .jar文件(如前提条件部分所述)复制到/ dep文件夹中。
- 一旦所有依赖项都位于/ lib和/ dep目录中,就可以采用以下两种方式之一构建项目:使用CLI构建步骤或使用Eclipse构建步骤。
构建步骤(CLI)
- 导航到解压缩的p文件夹的根目录。
- 执行ant目标: ant package
- 检查“ ship”文件夹中的yubiAsf.jar资源。
构建步骤(Eclipse)
- 导航到文件>导入
- 输入“将项目退出到工作区”,然后选择下一步 。
- 选择提取的project.zip文件夹的根目录,然后选择Finish 。 该项目应如下图所示:
- 将build.xml文件拖到Eclipse的“ Ant”文件夹中,展开选择,然后单击package展开。 如果“蚂蚁”面板不在其中,请导航至“ 窗口”>“显示视图”>“蚂蚁”。
在Web Gateway Appliance或WebSEAL上完成以下配置步骤,以与YubiKey硬件令牌集成。
注意:您必须已经配置了ISAM运行时和反向代理实例。
交界处管理
为每种环境选择最合适的路口不在此集成范围内。 请参阅IBM Security Access Manager知识中心连接点页面,以获取每种连接点类型的详细信息。
创建到YubiKey保护的Web应用程序网关URL的标准路径连接。
- 打开Web Gateway Appliance Web控制台。
- 选择“ 安全Web设置”>“反向代理” 。
- 选择首选实例。
- 选择管理 > 连接管理 。
- 选择“ 新建” >“ 标准结” 。
- 添加联结名称/ web_app
- 对于Junction Type,选择TCP 。
- 单击“ 新建”以添加目标后端服务器。
- 主机名:product.ibm.com
- TCP或SSL端口:443
- 单击保存。
- 单击“ 取消”关闭“连接管理”窗口。
注意:也可以通过PDAdmin CLI使用以下命令来完成此操作:
server task <server name> create -t tcp -p <portNumber> -h <hostname> /web_app
认证机制
要导入身份验证机制,请按照以下步骤操作:
- 选择安全访问控制>扩展 。
- 单击导入。
- 导航到yubiAsf.jar ,这是您在构建项目时生成的YubiKey身份验证服务模块。
- 单击导入。
- 部署更改。
配置新的身份验证机制
- 打开Web Gateway Appliance Web控制台。
- 选择安全访问控制>身份验证 。
- 选择“ 机制”选项。
- 选择新的身份验证机制 ,然后单击yubiAsf。
- 接下来,转到“ 属性”选项卡。
- 输入下表中的详细信息:
- 点击保存 。
- 部署更改。
认证政策
- 打开Web Gateway Appliance Web控制台。
- 选择安全 访问控制 > 身份验证 。
- 选择“ 新身份验证策略”。
- 单击“ 确定 ”添加“ yubi”工作流程步骤。
- 单击“ 保存”创建身份验证策略。
上载模板文件
- 打开Web Gateway Appliance Web控制台。
- 选择安全访问控制>全局设置>模板文件 。
- 在C > authsvc > authenticator下创建目录yubi
- 部署更改。
- 选择创建的文件夹yubi ,然后单击管理 >导入 。
- 部署更改。
加载Yubico端点证书
- 打开Web Gateway Appliance Web控制台。
- 选择管理系统设置>安全设置> SSL证书 。
- 选择证书数据库rt_profile_keys 。
- 单击管理> 编辑SSL证书数据库。
- 单击签名者证书选项卡。
- 导入YubiCo端点证书。 请参阅附录B:使用Chrome导出Yubico API服务器证书。
- 确保成功导入如下图所示:
- 部署更改。
此时,可以调用身份验证机制。 以下步骤将创建策略并将其附加到特定端点。
建立澳洲联储政策
- 打开Web Gateway Appliance Web控制台。
- 选择安全访问控制 > 策略 > 访问控制 。
- 单击创建策略。
- 单击保存。
附加澳洲联储政策
- 打开Web Gateway Appliance Web控制台。
- 选择安全访问控制>策略>访问控制 。
- 选择资源选项卡。
- 单击添加资源。
- 选择所需的受保护资源的路径。 例如,/ web_app / index.html。
- 单击保存。
- 从“资源”列表中选择资源(/web_app/index.html)。
- 点击附加 。
- 单击确定 。
- 确保将策略附加到正确的路径。
- 单击全部发布。
现在,只要您的ISAM设备可以通过网络访问Yubikey Cloud设施,就可以执行以下流程:
- 注册令牌
- 将令牌作为第二个因素进行身份验证
- 注销令牌
注册令牌
要注册令牌,请执行以下步骤:
- 申请受保护的资源
将令牌作为第二个因素进行身份验证
- 请求受保护的资源。
注销令牌
- 请求受保护的资源。
- 直接调用policyId。 (例如:https:// websealHostname / mga / sps / authsvc?PolicyId = urn:ibm:security:authentication:asf:yubi)
- 点击取消注册 。
- 令牌现在已取消注册。
注意:要注销令牌,用户必须在当前会话中使用该机制进行身份验证。 如果用户已在当前会话中使用该机制进行了身份验证,则可以通过包括查询字符串参数unregister = true(例如: https:// websealHostname / mga / sps / authsvc?PolicyId = urn:ibm)来未经注册而注销令牌。 :security:authentication:asf:yubi&unregister = true )。
现在可以看到集成的全貌:
在本文中,我们学习了如何:
- 构建YubiKey身份验证服务
- 设置反向代理实例
- 使用ISAM移动版编写丰富的策略
- 使用硬令牌作为第二身份验证流程
- 注销令牌
YubiKey身份验证机制使用Yubicloud OTP身份验证服务来扩展使用ISAM4Mobile策略的身份验证功能。 已注册的YubiKey的使用提供了OTP的安全身份验证机制,并提供了一种简单且易于使用的方法来访问有价值的资源。 用户可以将密码用作一次性身份验证机制,仅用于绑定YubiKey令牌,从而消除了用户选择弱密码来保护重要资产的风险。
本教程中的演示不是完整的解决方案。 但是,这表明可以通过集成YubiKey云服务,ISAM4Web和ISAM4Mobile来实现安全性好处。
如果您在集成过程中遇到任何问题,请查看以下说明,以帮助您发现问题。
ISAM应用程序日志
应用程序日志设置
- 导航对监视分析和诊断>运行时跟踪。
- 在“跟踪规范”字段中,键入core.asf=ALL 。
- 导航对监控分析和诊断>应用程序日志文件。
- 展开子文件夹mga>运行时,然后查看trace.log文件。
ConsentRegisterToken.html
同意页面必须具有包含@ACTION@宏和文本输入字段名称regOtp 。 例如:
otpEnter.html
OTP输入页面必须具有带有@ACTION@宏和文本输入字段名称otp的表单。 例如:
unregister.html
该表格包含两个宏。 像以前一样@ACTION@和@TOKEN@ ,显示用户当前关联的令牌ID。 还有一个隐藏的输入字段,请unregister. 例如:
以下步骤将导出Yubico API服务器的签名者证书。
- 浏览至https://api.yubico.com/wsapi/2.0/verify 。
- 单击详细信息。
- 单击查看证书。
- 在“详细信息”选项卡上,突出显示签署者证书(不要使用API服务器证书,因为有多个API服务器,这样可以省去全部导入)。 单击导出。
- 保存证书。
翻译自: https://www.ibm.com/developerworks/security/library/se-using-yubikey-with-isam-2-trs/index.html