Java 鑑別和授權服務的系統登入配置項目設定請利用這個頁面來指定一份 Java 鑑別和授權服務 (JAAS) 系統登入配置清單。
如果要檢視這個管理主控台頁面,請按一下安全 > JAAS 配置 > 系統登入。
在開始定義其他登入模組來鑑別 WebSphere Application Server 安全執行時期之前,請先讀取 Java 鑑別和授權服務。 請勿移除下列系統登入模組:
這三項登入配置都可以傳入這些配置內的登入模組所處理的下列回呼資訊。 這些回呼不會同時傳入。 不過,這些回呼的組合決定了 WebSphere Application Server 將如何鑑別使用者。
| 回呼 | 責任 |
|---|---|
| callbacks[0] = new javax.security.auth.callback.NameCallback("Username: "); | 收集登入期間所提供的使用者名稱。
這個資訊可能是下列登入類型的使用者名稱:
|
| 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: "); | 收集利用 Common Secure Interoperability 第 2 版 (CSIv2) 授權記號作為輸入呼叫 WSOpaqueTokenHelper.createTokenHolderListFromOpaqueToken() 方法所傳回的 TokenHolder 物件的 ArrayList。 |
在系統登入配置中,WebSphere Application Server 會根據回呼收集的資訊來鑑別使用者。 不過,自訂登入模組不需要處理任何這些回呼。 下列清單說明這些回呼的一般組合:
這個回呼會在 CSIv2 身分確認、Web、CSIv2 X509 憑證登入和舊式信任關聯攔截程式登入等出現。 在 CSIv2 X.509 憑證登入中,WebSphere Application Server 會將憑證對映至使用者名稱。 任何只用使用者名稱來建立信任關係的登入類型都會使用這個回呼。
這個回呼組合通常是供基本鑑別登入使用。 大部分使用者鑑別都是用這兩個回呼來進行。
這個回呼通常是供下游伺服器用來驗證小型認証機構 (LTPA) 記號。 每當要求是起源於 WebSphere Application Server 而不是純用戶端時,通常都會將 LTPA 記號傳送給目標伺服器。 如果是單一登入 (SSO),會在 Cookie 中接受 LTPA 記號,且會用這個記號來登入。 如果自訂登入模組需要 LTPA 記號中的使用者名稱,模組可以利用 com.ibm.wsspi.security.token.WSSecurityPropagationHelper.validateLTPAToken(byte[]) 方法來擷取記號中的唯一 ID。 擷取好唯一 ID 之後,請利用 com.ibm.wsspi.security.token.WSSecurityPropagationHelper.getUserFromUniqueID(uniqueID) 方法來取得使用者名稱。
這個回呼表示部分傳送的屬性已到達伺服器。 傳送的屬性仍需要下列鑑別方法之一:
如果從純用戶端將屬性加入主題中,NameCallback 和 PasswordCallback 回呼會鑑別資訊,且記號保留區中所序列化的物件會加入已鑑別的主題中。
如果啟用了 CSIv2 身分確認和傳送,WebSphere Application Server 會利用 NameCallback 和記號保留區(其中包含所有傳送的屬性)對大部分物件取消序列化。WebSphere Application Server 只會使用 NameCallback,因為信任關係是利用您在 CSIv2 授信伺服器清單中指示的伺服器來建立的。 如果要指定授信伺服器,請按一下安全 > 鑑別通訊協定 > CSIv2 入埠鑑別。
自訂序列化只需要由自訂登入模組來處理。 如果需要詳細資訊,請參閱「安全屬性傳送」一文。
除了先前定義的回呼之外,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 加入回應中。 |
| callbacks[6] = new com.ibm.websphere.security.auth.callback.WSAppContextCallback("ApplicationContextCallback: "); | 收集登入期間所用的 Web 應用程式環境定義。 這個回呼由 HashMap 組成,其中含有應用程式名稱和重新導向網址(如果有的話)。 |
下列登入模組預先定義給 RMI_INBOUND、WEB_INBOUND 和 DEFAULT 系統登入配置。 您可以在任何這些登入模組之前、之間或之後,新增自訂登入模組,但您無法移除這些預先定義的登入模組。
不論有沒有啟用屬性傳送,這個登入模組都會執行主要登入。 主要登入會使用一般鑑別資訊,如使用者 ID 和密碼、LTPA 記號,或信任關聯攔截程式 (TAI) 及憑證識別名稱 (DN) 。 如果下列任一實務屬實,就不會使用這個登入模組,且 com.ibm.ws.security.server.lm.wsMapInboundLoginModule 會執行主要登入:
如果下列任一狀況屬實,這個登入模組會利用一般鑑別資訊來執行主要登入:
當 java.util.Hashtable 物件存在時,登入模組會將物件屬性對映至有效主題中。 當 WSTokenHolderCallback 存在時,登入模組會取消序列化位元組記號物件,且會重新產生已序列化的主題內容。java.util.Hashtable 的優先順序高於所有其他登入形式。 因此,請小心避免複製或置換 WebSphere Application Server 先前可能已傳送的項目。
這些內容設定在 CSIv2 鑑別畫面中。 如果要存取畫面,請按一下安全 > 鑑別通訊協定 > CSIv2 離埠鑑別。 如果要設定 com.ibm.CSI.rmiOutboundLoginEnabled 內容,請選取自訂離埠對映。 如果要設定 com.ibm.CSIOutboundPropagationEnabled 內容,請選取安全屬性傳送。
這項登入配置決定了目標伺服器及其安全領域的安全功能。 比方說,如果 WebSphere Application Server 5.1.1 版與 5.x 版應用程式伺服器通訊,5.1.1 版應用程式伺服器會利用 LTPA 記號將鑑別資訊傳給 5.x 版應用程式伺服器。 不過,如果 WebSphere Application Server 5.1.1 版與 5.1.x 版應用程式伺服器通訊,且傳送端和接收端伺服器都啟用了傳送功能,鑑別和授權資訊就會傳給接收端應用程式伺服器。
RMI_OUTBOUND 登入配置可以使用下列回呼。 您可以利用這個回呼傳回的 com.ibm.wsspi.security.csiv2.CSIv2PerformPolicy 物件來查詢這項特定離埠要求的安全原則。 這項查詢可協助您判斷目標網域範圍與目前的網域範圍是否相同,以及 WebSphere Application Server 是否需要對映網域範圍。 如果需要詳細資訊,請參閱「配置指向不同目標網域範圍的離埠對映」一文。
| 回呼 | 責任 |
|---|---|
| callbacks[0] = new WSProtocolPolicyCallback("Protocol Policy Callback: "); |
在這個離埠呼叫上,提供特定通訊協定的原則資訊給登入模組。 這項資訊用來判斷安全層次,其中包括目標網域範圍、目標安全基本需求,以及聯合的安全基本需求。 下列方法從這個特定登入模組中取得 CSIv2PerformPolicy: csiv2PerformPolicy = (CSIv2PerformPolicy) ((WSProtocolPolicyCallback)callbacks[0]).getProtocolPolicy(); RMI 之外的不同通訊協定可能會有不同類型的原則物件。 |
下列登入模組預先定義在 RMI_OUTBOUND 登入配置中。 您可以在任何這些登入模組之前、之間或之後,新增自訂登入模組,但您無法移除這些預先定義的登入模組。
您可以在這個登入模組之前,利用自訂登入模組來執行認證對映。 不過,建議您由登入模組來變更登入階段期間所傳入的主題內容。如果您遵循這項建議,在這個登入模組之後處理的登入模組會處理新的主題內容。
簡式 WebSphere 鑑別機制 (SWAM) 不支援可轉遞的認證。 當鑑別方法是 SWAM 時,WebSphere Application Server 無法在伺服器之間傳送要求。 在這個情況下,您必須使用 LTPA。
WebSphere Application Server 5.1 版和先前的版本使用這項登入配置。
com.ibm.ws.security.web.AuthenLoginModule 登入模組預先定義在 LTPA 登入配置中。 您可以在 LTPA_WEB 登入配置中,在這個模組之前或之後新增自訂登入模組。
LTPA_WEB 登入配置可以處理 HttpServletRequest 物件、HttpServletResponse 物件,以及利用回呼處理常式傳入的 Web 應用程式名稱。 如果需要詳細資訊,請參閱文件中的「自訂伺服器端 Java 鑑別和授權服務(鑑別和登入配置)」一文。
WebSphere Application Server 5.1 版和先前的版本使用這項登入配置。
com.ibm.ws.security.server.lm.ltpaLoginModule 登入模組預先定義在 LTPA 登入配置中。 您可以在 LTPA 登入配置中,在這個模組之前或之後新增自訂登入模組。 如果需要詳細資訊,請參閱文件中的「自訂伺服器端 Java 鑑別和授權服務(鑑別和登入配置)」一文。