利用 JAAS 自訂應用程式登入來執行身分主張
您可以利用「Java™ 鑑別和授權服務 (JAAS)」登入架構來建立一項 JAAS 登入配置,以便用來執行 Liberty 的身分主張登入。
關於這項作業
透過配置含有信任驗證的身分主張,應用程式可以利用 JAAS 登入配置來執行程式化的身分主張。 請參閱 IdentityAssertionLoginModule,以取得詳細資料。
程序
- 將信任驗證委派給使用者實作的外掛點。 信任驗證由自訂登入模組來完成。 這個自訂登入模組會執行任何必要的信任驗證,然後設定共用狀態的信任和識別資訊,以便傳遞給身分主張登入模組。 在下列共用狀態金鑰中,需要一項對映:
如果遺漏狀態,IdentityAssertionLoginModule 類別會報告一則 WSLoginFailedException 問題。com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
共用狀態金鑰中的對映必須包括含有下列金鑰名稱的信任金鑰:
如果這個金鑰設為 true,就會建立信任關係。 如果金鑰設為 false,就不會建立信任關係,IdentityAssertionLoginModule 類別會建立一則 WSLoginFailedException 問題。com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trust
共用狀態金鑰中的對映也必須設定下列其中一項資源:
- 身分金鑰。
java.security.Principal 可以設在下列金鑰中:
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal
- java.security.cert.X509Certificate[]。
這個憑證可以設在下列金鑰中:
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certficates
- 身分金鑰。
java.security.Principal 可以設在下列金鑰中:
- 建立應用程式登入所用的 JAAS 配置。 JAAS 配置會包含使用者實作的信任驗證自訂登入模組,以及 IdentityAssertionLoginModule 類別。
之後,如果要配置應用程式登入配置,請在 server.xml 檔中新增下列程式碼:
應用程式會利用這個 JAAS 配置來執行身分主張。<jaasLoginContextEntry id="CustomIdentityAssertion" name="CustomIdentityAssertion" loginModuleRef="customIdentityAssertion,identityAssertion" /> <jaasLoginModule id="customIdentityAssertion" className="com.ibm.ws.security.authentication.IdentityAssertionLoginModule" controlFlag="REQUIRED" libraryRef="customLoginLib"/> <library id="customLoginLib"> <fileset dir="${server.config.dir}" includes="IdentityAssertionLoginModule.jar"/> </library>
- 執行可程式化的身分主張。 現在,程式可以利用 JAAS 登入配置來執行程式化的身分主張。
應用程式可以建立第 2 步驟所建立之 JAAS 配置的登入環境定義,然後利用將主張的身分來登入這個登入環境定義。
如果登入成功,可以在目前正在執行的程序中設定這個身分。
下列範例說明這個程序:
NameCallback handler = new NameCallback(new MyPrincipal("Joe")); LoginContext lc = new LoginContext("customIdentityAssertion", handler); lc.login(); //假設成功 Subject s = lc.getSubject(); WSSubject.setRunAsSubject(s); // 從這裡開始,執行身分是 "Joe"
註: 在這個範例中,MyPrincipal 類別是 java.security.Principal 介面的實作。
結果
上層主題: 開發 Liberty 安全基礎架構延伸

檔名:twlp_dev_custom_idassertion.html