OpenID Connect 依賴方自訂內容

OpenID Connect (OIDC) 依賴方 (RP) 信任關聯攔截程式 (TAI) 的自訂內容有助於判斷 OpenID Connect 依賴方 (RP) 的行為。 您可以使用管理主控台,在 OIDC TAI 的「自訂內容」視窗中定義這些內容。

自訂內容用來判斷 OpenID Connect RP 的行為,以及與 OpenID Connect 提供者 (OP) 通訊。 您可以配置多個 OpenID Connect 提供者的自訂內容。

避免麻煩: 如果您使用出埠 Proxy , OpenID Connect RP 不會提供自動透過 Proxy 主機來遞送要求的方法。

如果您必須使用 Proxy 來存取 OpenID Connect 提供者 (OP) ,您在任何 OP 相關 URL 內容中輸入的值都必須包含 Proxy 主機和埠,而不是外部 OP 主機和埠。

在大部分情況下,您可以用 Proxy 主機和埠,取代 OP 主機和埠。 RP 和用戶端(瀏覽器或應用程式)必須都能看見您所輸入的 URL。 對於如何判斷所要使用的正確 URL,如需進一步指引,請聯絡您的 Proxy 管理者。

在本例中,用戶端預期的 SSL 埠設為 443。

為了指派用來識別每一個 OpenID Connect 提供者的唯一內容名稱, provider_<id> 會內嵌在內容名稱中,並且用來將每一個 OP 相關聯的內容分組在一起。 對於每一個 OP , provider_<id>s 會循序編號,其中 <id> 是一個數字。 未以 provider_<id>作為字首的內容是套用至所有提供者的自訂內容。
避免麻煩: OIDC TAI 使用過濾器來選擇提供者配置以處理要求。 定義過濾器的內容為 provider_<id>.filter、 provider_<id>.interceptedPathFilter 及 provider_<id>.excludedPathFilter。 如果要求符合多個提供者的過濾條件, TAI 選擇的提供者配置是不確定的。
內容分成兩個種類:
  • 必要內容: 如果未定義這些內容, RP 無法起始設定。 在功能上,如果未定義內容,則相當於未安裝 RP。
  • 選用內容: 這些內容具有所記載的預設值。 它們用來細部調整 RP 的行為。
提示: 使用「JSON Web 記號」進行鑑別時,不需要下表中的內容。 如需僅使用提供者項目來執行 JWT 鑑別時所需的內容清單,請參閱 僅限 JWT 鑑別提供者項目所需的內容
表 1. OpenID Connect 依賴方的必要自訂內容
內容名稱 說明
provider_<id>.identifier 您可以指定任何字串值。 此內容沒有預設值。 provider_<id> 字首中指定 <id> 所識別的每一個 OpenID 連接提供者的唯一名稱。 這個 ID 是您所建立,用來建置向 OP 登錄的重新導向 URL。
例如:
provider_1.identifier=abc
Redirect URL:https://myrp.com:9443/oidcclient/abc
provider_2.identifier=test
Redirect URL:https://myrp.com:9443/oidcclient/test
provider_<id>.clientId 您可以指定任何字串值。 此內容沒有預設值。 指定用來向 OpenID Connect 提供者伺服器識別 OpenID Connect RP 實例的 ID。 在向提供者登錄的所有 RP 用戶端中,它必須是唯一的。
provider_<id>.clientSecret 您可以指定純文字或 XOR 編碼值。 此內容沒有預設值。 指定 OpenID Connect 提供者用來保護在回呼要求中傳送給這個 RP 用戶端之訊息安全的密鑰。 它必須符合針對此用戶端登錄的 OpenID Connect 提供者密鑰。
例如:
app_a_secret 
{xor}Pi8vAD4ALDo8LTor

[9.0.5.2 或更新版本]如果 OpenID 提供者未預期 clientSecret 參數,例如當您的記號要求使用 OAuth 2.0 相互 TLS 用戶端鑑別時 (如 RFC8705中所述) ,則不需要此參數。


[9.0.5.4 或更新版本] provider_<id>.discoveryEndpointUrl

useDiscovery 設為 true時,此內容的預設值為 (issuerIdentifier)/.well-known/openid-configuration
[9.0.5.4 或更新版本]附註: 如果未指定 EITHER provider_<id>.authorizeEndpointUrlprovider_<id>.tokenEndpointUrl ,則為 REQUIRED。
指定 OpenID Connect 提供者的探索端點 URL。
指定此內容時,會從探索結果取得下列內容:
  • authorizeEndpointURL
  • tokenEndpointUrl
  • introspectEndpointURL
  • userinfoEndpointURL
  • revokeEndpointURL
  • endSession端點
  • jwkEndpointUrl
  • tokenEndpointAuthMethod
  • issuerIdentifier
  • signatureAlgorithm

在 9.0.5.13版之前,已置換 signatureAlgorithm 內容。

當 OIDC TAI 配置中包含 discoveryEndpointUrl 內容時,如果這些內容中有任何內容也包含在配置中,則會忽略其設定。

要求會傳送至探索端點,並在起始設定 OIDC TAI 時處理傳回的資料。 當起始設定 TAI 時,如果無法存取探索端點,則與探索端點相關聯的 OIDC TAI 配置項目不在作用中,且不會截取其要求。

OIDC TAI 不會重新整理從探索端點收到的資料。 當 OP 變更其探索中的資訊時,必須重新啟動應用程式伺服器。

useDiscovery 設為 true時,此內容的預設值為 (issuerIdentifier)/.well-known/openid-configuration。 當 useDiscovery 內容設為 false時,會忽略這個內容的值。

provider_<id>.authorizeEndpointUrl 您可以指定任何 URL 值。 此內容沒有預設值。
[9.0.5.4 或更新版本]附註: 如果未指定 provider_<id>.discoveryEndpointUrl ,則為 REQUIRED。
指定用來將授權要求重新導向至 OpenID Connect 提供者的端點 URL。

例如: https://myoidcop.abc.com:8020/oidc/endpoint/OP/authorize

[9.0.5.3 或更新版本] 如果這個內容的值中有 acr_values 參數,當 OP 傳回 IDToken 時, TAI 會驗證 IDToken 是否包含 'acr' 要求。 TAI 也會驗證要求的值是否符合 acr_values 參數的值。

provider_<id>.tokenEndpointUrl 您可以指定任何 URL 值。 此內容沒有預設值。
[9.0.5.4 或更新版本]附註: 如果未指定 provider_<id>.discoveryEndpointUrl ,則為 REQUIRED。
指定端點 URL ,用來將記號要求重新導向至 OpenID Connect 提供者。

例如: https://myoidcop.abc.com:8020/oidc/endpoint/OP/endpointe

表 2. OpenID Connect 依賴方 TAI 的選用自訂內容
內容名稱 說明

provider_<id>.filter

如需定義此內容的相關資訊,請參閱說明文件中關於 SAML 單一登入 (SSO) TAI 自訂內容的 SAML TAI 過濾器內容 小節。 這個內容用來指定針對要求所檢查的條件,以查看 TAI 是否保護這個要求。 此內容的格式與 SAML sso_<id>.sp.filter 內容的格式相同。

除非指定 provider_<id>.grantType 參數,否則 OIDC TAI 配置中必須至少包含其中一個 *provider_<id>.interceptedPathFilter 內容。

[9.0.5.6 或更新版本]TAI 會自動截取 OP/callbackServlet環境定義/ID中的回呼 URI。 您不需要在過濾器中說明回呼。 https://myrp.com:9443/oidcclient/RP1是回呼 URL 的範例。


provider_<id>.interceptedPathFilter

您可以指定以逗點區隔的 URI 型樣清單。 此內容沒有預設值。 指定以逗點區隔的正規表示式型樣清單,以對照要求 URI 來查看 TAI 是否會截取要求。 若要截取所有要求,請使用 /.* 型樣。 例如,指定 /abcCompanyApps.*, /snoop 型樣。

除非指定 provider_<id>.grantType 參數,否則 OIDC TAI 配置中必須至少包含其中一個 provider_<id>.filterprovider_<id>.interceptedPathFilter 內容。

TAI 會自動截取 OP 中的回呼 URI/callbackServlet環境定義/ID。 您不需要在過濾器中說明回呼。 https://myrp.com:9443/oidcclient/RP1是回呼 URL 的範例。

provider_<id>.excludedPathFilter 您可以指定以逗點區隔的 URI 型樣清單。 此內容沒有預設值。 這個內容指定正規表示式型樣的逗點區隔清單,這些型樣會與要求 URI 相互比較,以判斷要求是否不應受到 TAI 保護。 這可用來提供 interceptedPathFilter的異常狀況。
例如:

/abcCompanyApps/admin.*, /abcCompanyApps/public.*

[9.0.5.6 或更新版本]provider_<id>.accessTokenIsJwt

您可以指定下列其中一個值:
  • true
  • false (預設值)
如果從 OP 傳回的存取記號是 JWT ,且您想要 TAI 驗證 JWT ,請將這個內容設為 true 值。

alwaysInvalidateAccessTokenOnLogout

您可以指定下列其中一個值:
  • true
  • false (預設值)
依預設,如果在登出期間要求中出現 OIDC 階段作業 Cookie ,則登出只會使用與 OIDC 階段作業 Cookie 相關聯的資訊。 如果沒有 OIDC 階段作業 Cookie ,則登出會使用要求的 Authorization 標頭中的存取記號。

如果此內容設為 true,則登出會使用來自要求的 OIDC 階段作業 Cookie 及 Authorization 標頭 (如果它們存在的話) 的資訊。


provider_<id>.defaultRealmName

此內容沒有預設值。 如果未從記號取得網域範圍名稱,則為要使用的網域範圍名稱。

provider_<id>.encodeNewline

您可以指定下列其中一個值:
  • true (預設值)
  • false

When this property is set to , the new line characters that exist in POST parameters are not encoded into encoded <br> tags.


[9.0.5.6 或更新版本]provider_<id>.endSessionEndpoint

此內容沒有預設值。

在 9.0.5.14版之前,請將此內容設為 Open ID 提供者的階段作業端點值。 然後可以使用 API 來存取 Open ID 提供者的結束階段作業端點值。 如果指定 provider_<id>. discoveryEndpointUrl 內容,則會置換此內容的值。

[9.0.5.14 或更新版本]
將此內容設為 Open ID 提供者的結束階段作業端點值。 當這個內容設為值,且 provider_<id>.endSessionEndpointEnabled 內容設為 true 時, TAI 會將登出要求重新導向至所配置的結束階段作業端點。 id_token_hint 參數會新增至結束階段作業要求。 如果指定 provider_<id>.discoveryEndpointUrl 內容,則會置換此內容的值。 可以使用 OidcClientHelper.getEndSessionEndpoint() 方法來擷取此內容的值。


[9.0.5.14 或更新版本]provider_<id>.endSessionEndpointEnabled

您可以指定下列其中一個值:
  • true
  • false (default)
將此內容設為 true ,以使用 provider_<id>.endSessionEndpoint 內容上指定的 URL 來啟用「RP 起始登出」。 如果端點是從 TAI 內容或探索取得,則此處理程序適用。 如果有結束階段作業端點可用,且 endSessionEndpointEnabled 內容設為 false,則可以使用 OidcClientHelper.getEndSessionEndpoint() 方法來擷取所配置的結束階段作業端點。

[9.0.5.14 或更新版本]provider_<id>.endSessionRedirectUrl

此內容沒有預設值。

在登出完成之後,將這個內容設為您要 OP 重新導向至其中的端點。 在 OP 的登出要求中,此內容的值會作為 post_logout_redirect_uri 參數的值傳遞。

  • 如果您提供這個內容的值,請配置您的 OP 來注意端點。 OP 必須重新導向至他們辨識的 post_logout_redirect_uri 值。
  • 請參閱 OP 說明文件,以瞭解登出要求中未包含 post_logout_redirect_uri 參數時所發生的情況。

[9.0.5.14 或更新版本]provider_<id>.endSessionUseLogoutExitPage

您可以指定下列其中一個值:
  • true
  • false (default)
將此內容設為 true ,以使用 logoutExitPage 參數的值作為 post_logout_redirect_uri 參數的值。 logoutExitPage 參數的值是在 ibm_security_logout 要求上。 post_logout_redirect_uri 參數的值是在 OP 的結束階段作業要求上。

[9.0.5.6 或更新版本]provider_<id>.introspectClientId

依預設,此內容會設為提供給 provider_<id>.clientId 內容的值。 指定 clientId ,以包含在對 OpenID 提供者內部檢查端點的要求中。

[9.0.5.6 或更新版本]provider_<id>.introspectClientSecret

您可以指定純文字或 XOR 編碼值。 依預設,此內容會設為提供給 provider_<id>.clientSecret 內容的值。 指定要併入 OpenID 提供者內部檢查點之要求中的用戶端密碼。 此內容可以用純文字指定,也可以進行 XOR 編碼,例如 {xor}CDo9Hgw=
provider_<id>.introspectEndpointUrl 您可以指定任何 URL 值。 此內容沒有預設值。 指定用來呼叫 OpenID Connect 提供者內部檢查端點的端點 URL。
例如:

https://myoidcop.abc.com:8020/oidc/endpoint/OP/introspect

[9.0.5.6 或更新版本]provider_<id>.jwkClientSecret

您可以指定純文字或 XOR 編碼值。 此內容沒有預設值。 指定包含在 JWK 要求基本鑑別架構中的用戶端密碼。 此內容可以用純文字指定,也可以進行 XOR 編碼,例如 {xor}CDo9Hgw=

[9.0.5.6 或更新版本]provider_<id>.jwkClientId

此內容沒有預設值。 指定包含在 JWK 要求基本鑑別架構中的用戶端 ID。
callbackServletContext 您可以指定任何環境定義根目錄值,但它必須符合配置給 OpenID Connect RP 回呼 Servlet 的環境定義根目錄。 依預設,此內容會設為 /oidcclient的值。 disSpecifies 針對 OpenID Connect RP 回呼 Servlet 所配置的環境定義根目錄。 TAI 會使用此內容來過濾來自 OpenID Connect 提供者的回呼要求。 通常,此內容設為 /oidcclient。 此內容的值必須符合將 com_ibm_ws_security_oidc_servlet_war 部署至本端 WebSphere®時所配置的環境定義根目錄。 它也必須符合 OpenID Connect 提供者的已登錄 URL 中 URI 開頭的已登錄回呼。 例如:/oidcclient

provider_<id>.signatureAlgorithm

您可以指定下列其中一個值:
  • none
  • HS256(當 useJwtFromRequest 設為 required時,為預設值)
  • RS256
  • [9.0.5.4 或更新版本]RS512
  • [9.0.5.13 或更新版本]HEADER(預設值)

在 9.0.5.13版之前, RS256 是預設值。

指定用來保護來自 OpenID Connect 提供者之訊息安全的演算法。

[9.0.5.13 或更新版本]
當此內容設為 HEADER時,會從每一個入埠記號的標頭取得值。 值設為 HEADER 時所支援的簽章演算法包括 jose4j 開放程式碼專案 0.6.5版所支援的任何值。 如需相關資訊,請參閱 jose4j 開放程式碼專案


[9.0.5.13 或更新版本]provider_<id>.signatureAllowList

您可以指定以逗點區隔的簽章演算法清單。 此內容沒有預設值。 指定允許保護來自 OpenID Connect 提供者之訊息安全的簽章演算法清單 (以逗點區隔)。 如果 provider_<id>.signatureAlgorithm 內容設為 HEADER以外的值,則會忽略此內容。 無法同時提供此內容及 provider_<id>.signatureDenyList 內容的值。

此清單可以包括 jose4j 開放程式碼專案 0.6.5版所支援的任何值,但 HS256除外。 如需相關資訊,請參閱 jose4j 開放程式碼專案 。 除了確保 HS256 簽章演算法不在清單中之外, OIDC TAI也不會驗證此內容的值。


[9.0.5.13 或更新版本]provider_<id>.signatureDenyList

您可以指定以逗點區隔的簽章演算法清單。 請參閱預設值的說明。 指定不容許保護來自 OpenID Connect 提供者之訊息安全的簽章演算法清單 (以逗點區隔)。 如果 provider_<id>.signatureAlgorithm 內容設為 HEADER以外的值,則會忽略此內容。 無法同時提供此內容及 provider_<id>.signatureAllowList 內容的值。

此清單可以包括 jose4j 開放程式碼專案 0.6.5版所支援的任何值。 如需相關資訊,請參閱 jose4j 開放程式碼專案

如果已配置的清單不包含 HS256 值,則在符合下列任何條件時,會將該值新增至清單:

  • provider_<id>.useJwtFromRequest 內容設為必要。
  • provider_<id>.signatureAlgorithm 內容設為 HEADER
  • 探索正在使用中, HS256 不是 OP 探索結果中要要求之 id_token_signing_alg_values_supported 內容的唯一值。
provider_<id>.jwkEndpointUrl 您可以指定任何 URL 值。 此內容沒有預設值。

指定 OP 的「JSON Web 金鑰 (JWK)」集文件的 URL ,其中包含 RP 用來驗證 OP 簽章的簽署金鑰。

如果 signatureAlgorithm 自訂內容設為 RS256 ,且您未設定 signVerifyAlias 自訂內容,以便從預設信任儲存庫取得 OP 的簽署憑證,則必須設定這個內容。

provider_<id>.userIdentifier 依預設,此內容會設為 sub的值。

此內容設為供應商 ID 記號所使用的要求名稱,代表使用者的唯一 ID。 例如,如果您使用 Google的 OP ,則可以設定 userIdentifier = email

此內容在 JWT 中參照的要求值必須是 String


provider_<id>.useDefaultIdentifierFirst

您可以指定下列其中一個值:
  • true
  • false (預設值)
如果指定自訂 ID 給使用者 (userIdentifier)、唯一使用者 (uniqueUserIdentifier)、群組 (groupIdentifier) 或領域 (realmIdentifier) ,則只有在記號中沒有預設值時,才會使用自訂值。

[9.0.5.17 或更新版本]provider_<id>.usePkce

您可以指定下列其中一個值:
  • true
  • false (預設值)

如果您要 TAI 在使用程式碼授權流程進行鑑別時使用「程式碼交換的證明金鑰 (PKCE)」,請將此內容設為 true 。 當 OIDC TAI 使用 PKCE 時,一律會將 code_challenge_method 設為 S256 。 如需相關資訊,請參閱 OAuth 公用用戶端驗證程式碼交換的金鑰

provider_<id>.scope 依預設,此內容會設為 openid profile的值。 指定 OpenID Connect 提供者所要求的記號範圍。 此內容會決定發出的記號將具有的授權層次。 例如: openid general
provider_<id>.issuerIdentifier useJwtFromRequest 設為 required時,此內容沒有預設值。 否則,此內容的預設值會設為衍生自 authorizedEndpointUrl的值。 IDToken 或 JWT 中容許 iss 要求的值清單 (以逗點區隔)。 當 useJwtFromRequest 未設為 required時,此內容的預設值衍生自 authorizedEndpointUrl 值。
例如:
https://myoidcop.abc.com:8020/oidc/v10/endpoint/OP1

provider<id>_.verifyIssuerInIat 內容設為 true時,會根據 issuerIdentifier 清單來檢查 IDToken 或 JWT 中的 iss 要求。

當透過探索取得配置時,從 OpenID 提供者收到的值會置換 issuerIdentifier 內容。

此內容在 JWT 中參照的要求值必須是 String

provider_<id>.groupIdentifier 依預設,此內容設為值 groupIds 指定 OpenID Connect 提供者在 IDToken中設定的群組屬性名稱。 例如:groupIds
provider_<id>.mapIdentityToRegistryUser 您可以指定下列其中一個值:
  • true
  • false (預設值)
當這個內容設為 false(預設值) 時, WebSphere 主題會移入 OpenID Connect 提供者領域中的使用者和群組。 使用者和群組不需要存在於 WebSphere Application Server 使用者登錄中。 當此內容設為 true時,已鑑別使用者的簡稱必須位於 WebSphere 登錄中,且群組成員資格會套用至使用者。
provider_<id>.revokeTokensOnCacheEviction 您可以指定下列其中一個值:
  • true
  • false (預設值)
當此內容設為 true ,且 revokeEndpointUrl 內容設為值時,若因任何原因從 DynaCache 收回階段作業,則會撤銷階段作業資料中的記號。 只有在 revokeAccess記號設為 true 時,才會撤銷存取記號。

[9.0.5.12 或更新版本]
provider_<id>.revokeEndpointEnabled

  • true (預設值)
  • false
如果您想要忽略 provider_<id>.revokeEndpointUrl 內容的設定,請將這個內容設為 false 。 如果端點是從 TAI 內容或探索取得,則會套用此設定。
provider_<id>.redirectToRPHostAndPort 這個自訂內容沒有預設值。 這個 RP 會向 OP 將其重新導向 URL 登錄為 https://<host name>:<ssl port> /oidcclient/signin_cb,其中會自動解析主機名稱和 SSL 埠。 如果 RP 前面有 Proxy ,您可以用 redirectToRPHostAndPort屬性來置換主機名稱和埠,也可以將 redirectToRPHostAndPort 設為 https://<hostname>:<ssl port>
例如:

https://myrs.abc.com:9443
provider_<id>.allowImplicitClientFlow 您可以指定下列其中一個值:
  • true
  • false (預設值)
這個內容決定 OpenID Connect RP 如何鑑別 BasicAuth 記號。 當這個內容設為 true時, TAI 會利用隱含的流程來鑑別「基本鑑別」記號和 LTPA 記號。 當內容設為 false時, TAI 會利用授權碼流程來鑑別「基本鑑別」記號和 LTPA 記號。

provider_<id>.signVerifyAlias

這個自訂內容沒有預設值。

指定預設信任儲存庫中可用來驗證 OP 簽章的憑證別名。 在單一伺服器上,預設信任儲存庫為 NodeDefaultTrustStore,否則為 CellDefaultTrustStore

如果 signatureAlgorithm 自訂內容設為 RS256 ,且您沒有設定 jwkEndpointUrl 自訂內容來取得 OP 的 JSON Web 金鑰 (JWK) ,則必須設定這個內容。

jndiCacheName 當啟用動態快取服務時,會使用含有 KEY_ENABLE_CACHE_REPLICATION=trueKEY_REPLICATION_DOMAIN=DynaCacheCluster DistributedObjectCache d OIDCRPDistributedCacheMap 。 只能使用 sessionCacheSize 內容來自訂 JNDI 快取的大小。 無法變更此 DistributedMap 的所有其他屬性。 如果您想要使用其內容不同於預設值的物件快取實例,請使用此內容來指定由動態快取服務管理的自訂物件快取實例。 如需如何設定自訂物件快取實例的相關資訊,請閱讀 使用物件快取實例 。 必須啟用動態快取服務,才能使用物件快取實例或 DistributedObjectCache。 當動態快取服務不在使用中時,會使用伺服器型快取。 當使用動態快取服務時,會忽略 sessionCacheSizesessionCacheCleanupFrequency 的值。
例如:

services/cache/myOpenidRpCache
避免麻煩: 您指定給自訂 JNDI 快取的大小必須是您希望 OpenID Connect RP 儲存在快取中的階段作業數目的兩倍。

sessionCacheSize

您可以指定 -1 ,以及任何大於 0的整數值。 在伺服器上啟用 DynaCache 時,預設值為 -1。 當伺服器上未啟用 DynaCache 時,預設值為 10000 指定 OpenID Connect RP 可以保留在其快取中的階段作業數目。
當在伺服器上啟用 DynaCache 時:
  1. 預設值為 -1
  2. 當值為 -1時, OIDC TAI 會繼承作用中 DynaCache 預設快取記憶體大小上限。
  3. 當達到快取限制時, DynaCache 會利用近期最少使用 (LRU) 方法從快取收回項目。
當伺服器上未啟用 DynaCache 時:
  1. 預設值為 10000
  2. 如果指定 -1 ,此值會回復為非DynaCache 預設值: 10000
  3. 當達到快取限制時,對 RP 的所有後續要求都會遭到拒絕, HTTP 回應碼為 503 (服務已停用) ,且在從快取中移除逾時階段作業之前,應用程式伺服器無法採取新的要求。
sessionCacheCleanupFrequency 您可以指定任何整數值。 依預設,此內容會設為 1800的值。 此內容的值以秒為單位,是清除階段作業快取舊值的頻率。 只有在未使用動態快取服務時,才會使用這個內容。

provider_<id>.sessionCacheTimeoutMinutes

指定介於 043200(含) 之間的整數。 預設值為 120。 這些值以分鐘為單位。 指定與 ID 記號相關聯的階段作業可以保留在階段作業快取中的時間 (分鐘)。 依預設,至少會根據下列條件,以優先順序從快取中移除階段作業:
  1. 登出
  2. ID 記號有效期限
  3. 無法重新整理存取記號
  4. 快取收回原則
當您設定此內容時,它會置換 ID 記號有效期限的值,以進行階段作業快取。 如果您將此內容設為 0,則不會使用 ID 記號有效期限條件從階段作業快取中移除階段作業,但會使用其他三個條件。 在 exp 要求上提供 ID 記號的有效期限。 如果此內容在配置中未設定為值,且 ID 記號中沒有任何有效期限值,則會使用預設逾時值。
opServerConnectionTimeout 指定任何整數值。 依預設,此內容會設為 20000 值 (20 秒)。 指定等待 OpenID Connect 提供者回應內部檢查要求的時間 (毫秒)。

provider_<id>.httpOnly

您可以指定下列其中一個值:
  • true (預設值)
  • false
當這個內容設為 true時,會在 Cookie 上設定 httpOnly 旗標。

當此內容設為 true時,會在所有 OIDC Cookie 上設定 httpOnly 旗標,但 OIDCREQURL_*. 除外

provider_<id>.httpsRequired

您可以指定下列其中一個值:
  • true (預設值)
  • false
當這個內容設為 true時, OpenID Connect RP 只會建立與支援 https 通訊之 OP 的連線。 如果此內容設為 true,但 authorizeEndpointUrltokenEndpointintrospectEndpointUrl 的架構是 http,則 TAI 無法起始設定。

當此內容設為 true時,會在 OIDC Cookie 上設定 secure 旗標。

provider_<id>.encodeParameters

您可以指定下列其中一個值:
  • true
  • false (預設值)
指定在將 client_idclient_secret 傳送至 IdP之前,應該先對它們進行 URL 編碼。

provider_<id>.contentType

此自訂內容具有預設值 text/html; charset=UTF-8 使用此內容來變更在回應上設定的 contentType 文字或 html 的預設值。
provider_<id>.postParameterCookieSize 您可以將此內容設為任何整數值。 依預設,此內容設為 16384 執行時期建立的階段作業 Cookie 大小上限。 在執行時期,此值必須介於 Cookie 大小下限和 Cookie 大小上限之間。 如果要寫入的資料大於此內容的值,則會拒絕要求。 這個內容會置換針對階段作業 Cookie 所設定的 maxCookieSize 值。
maxCookieSize 您可以將此內容設為任何大於 500下限的整數值。 依預設,此內容設為 16384 執行時期建立的 Cookie 大小上限。 在執行時期,如果要寫入的資料大於此內容的值,則會拒絕要求。  這個內容適用於 maxStateCookieSizeprovider_.<id>postParameterCookieSize,且可以同時置換。
clusterCaching 您可以指定下列其中一個值:
  • true (預設值)
  • false
當這個內容設為 false ,且您是在叢集中作業時,如果您想要每一個叢集成員維護自己的快取,請將這個內容設為 false ,當這個內容設為 false時,需要適當的作業階段作業親緣性, useStateCookies 的預設值會變更為 false
stateIdTimeoutSeconds 您可以將此內容設為任何大於最小值 60的整數值。 依預設,此內容設為 600 允許 OP 登入要求保持未完成的時間 (秒)。
useStateCookies 您可以指定下列其中一個值:
  • true (預設值)
  • false
當這個內容是 true時,當要求重新導向至 OP 時,執行時期會使用瀏覽器 Cookie 來儲存要求資料。 當此內容為 false時,會使用本端儲存體。 當此內容設為 false 且您在叢集中作業時,需要階段作業親緣性才能適當作業。
useUniqueStateCookies 您可以指定下列其中一個值:
  • true (預設值)
  • false
當這個內容設為 true 時,每一個要求會使用新的 OIDCSTATE Cookie ,而不是對所有要求使用單一 OIDCSTATE Cookie。

useUrlCookies

您可以指定下列其中一個值:
  • true (預設值)
  • false
在起始登入階段期間, OpenID Connect TAI 會寫入瀏覽器 Cookie。 Cookie 的值是原始要求 URL。 當登入完成時或在登入逾時到期之後 (以先到者為準) ,會刪除此 Cookie。 登入逾時配置在 stateIdTimeoutSeconds 內容上。 如果您想要在其他 OIDC 物件中維護此資訊,請將此內容設為 false。 如果您的 URL 包含片段,或入埠 URL 已編碼且在到達受保護資源時必須保持已編碼,則此內容及 provider_<id>.useJavaScript 內容都必須設為 true
maxStateCacheSize 您可以指定 -1 ,以及任何大於 25的整數值。 在伺服器上啟用 DynaCache 時,預設值為 -1。 當伺服器上未啟用 DynaCache 時,預設值為 10000 可以在本端狀態快取中的狀態物件數目上限。 最小值為 25。 將值設為 0 會關閉本端狀態快取。 將值設為 -1 會使 OIDC TAI 繼承作用中的 DynaCache 預設快取大小。 如果指定 -1 時未在應用程式伺服器上啟用 DynaCache ,則此內容會回復為其預設值。
maxStateCookieSize 您可以將此內容設為任何大於 500 下限且小於 maxCookieSize值的整數值。 依預設,此內容會設為 maxCookieSize的值。 執行時期建立的狀態 Cookie 大小上限。 在執行時期,如果要寫入的資料大於此內容的值,則會拒絕要求。 此內容會置換為 maxCookieSize 設定的狀態 Cookie 值。
includeCustomCacheKeyInSubject 您可以指定下列其中一個值:
  • true (預設值)
  • false
當此內容設為 true時,鑑別快取中 Subject 的快取金鑰會設為 (user name) (session-cookie-name) (access-token-string)。 當這個內容設為 false時,基本安全會定義快取索引鍵。

OpenID Connect 依賴方依賴自訂快取金鑰來重新整理主題中的存取記號。 因此,在重新整理之後,如果您想要「主體」包含新的存取記號,這個內容必須設為 true


[9.0.5.1 或更新版本]provider_<id>.includePortInDefaultRedirectUrl

您可以指定下列其中一個值:
  • true (預設值)
  • false
如果您不希望 OpenID Connect 依賴方 (RP) 在傳送給 OpenID 提供者 (OP) 的 redirectUri 參數中包含埠號,請將這個內容設為 false 。 這個內容只會影響 RP 決定的預設 redirectUri 參數。 如果 provider_<id>.redirectToRPHostAndPort 內容設為包含埠號的值,則該埠會包含在 OP 的要求中。
provider_<id>.clockSkew 您可以將此內容設為任何整數值。 依預設,此內容設為 180 在 ID 記號驗證期間使用的時間偏差 (以秒為單位)。
provider_<id>.tokenEndpointAuthMethod 您可以指定下列其中一個值:
  • post (預設值)
  • basic
當這個內容設為 basic時,當對記號端點提出要求時,會傳送 BasicAuth 標頭。
provider_<id>.jsonWebKeyFile 這個自訂內容沒有預設值。 包含用於簽章驗證之公開金鑰的「JSON Web 金鑰」檔案的檔名。
provider_<id>.uniqueUserIdentifier 依預設,此內容設為 uniqueSecurityName

此內容設為供應商 ID 記號所使用的要求名稱,代表使用者的唯一安全名稱。

此內容在 JWT 中參照的要求值必須是 String

provider_<id>.useRealm

這個自訂內容沒有預設值。 當您指定這個內容的值時, ID 記號或 JWT 中的使用者和群組會指定給指定的網域範圍名稱。 這個內容會同時置換記號和 defaultRealmName 內容中的網域範圍名稱。 當這個內容設為 WAS_DEFAULT時,會使用預設 WebSphere 網域範圍名稱,且您不需要將 OP 的網域範圍新增為外部授信網域範圍,或將授信網域範圍對映至您的應用程式。
provider_<id>.realmIdentifier 依預設,此內容設為 realmName

指定 OpenID Connect 提供者在 IDToken 中所設定的網域範圍屬性名稱。

此內容在 JWT 中參照的要求值必須是 String

provider_<id>.refreshBeforeAccessTokenExpiresTime 您可以將此內容設為任何整數值。 依預設,此內容設為 0 您可以使用此內容來調整存取記號到期的時間。 將此內容設定為記號中您希望記號到期的時間之前的秒數。
provider_<id>.refreshExpiredAccessToken 您可以指定下列其中一個值:
  • true (預設值)
  • false
依預設,當存取記號到期時,執行時期會嘗試重新整理它。 如果您不想重新整理存取記號,請將此內容設為 false
provider_<id>.revokeAccessToken 您可以指定下列其中一個值:
  • true
  • false (預設值)
依預設,當使用者登出時,只會使用重新整理記號來傳送撤銷要求。 OpenID Connect 提供者會同時撤銷重新整理記號及其與此要求相關聯的存取記號。

當此內容設為 true時,會對存取記號提出個別撤銷要求。


provider_<id>.revokeEndpointUrl

您可以指定任何 URL 值。 此內容沒有預設值。 指定用來呼叫 OpenID Connect 提供者記號撤銷端點的端點 URL。
provider_<id>.createSession 您可以指定下列其中一個值:
  • true
  • false (預設值)
如果您想要執行時期為每一個用戶端要求建立新的 HTTP 階段作業,請將此內容設為 true

當您在叢集環境中執行且需要 JSESSIONID Cookie 來維護階段作業親緣性時,需要此內容。


[9.0.5.4 或更新版本]provider_<id>.responseType

您可以指定下列其中一個值:
  • code (預設值)
  • id_token
  • id_token token
  • id_token+token
這個內容定義向 OpenID 提供者提出鑑別要求時所用的 responseType 參數。 當指定 code 時,會使用 OpenID 連接程式碼登入流程。 當此內容設為任何其他值時,會使用隱含登入流程。

如果此內容設為 code以外的任何值,則下列條件適用:

  • RP 以隱含模式執行。
  • OP 伺服器必須支援 response_mode=form_post 參數。
  • OP 會回應 HTTP POST 方法,而不是 HTTP GET 方法。

[9.0.5.4 或更新版本]provider_<id>.nonceEnabled

當 responseType 內容設為 code時,此參數預設為 false。 如果 responseType 內容設為 code以外的任何內容,則此內容會設為 true,且無法變更。

當這個內容設為 true時,會針對鑑別要求,將 nonce 參數傳送給 OpenID Connect 提供者。

provider_<id>.trustStore

如果未指定此內容,則會使用預設信任儲存庫。 在單一伺服器上,預設信任儲存庫是 NodeDefaultTrustStore。 否則,它是 CellDefaultTrustStore
例如,此內容具有下列值:
  • myKeyStoreRef
  • name=myKeyStoreRef managementScope= (cell):myCell: (node):myNode
指定信任儲存庫,以從中取得 provider_<id>.signVerifyAlias 內容上指定的憑證。

provider_<id>.userinfoEndpointUrl

您可以指定任何 URL 值。 此內容沒有預設值。 指定 OpenID Connect 提供者上 UserInfo 端點的 URL。 如果在呼叫 UserInfo 端點時發生錯誤,則登入程序不會失敗。 從 UserInfo 端點收到的回應會以 [user_info] 金鑰放置在 WebSphere Subject 上。

如果對端點的呼叫成功,則 Subject 上 [user_info] 項目的值是 JSON 字串。 否則,該值會包含錯誤的相關資訊,例如來自 OP 的回應碼和錯誤訊息或異常狀況文字。

每次 OIDC RP 收到來自 OP 的存取記號時,都會呼叫 UserInfo 端點。


[9.0.5.5 或更新版本]provider_<id>.userinfoEndpointEnabled

此內容的有效值為 truefalse。 預設值為 true 如果此內容設為 true 值,且已設定 userinfoEndpointURL 內容,您可以在登入期間取得使用者資訊。 您可以從 OpenID Connect 內容或從探索設定 userinfoEndpointURL 內容。 如果此內容設為 false 值,則會忽略 userinfoEndpointURL 內容的設定。 您無法在登入期間取得使用者資訊。 不過,無論此內容的設定為何,您都可以透過 API 從伺服器取得使用者資訊。 當您從應用程式呼叫 OidcClientHelper.getUserInfoFromServer() 方法時,會從伺服器上的 userinfoEndpointURL 內容取得使用者資訊。

provider_<id>.verifyIssuerInIat

您可以指定下列其中一個值:
  • true(當 useJwtFromRequest 設為 required時,為預設值)
  • false (否則為預設值)
此內容會根據 OIDC 配置中的 provider_<id>.issuerIdentifier 內容值來控制對要求的驗證。

執行 JWT 鑑別時:

  • 當此內容設為 true時,會根據 provider_<id>.issuerIdentifier 內容值來驗證 JWT 中的發證者 (iss) 要求。
  • 當此內容設為 false時, iss 要求不得存在於 JWT 中。

未執行 JWT 鑑別時:

  • 當此內容設為 true 並處理內部檢查回應時,會根據 provider_<id>.issuerIdentifier 內容值來驗證內部檢查端點回應中的 iss 聲明。
  • 一律會根據 provider_<id>.issuerIdentifier 內容值來驗證 ID 記號中的 iss 要求。

provider_<id>.useJwtFromRequest

您可以指定下列其中一個值:
  • no

    請勿使用 JWT 進行鑑別。 如果已配置 OpenID Connect 提供者,則會嘗試對該提供者進行 JWT 內部檢查。

  • required

    使用來自要求的 JWT。 未使用 OpenID Connect 提供者。

  • ifPresent

    如果 JWT 存在,請使用 JWT。 如果 JWT 遺漏或無效,請撤回使用 OpenID Connect 提供者進行鑑別 (如果已配置的話)。

此內容控制在要求授權標頭中找到 JWT 時的處理。

provider_<id>.tokenReuse

您可以指定下列其中一個值:
  • true (預設值)
  • false
如果您想要執行時期拒絕任何使用 JWT 的要求,而 JWT 包含先前要求的另一個 JWT 中已使用的 jti 要求,請將這個內容設為 false。

provider_<id>.audiences

您可以指定任何以逗點區隔的目標客戶字串或 ALL_AUDIENCES 此內容指定要針對 JWT 中的 aud 要求進行驗證的授信對象清單 (以逗點區隔)。 如果指定 ALL_AUDIENCES ,則所有都受信任。 如果此內容設為值,則 aud 要求必須存在於 JWT 中。

provider_<id>.setLtpaCookie

您可以指定下列其中一個值:
  • true
  • false
預設值會根據下列狀況而有所不同:
  • 在 9.0.5.5版之前,預設值為 false
  • [9.0.5.5 或更新版本]當 useJwtFromRequest OIDC 內容設為 required 值時,預設值為 true
  • [9.0.5.5 或更新版本]當 useJwtFromRequest OIDC 內容設為 ifPresent 值或 no 值時,預設值為 false
如果您希望執行時期在成功向入埠 JWT 進行鑑別之後,對回應設定 LTPA Cookie ,請將這個內容設為 true

在 9.0.5.5版之前,只有在 useJwtFromRequest OIDC 內容設為 required 值或 ifPresent 值時,才支援此內容。


provider_<id>.headerName

HTTP 標頭的名稱

名稱「鑑別」是預設名稱值。

在 JWT 鑑別的入埠要求中攜帶 JWT 記號的 HTTP 標頭名稱 (名稱「鑑別」是預設名稱值。)

[9.0.5.2 或更新版本]provider_<id>.loginErrorUrl

此內容沒有預設值。 此內容指定當從 OpenID Connect 提供者收到登入錯誤時,「依賴方」重新導向至的 URL。

[9.0.5.2 或更新版本]provider_<id>.sendOpErrorParamsToLoginErrorUrl

您可以指定下列其中一個值:
  • true
  • false (預設值)
當此內容設為 true時,「依賴方」會將從 OpenID Connect 提供者收到的錯誤、錯誤說明及錯誤 URI 參數轉遞至錯誤 URL。

[9.0.5.3 或更新版本]provider_<id>.contentSecurityPolicy

這個自訂內容沒有預設值。 如果您要將 Content-Security-Policy HTTP 標頭包含在傳送至 OP 的起始登入要求中,請將 provider_<id>.contentSecurityPolicy 內容設為您要用於 Content-Security-Policy HTTP 標頭的值。 如果 Content-Security-Policy 值需要 nonce,您可以使用 %NONCE% 關鍵字來指出 nonce 應該放置在文字中的位置,如下列範例所示:
script-src 'self' 'nonce-%NONCE%' ; object-src 'self'; frame-src 'self'

[9.0.5.4 或更新版本]provider_<id>.useDiscovery

如果為 discoveryEndpointUrl 內容指定了值,則此內容預設為 true ,否則預設為 false 如果此內容設為 true ,且未指定 discoveryEndpointUrl 內容的值,則會使用 discoveryEndpointUrl 內容的預設值。 如果此內容設為 false ,則會忽略 discoveryEndpointUrl 內容的值。

[9.0.5.4 或更新版本]provider_<id>.useJavaScript

預設值為 true 當您重新導向至起始鑑別要求的 OP 時,如果您不想使用 JavaScript ,請將這個內容設為 false。 當您不使用 JavaScript時,會遺失原始入埠要求上呈現的任何 URI 片段。 如果要保留 URI 片段,除了將這個內容設為 true之外,您也必須將 useUrlCookies 內容設為 true

[9.0.5.7 或更新版本]provider_<id>.resource

這個自訂內容沒有預設值。 這是要包含在 OP 鑑別要求中的資源參數值。 如需使用資源參數的相關資訊,請參閱 RFC8707

[9.0.5.12 或更新版本]provider_<id>.useIssuer

此內容的有效值為 truefalse。 預設值為 true

當此內容設為 true時,此提供者項目可以透過 API 來服務 JWT 驗證要求。 不過,提供者項目服務只會要求包含符合 issuerIdentifier 內容值的 iss 要求。 useIssuer 內容的預設值為 true。 如果有多個提供者項目具有相同的 issuerIdentifier 內容值,則只有其中一個項目可以將 useIssuer 內容設為 true。 對於 issuerIdentifier 內容具有相同值的任何其他提供者項目,您必須將 useIssuer 內容設為 false

provider_<id>.allowJwtIssuerSelection 內容設為 true時,它會置換此內容的值,並將它設為 true


[9.0.5.12 或更新版本]provider_<id>.allowJwtIssuerSelection

此內容的有效值為 truefalse。 預設值為 false

當這個內容設為 true時,執行時期會根據 HTTP 要求的 Authorization 標頭中 JWT 的 iss 要求來過濾要求。 如果 JWT 中的 iss 要求符合此提供者的發證者,則過濾器相符。 如果存在多個具有相同發證者名稱的提供者項目,您只能針對其中一個提供者項目將此內容設為 true 。 對於具有相同發證者的任何其他提供者項目,此內容必須設為 false,這是預設值。

當此內容設為 true時,它會置換 provider_<id>.useIssuer 內容的值,並將它設為 true

provider_<id>.useJwtFromRequest 內容設為 no時,此內容沒有作用。 此過濾器在 provider_<id>.filterprovider_<id>.interceptedPathFilter 過濾器之後套用。


[9.0.5.13 或更新版本]provider_<id>.keyStore

如果未指定此內容,則會使用預設金鑰儲存庫。 在單一伺服器上,預設金鑰儲存庫是 NodeDefaultKeyStore。 否則,它是 CellDefaultKeyStore。 例如,此內容具有下列值:
  • myKeyStoreRef
  • name=myKeyStoreRef managmentScope=(cell):myCell:(node):myNode
指定金鑰儲存庫,以從中取得 provider_<id>.decryptAlias 內容上指定的解密金鑰。

[9.0.5.13 或更新版本]provider_<id>.decryptAlias

此內容沒有預設值。 指定金鑰儲存庫中用來解密已加密 JWT 或 ID 記號的 keyEntry 別名。 如果 TAI 收到已加密的 JWT ,請使用這個內容。 提供此內容的值不會使 TAI 拒絕未加密的 JWT。

[9.0.5.13 或更新版本]provider_<id>.decryptKeyPassword

您可以指定純文字或 XOR 編碼值。 此內容沒有預設值。 指定在 provider_<id>.decryptAlias 內容上指定之解密金鑰的密碼。 此內容可以用純文字指定,也可以進行 XOR 編碼,例如 {xor}CDo9Hgw=

[9.0.5.7 或更新版本]provider_<id>.grantType

預設值: 沒有預設值
值:
  • [9.0.5.7 或更新版本] 全部
  • 用戶端認證
  • [9.0.5.7 或更新版本] 密碼
請設定這個內容來啟用提供者項目,以便利用 OauthClientHelper API ,從 OpenID 提供者的記號端點取得存取記號。
  • 在配置項目上指定 grantType 參數時,該項目不會用於 OIDC 或 JWT 鑑別。
  • 對於 grantType=client_credentialsgrantType=password,每個只能有一個項目。
  • 具有 grantType=all的項目會置換所有其他 grantType 項目。
  • 當提供者項目包含 grantType 參數時,需要tokenEndpointUrlclientId 內容,且 clientSecretscope 內容是選用的。
  • 您可以使用探索端點來移入所需的 Oauth 配置資料。
  • 當呼叫 getClientCredentialsGrantAccessToken 時,會使用與 grantType=client_credentials (或 all) 相關聯的配置。
  • 當呼叫 getPasswordGrantAccessToken 時,會使用與 grantType=password (或 all) 相關聯的配置。
表 3. 「JWT 僅鑑別提供者項目」所需的內容

若要尋找這兩個表格中所列出內容的定義,請參閱之前的內容表格。

內容名稱 註解


provider_<id>.useJwtFromRequest

必須設為 required

provider_<id>.identifier

provider_<id>.issuerIdentifier

這兩個內容都是必要的。

provider_<id>.jwkEndpointUrl

provider_<id>.signVerifyAlias

必須配置其中一個內容,才能取得 JWT 簽章者憑證。


provider_<id>.interceptedPathFilter

provider_<id>.filter

必須配置其中一個內容,才能讓 OIDC TAI 截取要求。


provider_<id>.tokenReuse


provider_<id>.audiences

這些內容僅適用於 JWT 鑑別。 它們是選用項目,但您可能想要在配置中使用它們。


provider_<id>.headerName

在 JWT 鑑別的入埠要求中攜帶 JWT 記號的 HTTP 標頭名稱。