Liberty 儲存庫[8.5.5.4 或更新版本]

在 Liberty 設定檔中配置「OpenID Connect 用戶端」

您可以將 Liberty 設定檔伺服器配置成擔任「OpenID Connect 用戶端」或「依賴方」,以充分利用 Web 單一登入,以及使用「OpenID Connect 提供者」作為身分提供者。

關於這項作業

您可以啟用 Liberty 設定檔的 openidConnectClient-1.0 特性,外加提供其他的配置資訊,來將 Liberty 設定檔伺服器配置成擔任「OpenID Connect 用戶端」。

程序

  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 元素。下列範例是最基本的配置,如此才能與預設 Liberty 設定檔伺服器的「OpenID Connect 提供者」搭配運作。

    用戶端在給定的 URL 型樣必須有配置適當的應用程式,且其可以處理來自「OpenID Connect 提供者」的重新導向要求。這個 URL 也必須完全符合用戶端向 OP 登錄的重新導向 URL。

    註: 在本例中,用戶端預期 OP 的 SSL 埠設為 443。
    <openidConnectClient id="client01" 		
        clientId="client01" 		
        clientSecret="{xor}LDo8LTor" 		
        authorizationEndpointUrl="https://server.example.com:443/oidc/endpoint/OidcConfigSample/authorize" 		
        tokenEndpointUrl="https://server.example.com:443/oidc/endpoint/OidcConfigSample/token"> 	
    </openidConnectClient>
    在這個最基本的配置範例中,會假設下列預設值:
    • scope=openid profile:需要 openid 範圍,且您可以使用 scope 屬性來編輯必要範圍。舉例來說,您可以將必要 scope 變更為 openid profile email
    • 此 RP 會向 OP 將其重新導向 URL 登錄為 https://<host name>:<ssl port>/oidcclient/redirect/client01,其中,會自動解析主機名稱和 ssl 埠,且 client01openidConnectClient 配置元素的 ID。若有 Proxy 位於 RP 前面,您可以使用 redirectToRPHostAndPort 屬性置換主機名稱和埠,並將 redirectToRPHostAndPort 設為 https://<host name>:<ssl port>
  3. 配置使用者登錄。依預設,OP 傳回的使用者身分不會對映至登錄使用者,因此不需在登錄中配置任何使用者。不過,如果 openidConnectClient 元素的 mapIdentityToRegistryUser 屬性設為 true,則 OP 所傳回的適當身分必須有一個使用者項目,這樣鑑別和授權才會成功。如需配置使用者登錄的相關資訊,請參閱配置 Liberty 設定檔的使用者登錄
  4. 配置伺服器的信任儲存庫,以包含支援的「OpenID Connect 提供者」簽章者憑證。如需金鑰儲存庫的相關資訊,請參閱啟用 Liberty 設定檔的 SSL 通訊
  5. 修改伺服器的 SSL 配置,以使用所配置的信任儲存庫。
    <sslDefault sslRef="DefaultSSLSettings" />
    <ssl id="DefaultSSLSettings" keyStoreRef="myKeyStore" trustStoreRef="myTrustStore" /> 	
    <keyStore id="myKeyStore" password="{xor}EzY9Oi0rJg==" type="jks" location="${server.config.dir}/resources/security/BasicKeyStore.jks" /> 	
    <keyStore id="myTrustStore" password="{xor}EzY9Oi0rJg==" type="jks" location="${server.config.dir}/resources/security/BasicTrustStore.jks" />

    OpenID Connect 是配置成使用伺服器指定的預設 SSL 配置。因此,伺服器的預設 SSL 配置必須使用配置給 OpenID Connect 的信任儲存庫。

  6. [8.5.5.5 或更新版本]選用:配置協力廠商 OpenID Connect 提供者。

    如果要將 Liberty OpenID Connect 用戶端配置成使用協力廠商「OpenID Connect 提供者」(例如 Microsoft Azure 或 Google),您必須配置下列屬性。如果要取得屬性值,可呼叫 OP 的探索端點,這會在 /.well-known/openid-configuration 字串配上發證者而形成的路徑中提供 JSON 文件。

    1. jwkEndpointUrl 屬性設為 OP JSON Web 金鑰集 JWK 文件的 URL,這在探索檔案中是定義成 jwks_uri。舉例來說,如果要使用 Google 的 OP,您可以設定 jwkEndpointUrl = "https://www.googleapis.com/oauth2/v2/certs"
    2. issuerIdentifier 屬性設為探索檔案中所定義的 issuer。如果 ID 記號沒有包含此值來作為 iss 聲明,則會被拒絕。舉例來說,如果您使用 Google 作為您的 OP,您可以設定 issuerIdentifier="accounts.google.com"
    3. 設定 signatureAlgorithm="RS256"。Liberty OpenID Connect 用戶端的預設簽章演算法是 HS256。
    4. userIdentityToCreateSubject 屬性設為供應商 ID 記號所使用的聲明名稱,以代表使用者的唯一 ID。舉例來說,如果您使用 Google 的 OP,可設定 userIdentityToCreateSubject ="email",如果您使用 Microsoft Azure,可設定 userIdentityToCreateSubject ="upn"userIdentityToCreateSubject ="unique_name"
    5. groupIdentifier 屬性設為代表使用者的群組成員資格或角色的聲明名稱。舉例來說,如果您使用 Microsoft Azure,可設定 groupIdentifier="groups"

    如需其他的「OpenID Connect 用戶端」配置選項,請參閱server.xml 檔中的配置元素

  7. [8.5.5.5 或更新版本]選用:鑑別過濾器。

    當啟用 openidConnectClient-1.0 特性時,如果沒有使用 authFilterRef 屬性來配置 openidConnectClient 元素,任何未經鑑別的要求,都會經由 OpenID Connect 提供者來鑑別。

    如需配置鑑別過濾器的相關資訊,請參閱Liberty 儲存庫[8.5.5.5 或更新版本]鑑別過濾器

  8. 支援多個 OpenID Connect 提供者。

    您可以建立多個 openidConnectClient 元素和多個「鑑別過濾器」,以便將 Liberty 設定檔配置成多個「OpenID Connect 提供者」的「OpenID Connect 依賴方」。每一個 openidConnectClient 元素各與一個「OpenID Connect 提供者」之間定義一項「單一登入」關係,並使用 authFilterRef 屬性,來參照一個「鑑別過濾器」。

結果

現在,您已建立所需的最基本配置,如此就能將 Liberty 設定檔伺服器配置成「OpenID Connect 用戶端」,並且能夠與配置成「OpenID Connect 提供者」的其他 Liberty 設定檔伺服器通訊。

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

資訊中心條款 | 意見


「時間戳記」圖示 前次更新: 2015 年 6 月 22 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_config_oidc_rp
檔名:twlp_config_oidc_rp.html