您可以在配置 Liberty 伺服器登入模組之前或之後,配置自訂的「Java™ 鑑別和授權服務 (JAAS)」登入模組。
關於這項作業
您可以利用自訂登入模組來進行其他鑑別決策,或新增資訊到主題中,以在應用程式內進行更加精細的授權決策。
請參閱JAAS 配置和JAAS 登入模組,取得更詳細的概觀。
您也可以利用開發人員工具來配置自訂 JAAS 登入模組。
請參閱 在 Liberty 上利用開發人員工具來配置 JAAS。在 Liberty 上配置應用程式安全時,WASdev.net 網站上有一些安全配置範例可供參考。請參閱在 Liberty 上利用開發人員工具來配置 JAAS。
如果要配置 JAAS 自訂登入模組,請完成下列步驟:
程序
- 在 server.xml 檔中啟用 appSecurity-2.0
Liberty 特性。
<featureManager>
<feature>appSecurity-2.0</feature>
</featureManager>
- 建立一個實作 LoginModule 介面的 com.sample.CustomLoginModule 類別,將它包裝在 CustomLoginModule.jar 檔中。
- 建立一個利用 <fileset> 元素來指示 CustomLoginModule.jar 檔所在位置的 <library> 元素。
在這個範例中,程式庫 id 是 customLoginLib。
<library id="customLoginLib">
<fileset dir="${server.config.dir}" includes="CustomLoginModule.jar"/>
</library>
- 建立一個 <jaasLoginModule> 元素。
在這個範例中,id 是 custom。
- 將 controlFlag 屬性設為 REQUIRED,以配置自訂登入模組來要求鑑別成功。
- 將 libraryRef 屬性設為 customLoginLib,也就是上一步驟配置的 <library> 元素的 id。
這個登入模組也有兩個選項:UserRegistry 是 ldap,mapToUser 是 user1。
<jaasLoginModule id="myCustom"
className="com.sample.CustomLoginModule"
controlFlag="REQUIRED" libraryRef="customLoginLib">
<options myOption1="value1" myOption2="value2"/>
</jaasLoginModule>
- 建立 <jaasLogincontextEntry> 元素,其中含有系統定義的 JAAS 配置 system.WEB_INBOUND 的 id 和唯一 name。您也可以將這個 JAAS 配置設為 system.DEFAULT、WSLogin,或您自己的 JAAS 配置。
在 loginModuleRef 屬性上,新增 custom,也就是上一步驟建立的 jaasLoginModule 元素的 id。
將這個 id 放在清單的最前面,它會成為最先呼叫的 JAAS 登入模組。
另外,您也必須列出其他預設登入模組:hashtable、userNameAndPassword、certificate 和 token。
<jaasLoginContextEntry id="system.WEB_INBOUND" name="system.WEB_INBOUND"
loginModuleRef="myCustom, hashtable, userNameAndPassword, certificate, token" />
註: 選項名稱開頭不能是句點 (.)、config. 或 service,且必須是唯一的。另外,也不接受內容名稱 id 或 ID。
如需 <jaasLoginContextEntry>、<jaasLoginModule>、<options> 和 <library> 等元素的相關資訊,請參閱應用程式安全 2.0。