在 Liberty 中配置 OAuth 2.0 受保護資源

您可以配置一部 Liberty 伺服器,以充當 OAuth 2.0 受保護資源伺服器。

關於這項作業

您可以配置一部 Liberty 伺服器,來擔任 OAuth 2.0 受保護資源伺服器,作法是在 Liberty 中啟用 openidConnectClient-1.0 特性,除了其他的配置資訊之外,還要設定 inboundPropagation="required"。 OAuth 2.0 資源伺服器的配置類似於 在 Liberty 中配置「OpenID Connect 用戶端」

只要是 OAuth 載送 access_token 的佔有者,就可以利用該記號,取得 Liberty 中相關聯資源的存取權。Liberty 伺服器會呼叫 OAuth 2.0 記號內部檢查端點OpenID Connect Userinfo 端點,直接從遠端向 OAuth 授權伺服器或 OpenID Connect 提供者驗證 access_token

程序

  1. server.xml 檔中新增 openidConnectClient-1.0 Liberty 特性和其他任何必要特性。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 特性,且未以 authFilterRef 屬性來配置 openidConnectClient 元素,凡嘗試發出未經鑑別的要求時,都會利用這個 openidConnectClient 元素來鑑別。

    如需配置鑑別過濾器的相關資訊,請參閱鑑別過濾器

  6. 選用:您可以建立多個 openidConnectClient 元素和多個鑑別過濾器,將 Liberty 配置成 OAuth 2.0 資源伺服器,以便與多部授權伺服器和 OpenID Connect 提供者一起運作。每一個 openidConnectClient 元素各定義一項與一部授權伺服器或 OpenID Connect 提供者的信任關係,並使用 authFilterRef 屬性來參照至一個鑑別過濾器。
  7. 選用:您可以設定 validationMethod="userinfo",將 Liberty 資源伺服器配置成驗證記號,並從 OpenID Connect userinfo endpoint 接收使用者資訊。
  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 提供者通訊。

指示主題類型的圖示 作業主題



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
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