Java 鑑別和授權服務的系統登入配置項目設定

請利用這個頁面來指定一份「Java 鑑別和授權服務 (JAAS)」系統登入配置清單。

如果要檢視這個管理主控台頁面,請完成下列步驟:
  1. 按一下安全 > 廣域安全
  2. 在「鑑別」之下,按一下 Java 鑑別和授權服務 > 系統登入
在開始定義其他登入模組來進行應用程式伺服器安全執行時期的鑑別之前,請先閱讀「Java 鑑別和授權服務」文件。 請勿移除下列系統登入模組:
[z/OS]

ICSF

當利用整合加密服務機能 (ICSF) 來作為鑑別機制時,處理登入要求。

RMI_INBOUND、WEB_INBOUND、DEFAULT

處理遠端方法呼叫 (RMI)、Web 應用程式和大部分其他登入通訊協定的入埠登入要求。

RMI_INBOUND
這個登入配置會處理入埠 RMI 要求的登入。 這些登入通常是 Enterprise JavaBeans (EJB) 檔的鑑別存取要求。 當使用 RMI 連接器時,這些登入可能是對於「Java 管理延伸 (JMX)」的要求。
WEB_INBOUND
這個登入配置會處理 Web 應用程式要求的登入,其中包括 Servlet 和 JavaServer Pages (JSP) 檔。 如果配置了信任關聯攔截程式 (TAI) 所產生的輸出,這個登入配置可以與這個輸出互動。 傳給 WEB_INBOUND 登入配置的主題可能包含 TAI 所產生的物件。
DEFAULT
這個登入配置會處理大部分其他通訊協定和內部鑑別所發出之入埠要求的登入。

這三項登入配置都會傳入這些配置內的登入模組所處理的下列回呼資訊。 這些回呼不會同時傳入。不過,這些回呼的組合決定了應用程式伺服器將如何鑑別使用者。

回呼

callbacks[0] = new javax.security.auth.callback.
NameCallback("Username:");

責任
收集登入期間所提供的使用者名稱。這項資訊可能是下列登入類型的使用者名稱:
  • 使用者名稱和密碼登入,稱為基本鑑別 (BA)
  • 使用者名稱,只供沒有密碼的身分主張使用。
回呼

callbacks[1] = new javax.security.auth.callback.
PasswordCallback("Password:", false);

責任
收集登入期間所提供的密碼。容許密碼為空值,用來支援身分主張。
回呼

callbacks[2] = new com.ibm.websphere.security.auth.callback.
WSCredTokenCallbackImpl("Credential Token:");

責任
在登入期間收集小型認證機構 (LTPA) 記號或其他記號類型。 當使用者名稱和密碼不存在時,這項資訊通常存在。
回呼

callbacks[3] = new com.ibm.wsspi.security.auth.callback.
WSTokenHolderCallback("Authz Token List:");

責任
收集 WSOpaqueTokenHelper 呼叫所傳回之 TokenHolder 物件的 ArrayList 清單。 回呼會以 Common Secure Interoperability 第 2 版 (CSIv2) 授權記號為輸入來使用 createTokenHolderListFromOpaqueToken 方法。
限制: 只有在啟用了傳送安全屬性選項,且這項登入是一項傳送登入時,這個回呼才存在。 在傳送登入中,會隨著要求而傳送足夠的安全屬性,以免必須存取使用者登錄來取得其他屬性。您必須啟用出埠和入埠鑑別這兩者的傳送安全屬性。
您可以完成下列步驟來啟用 CSIv2 出埠鑑別的傳送安全屬性選項:
  1. 按一下安全 > 廣域安全
  2. 在「鑑別」之下,展開「RMI/IIOP 安全」,按一下 CSIv2 出埠鑑別
  3. 啟用傳送安全屬性選項。
您可以完成下列步驟來啟用 CSIv2 入埠鑑別的傳送安全屬性選項:
  1. 按一下安全 > 廣域安全
  2. 在「鑑別」之下,展開「RMI/IIOP 安全」,按一下 CSIv2 入埠鑑別
  3. 啟用傳送安全屬性選項。

在系統登入配置中,應用程式伺服器會根據回呼收集的資訊來鑑別使用者。 不過,自訂登入模組不需要處理任何這些回呼。 下列清單說明這些回呼的一般組合:

除了先前定義的回呼之外,WEB_INBOUND 登入配置只能包含下列其他回呼:
回呼

callbacks[4] = new com.ibm.websphere.security.auth.callback.
WSServletRequestCallback("HttpServletRequest:");

責任
如果 HTTP Servlet 要求物件存在,便加以收集。 這個回呼使登入模組能夠從 HTTP 要求中擷取登入期間所用的資訊。
回呼

callbacks[5] = new com.ibm.websphere.security.auth.callback.
WSServletResponseCallback("HttpServletResponse:");

責任
如果 HTTP Servlet 回應物件存在,便加以收集。 這個回呼可讓登入模組將資訊加入登入後的 HTTP 回應中。例如,登入模組也許會將 SingleSignonCookie Cookie 加入回應中。
回呼

callbacks[6] = new com.ibm.websphere.security.auth.callback.
WSAppContextCallback("ApplicationContextCallback:");

責任
收集登入期間所用的 Web 應用程式環境定義。 這個回呼由雜湊表組成,若有提供,則其中含有應用程式名稱和重新導向的網址。
回呼

callbacks[7] = new WSRealmNameCallbackImpl("Realm Name:", <default_realm>);

責任
收集登入資訊的網域範圍名稱。網域範圍資訊不一定會提供,如果沒有提供,則應假設是現行的網域範圍。
回呼

callbacks[8] = new WSX509CertificateChainCallback("X509Certificate[]:");

責任
如果登入來源是 SSL 用戶端鑑別中的 X509Certificate,這項回呼含有 SSL 所驗證的憑證。ltpaLoginModule 會呼叫和舊版相同的對映函數。將它傳給登入之後,它會讓自訂登入模組有機會使用自訂方式來對映憑證。 之後,它會執行雜湊表登入(請參閱相關鏈結「入埠對映的自訂登入模組」,以取得雜湊表登入的範例)。
如果您要搭配 WEB_INBOUND 登入配置來使用傳送安全屬性,您可以在「單一登入」畫面中啟用傳送 Web 入埠安全屬性選項。
  1. 按一下安全 > 廣域安全
  2. 在「鑑別」之下,展開「Web 安全」,再按一下單一登入 (SSO)
  3. 選取 Web 入埠安全屬性傳送選項。
下列登入模組預先定義給 RMI_INBOUND、WEB_INBOUND 和 DEFAULT 系統登入配置。您可以在任何這些登入模組之前、之間或之後,新增自訂登入模組,但您無法移除這些預先定義的登入模組:
  • com.ibm.ws.security.server.lm.ltpaLoginModule
    不論是否啟用屬性傳送,都執行主要登入。 主要登入會使用一般鑑別資訊,如使用者 ID 和密碼、LTPA 記號,或信任關聯攔截程式 (TAI) 及憑證識別名稱 (DN)。 如果任何下列實務是真的,就不會使用這個登入模組,且 com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule 模組會執行主要登入:
    • Subject 中含有必要使用者屬性的 java.util.Hashtable 物件。
    • LoginContext 的 sharedState HashMap 中存在含必要使用者屬性的 java.util.Hashtable 物件。
    • WSTokenHolderCallback 回呼存在,但沒有指定的密碼。如果是隨著指出所傳送之資訊的 WSTokenHolderCallback 回呼而提供使用者名稱和密碼,要求可能是起源於純用戶端,也可能是起源於將現有身分對映至某個使用者 ID 和密碼的不同網域範圍中的伺服器。
  • com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule
    如果下列任一狀況屬實,這個登入模組會利用一般鑑別資訊來執行主要登入:
    • Subject 包含具有必要使用者屬性的 java.util.Hashtable 物件。
    • 在 LoginContext 環境定義的 sharedState HashMap 中,有包含必要使用者屬性的 java.util.Hashtable 物件。
    • WSTokenHolderCallback 回呼存在,但沒有 PasswordCallback 回呼。

    當 java.util.Hashtable 物件存在時,登入模組會將物件屬性對映至有效主題中。當 WSTokenHolderCallback 呼叫存在時,登入模組會將位元組記號物件解除序列化,且會重新產生已序列化的主題內容。 java.util.Hashtable 雜湊表的優先順序高於所有其他登入形式。 請小心避免複製或置換應用程式伺服器先前可能已傳送的項目。

    藉由將 java.util.Hashtable 雜湊表指定成優先順序高於其他鑑別資訊,如果有 LTPA 記號的話,自訂登入模組必須已驗證 LTPA 記號來建立足夠的信任關係。 自訂登入模組可以利用 com.ibm.wsspi.security.token.WSSecurityPropagationHelper.validationLTPAToken(byte[]) 方法來驗證 WSCredTokenCallback 回呼中所提供的 LTPA 記號。 失敗的 LTPA 記號的驗證,會帶來安全風險。

    如需新增含有應用程式伺服器所用的已知且形式完整之屬性的雜湊表的登入詳細資訊,請參閱資訊中心中的「配置入埠身分對映」。

RMI_OUTBOUND

當 com.ibm.CSI.rmiOutboundLoginEnabled 或 com.ibm.CSIOutboundPropagationEnabled 內容是 true,出埠送往其他伺服器的程序遠端方法呼叫 (RMI) 要求。

這些內容設定在 CSIv2 鑑別畫面中。如果要存取畫面,請完成下列步驟:
  1. 按一下安全 > 廣域安全
  2. 在「鑑別」之下,展開「RMI/IIOP 安全」,按一下 CSIv2 出埠鑑別
如果要設定 com.ibm.CSI.rmiOutboundLoginEnabled 內容,請選取自訂出埠對映。 如果要設定 com.ibm.CSIOutboundPropagationEnabled 內容,請選取傳送安全屬性選項。

這個登入配置決定了目標伺服器及其安全網域的安全功能。當應用程式伺服器往下游傳送鑑別和授權資訊時,應用程式伺服器會移除重新存取使用者登錄和查閱使用者安全屬性來進行授權的需求。 另外,傳送端伺服器所新增的任何自訂物件也都會出現在下游伺服器的主題中。

在 RMI_OUTBOUND 登入配置中,可以使用下列回呼。 您可以利用這個回呼傳回的 com.ibm.wsspi.security.csiv2.CSIv2PerformPolicy 物件來查詢這個特定出埠要求的安全原則。 這項查詢可協助您判斷目標網域範圍與目前的網域範圍是否不同,以及應用程式伺服器是否需要對映網域範圍。 如需相關資訊,請參閱資訊中心中的「配置指向不同目標網域範圍的出埠對映」。

回呼
callbacks[0] = new WSProtocolPolicyCallback("Protocol Policy Callback: ");
責任

在這個出埠呼叫上,提供特定通訊協定的原則資訊給登入模組。這項資訊用來判斷安全層次,其中包括目標網域範圍、目標安全基本需求,以及聯合的安全基本需求。

下列方法會從這個特定登入模組中取得 CSIv2PerformPolicy 原則:

csiv2PerformPolicy = (CSIv2PerformPolicy)
((WSProtocolPolicyCallback)callbacks[0]).getProtocolPolicy();

RMI 之外的不同通訊協定可能會有不同類型的原則物件。

下列登入模組預先定義在 RMI_OUTBOUND 登入配置中。您可以在任何這些登入模組之前、之間或之後,新增自訂登入模組,但您無法移除這些預先定義的登入模組。
com.ibm.ws.security.lm.wsMapCSIv2OutboundLoginModule
在建立利用 Common Secure Interoperability 第 2 版 (CSIv2) 授權記號層來傳給另一個伺服器的不透明位元組之前,擷取下列記號和物件:
  • 主題中可轉遞的 com.ibm.wsspi.security.token.Token 實作
  • 主題中可序列化的自訂物件
  • 執行緒中的傳送記號

您可以在這個登入模組之前,利用自訂登入模組來執行認證對映。 不過,建議您由登入模組來變更登入階段期間所傳入的主題內容。如果您遵循這項建議,便是在這個登入模組處理新的主題內容之後,再處理各個登入模組。

如需相關資訊,請參閱資訊中心中的「配置指向不同目標網域範圍的出埠對映」。

[AIX Solaris HP-UX Linux Windows][IBM i]

SWAM

當利用「簡易 WebSphere 鑑別機制」(SWAM) 作為鑑別方法時,在單一伺服器環境中處理登入要求。

SWAM 不支援可轉遞的認證。當鑑別方法是 SWAM 時,應用程式伺服器無法在伺服器之間傳送要求。 在這個情況下,您必須使用 LTPA。
註: SWAM 登入配置已淘汰,未來的版本會將它移除。
[z/OS] 註: 在應用程式伺服器 8.5 版中,SWAM 即將淘汰,未來的版本會將它移除。
[z/OS]

SWAM

這個登入配置可讓您將「輕量型目錄存取通訊協定 (LDAP)」使用者登錄中的 ID 對映至系統授權機能 (SAF) 使用者 ID。

[z/OS] 註: 在應用程式伺服器 8.5 版中,SWAM 即將淘汰,未來的版本會將它移除。

wssecurity.IDAssertion

利用身分確認處理「Web 服務安全」的登入配置要求。

這個登入配置適用於 Web 服務安全初稿 13 JAX-RPC(5.x 版)應用程式。如需相關資訊,請參閱資訊中心的「身分主張鑑別方法」。

wssecurity.IDAssertionUsernameToken

利用身分確認處理「Web 服務安全」的登入配置要求。

這個登入配置適用於 Web 服務安全 1.0 版 JAX-RPC 應用程式。

您可以為 JAAS IDAssertionUsernameToken 登入模組配置 com.ibm.wsspi.wssecurity.auth.module.IDAssertionLoginModule.disableUserRegistryCheck 自訂內容。 這個內容是「Web 服務安全」身分主張 JAAS 登入模組 wssecurity.IDAssertionUsernameToken 的選項。 此內容指出登入模組在處理入埠身分記號時不應執行使用者登錄檢查。

wssecurity.PKCS7

利用公開金鑰加密標準 #7 (PKCS7) 物件中的憑證廢止清冊,來驗證 X.509 憑證。

這個登入配置適用於 6.0.x 版系統。

wssecurity.PkiPath

利用公開金鑰基礎架構 (PKI) 路徑來驗證 X.509 憑證。

這個登入配置適用於 6.0.x 版系統。

wssecurity.signature

利用數位簽章驗證處理「Web 服務安全」的登入配置要求。

這個登入配置適用於 5.x 版系統。

wssecurity.UsernameToken

驗證基本鑑別 (BA)(使用者名稱和密碼)。

當使用 JAX-RPC 執行時期時,您可以為 JAAS UsernameToken 登入模組配置下列自訂內容:

您可以為 JAAS UsernameToken 登入模組配置 com.ibm.wsspi.wssecurity.auth.module.UsernameLoginModule.disableUserRegistryCheck 自訂內容。這個內容是「Web 服務安全」UsernameToken JAAS 登入模組 com.ibm.wsspi.wssecurity.auth.module.UsernameLoginModule 的選項。 此內容指出登入模組在處理入埠使用者名稱記號時不應執行使用者登錄檢查。

wssecurity.X509BST

檢查憑證和憑證路徑的有效性來驗證 X.509 二進位安全記號 (BST)。

這個登入配置適用於 6.0.x 版系統。

LTPA_WEB

處理 Servlet 和 JavaServer Pages (JSP) 檔之類的 Web 儲存器元件登入要求。

com.ibm.ws.security.web.AuthenLoginModule 登入模組預先定義在 LTPA 登入配置中。您可以在 LTPA_WEB 登入配置中,在這個模組之前或之後新增自訂登入模組。

LTPA_WEB 登入配置可以處理 HttpServletRequest 物件、HttpServletResponse 物件,以及利用回呼處理常式傳入的 Web 應用程式名稱。如需相關資訊,請參閱資訊中心的「範例:自訂伺服器端 Java 鑑別和授權服務鑑別和登入配置」。

LTPA

處理 LTPA_WEB 登入配置所不處理的登入要求。

WebSphere Application Server 6.1 版和先前的版本使用這個登入配置。

com.ibm.ws.security.server.lm.ltpaLoginModule 登入模組預先定義在 LTPA 登入配置中。您可以在 LTPA 登入配置中,在這個模組之前或之後新增自訂登入模組。如需相關資訊,請參閱資訊中心的「範例:自訂伺服器端 Java 鑑別和授權服務鑑別和登入配置」。

LTPA_WEB

處理 Servlet 和 JavaServer Pages (JSP) 檔之類的 Web 儲存器元件登入要求。

com.ibm.ws.security.web.AuthenLoginModule 登入模組預先定義在 LTPA 登入配置中。您可以在 LTPA_WEB 登入配置中,在這個模組之前或之後新增自訂登入模組。

LTPA_WEB 登入配置可以處理 HttpServletRequest 物件、HttpServletResponse 物件,以及利用回呼處理常式傳入的 Web 應用程式名稱。如需相關資訊,請參閱資訊中心的「範例:自訂伺服器端 Java 鑑別和授權服務鑑別和登入配置」。

[2013 年 6 月更新]

DESERIALIZE_ASYNCH_CONTEXT

處理 非同步 Bean 的登入要求。

DESERIALIZE_ASYNCH_CONTEXT 配置僅用於非同步 Bean。 排程器會利用非同步 Bean 警示管理程式來進行「延遲啟動」, 這樣可容許 J2EE 環境定義的序列化與解除序列化。 在使用非同步 Bean、「排程器」和「EJB 計時器」時,會使用此登入配置。
CAUTION:
DESERIALIZE_ASYNCH_CONTEXT 登入配置有一個限制。 若有作業需要在配置於 DESERIALIZE_ASYNC_CONTEXT 登入配置的 lognModules 中進行記號驗證,會導致 API 反覆地擲出 TokenExpiredException。
[2013 年 6 月更新]


檔名: usec_sysjaas.html