在 Liberty 中配置受 OAuth 2.0 保护的资源

可以将 Liberty 服务器配置为充当受 OAuth 2.0 保护的资源服务器。

关于此任务

通过启用 Liberty 中的 openidConnectClient-1.0 功能部件,以及通过设置 inboundPropagation="required" 并输入其他配置信息,可以配置 Liberty 服务器以使其充当受 OAuth 2.0 保护的资源服务器。针对 OAuth 2.0 资源服务器进行配置与在 Liberty 中配置 OpenID Connect 客户机相似。

任何具有 OAuth 不记名 access_token 的参与方都可以使用该令牌来访问 Liberty 中的相关联资源。Liberty 服务器通过调用 OAuth 2.0 令牌内省端点OpenID Connect Userinfo 端点,以远程方式向 OAuth 授权服务器验证 access_token,或者直接向 OpenID Connect 提供者进行验证。

过程

  1. openidConnectClient-1.0 Liberty 功能部件及任何其他所需功能部件添加至 server.xml 文件。对于 openidConnectClient-1.0 功能部件,还需要 ssl-1.0 功能部件。在 server.xml 文件的 featureManager 元素内添加以下元素声明:
    <feature>openidConnectClient-1.0</feature> 	
    <feature>ssl-1.0</feature>
  2. 配置 openidConnectClient 元素,并通过添加 inboundPropagation="required" 将该元素作为受 OAuth 2.0 保护的资源服务器启用。以下是使用 Liberty 服务器 OpenID Connect 提供者和 OAuth 2.0 授权服务器的最低配置的示例。
    <openidConnectClient id="RS" inboundPropagation="required"		
      clientId="client01" 		
      clientSecret="{xor}LDo8LTor" 		
      validationEndpointUrl="https://server.example.com:443/oidc/endpoint/OP/introspect">		
    </openidConnectClient>
    注: 在此样本配置中,Liberty 通过设置 validationMethod="introspect" 来执行 OAuth 2.0 令牌自省。将根据从自省端点返回的 JSON 对象直接创建一个已经过认证的主体集,而无需使用用户注册表。
    注: 要允许 Liberty 执行令牌自省,Liberty OAuth 2.0 资源服务器必须将其本身注册为 OAuth 授权服务器或 OpenID Connect 提供者的 OAuth 客户机,并且可以执行令牌自省请求。clientIdclientSecret 由授权服务器提供。
  3. 配置服务器的信任库以使其包含授权服务器的签署者证书,并修改服务器的 SSL 配置以使用所配置的信任库。有关密钥库的信息,请参阅“在 Liberty 中启用 SSL 通信”。

    有关密钥库的信息,请参阅在 Liberty 中启用 SSL 通信

  4. 可选:配置用户注册表。

    缺省情况下,授权服务器返回的用户身份不会映射至注册表用户,因此用户注册表中不需要用户。但是,如果 openidConnectClient 元素的 mapIdentityToRegistryUser 属性设置为 true,那么从授权服务器返回的相应身份必须有对应的用户条目,认证和授权才能成功。有关配置用户注册表的更多信息,请参阅在 Liberty 中配置用户注册表

  5. 可选:配置认证过滤器。

    如果已启用 openidConnectClient-1.0 功能部件并且未对 openidConnectClient 元素配置 authFilterRef 属性,那么系统将通过此 openidConnectClient 元素对任何未经认证的请求尝试进行认证。

    有关配置认证过滤器的更多信息,请参阅认证过滤器

  6. 可选:通过创建多个 openidConnectClient 元素和多个认证过滤器,可将 Liberty 配置为与多个授权服务器和 OpenID Connect 提供者配合工作的 OAuth 2.0 资源服务器。每个 openidConnectClient 元素定义与一个授权服务器或 OpenID Connect 提供者的一种信任关系,并使用 authFilterRef 属性引用一个认证过滤器。
  7. 可选:通过设置 validationMethod="userinfo",可以将 Liberty 资源服务器配置为验证令牌并接收来自 OpenID Connect userinfo 端点的用户信息。
  8. 可选:Liberty 资源服务器使用 JSON 中的声明以及从授权服务器接收到的声明来创建认证主体集,您可以定义有关如何将 JSON 映射到主体集的规则,请参阅 OpenID Connect 客户机中的 userIdentifiergroupIdentifierUserUniqueIdentifierrealmIdentifierrealmName
  9. 可选:受 Liberty OAuth 2.0 保护的资源服务器期望每个请求都提供有效的访问令牌,并且不会将单点登录 Cookie 用于认证。但是,通过设置 authnSessionDisabled="false",可以将 Liberty 配置为创建单点登录 Cookie。
  10. 可选:还可以实现 com.ibm.wsspi.security.oauth.UserCredentialResolver SPI,以编程方式将 JSON 映射到主体集。

结果

您现在已建立将 Liberty 服务器配置为 OAuth 2.0 所保护的资源服务器(它能够与 OAuth 授权服务器或 OpenID Connect 提供程序通信)所需的最低限度配置。

用于指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_config_oauth20_protected_resource
文件名:twlp_config_oauth20_protected_resource.html