O">Auth 一直是 Web 应用程序委托授权的事实标准。除了委托访问权限之外,OAuth 也越来越多地用于传统身份验证和授权角色,云和移动技术的普遍化趋势更推动了这种形势。2012 年,OAuth 2.0 规范最终敲定,许多企业很快就采用了新协议。
为了支持 OAuth 2.0 规范,IBM WebSphere Application Server V8.5.0.2 的 Liberty 配置文件中添加了 OAuth 2.0 服务提供程序功能。要利用此功能,必须在服务器定义中启用 OAuth 特性。
本文介绍了将 WebSphere Application Server Liberty 配置文件配置为 OAuth 服务提供程序所需的关键步骤。
先决条件
本文假设您对 OAuth 2.0 协议有基本的了解,例如,了解 OAuth 客户端与 OAuth 服务提供程序之间的差别。尽管不了解协议也能按照本文所述的配置步骤完成学习,但大体了解本协议对于评估 OAuth 对企业安全性的影响有着重要意义。参考资料 部分提供了出色的简介材料。
此外,本文还假设您对 WebSphere Application Server 和 Liberty 配置文件有大体的了解,特别是安装 Liberty 配置文件、创建服务器以及更新服务器配置。
要使用和配置 WebSphere Application Server 内的 OAuth 2.0 支持,您必须具备以下先决条件:
WebSphere Application Server V8.5.0.2 Liberty 配置文件。
高级架构和特性
首先,我们将简单介绍 WebSphere Application Server Liberty 配置文件中的 OAuth 实现,帮助您了解配置步骤对 WebSphere Application Server 的影响。这些信息对于调试和调优配置设置有很大的帮助。尽管熟悉完整配置文件式 OAuth 的用户可能会发现,Liberty 配置文件中的 OAuth 易于配置和使用,但 Liberty 配置文件中的 OAuth 功能与完整配置文件之间存在一些重要的差异。
Liberty 配置文件以单一运行时安全服务的形式提供 OAuth 服务提供程序支持(如图 1 所示)。服务器配置文件内定义了 OAuth 配置,这也是在 Liberty 配置文件中启用 OAuth 所需的惟一配置。在服务器配置文件内定义 OAuth 服务器之后,服务器将激活 OAuth 支持所需的部分,例如终端 servlet 和授权模块。利用 Liberty 服务器的动态更新功能,就可以直接对服务器配置文件进行运行时更改,无需使用多个配置界面。
图 1. Liberty 配置文件中的安全性
请参见图 1 中的数字,这里给出了 Liberty 配置文件中的 Web 应用程序安全性步骤:
客户端请求 Web 资源。 Web 容器将安全性检查委托给 Web Security Collaborator(粘接代码)。 Web Security Collaborator 提示用户输入其凭据(若未输入),并使用授权服务对用户执行身份验证。 身份验证服务执行身份验证,
然后创建和返回主体。 Web Security Collaborator 使用授权服务执行用户授权检查。 授权服务将授权结果返回给 Web Security Collaborator。 Web Security Collaborator 返回安全检查的结果(true 或 false)。 Web 容器处理或拒绝所请求的资源。
OAuth 组件包括:
OAuth 运行时:OAuth 数据和终端控制器。 Liberty server.xml:定义 OAuth 配置,用于注册新客户端以及单点配置。 令牌存储(数据库或文件)。 授权和 Consent servlet:处理位于 http://servername /oauth2/endpoint/<provider_name>/authorize 的用于人机浏览器交互的 OAuth 终端。 令牌请求 servlet:处理位于 http://servername /oauth2/endpoint/<provider_name>/
token 的用于客户端编程交互的 OAuth 终端。
WebSphere Application Server Liberty 配置文件中可用的 OAuth 相关特性包括:
完整的 OAuth 2.0 规范合规性,包括对所有核心授权类型的支持:授权代码、隐式授权、资源所有者密码凭据和客户端凭据。 Bearer 令牌规范合规性。 对公开和机密客户
端的支持。 刷新令牌支持。 对通过终端和数据隔离区分的多个 OAuth 提供程序的多租户支持。 令牌和客户端的 XML 文件或数据库存储。 通过服务器 XML 编辑进行的配置。 可定制的 servlet UI。 样例配置文件。 管理员或用户执行的令牌撤销。 无需
重新启动服务器即可重新配置。 可配置的身份验证处理,包括各提供程序的受保护 URL 和令牌处理。 定义身份验证参数的高级规则语法。
尽管 WebSphere Application Server Liberty 配置文件提供了保护托管应用程序所需的全部 OAuth 功能,但并未全面覆盖所有可能的 OAuth 配置。对于高级部署(例如将托管 OAuth 作为非 WebSphere Application Server 产品的 SSO 解决方案,或者将 OAuth 与高度定制的数据存储库一起使用),请考虑 IBM Tivoli® Federated Identity Manager 产品。
以下内容仅介绍了基本配置所需的最基础的设置步骤。