相對於使用簡式對映,或是建立自己的 JAAS 自訂登入模組,您可以改用完整 Kerberos 主體名稱來進行授權。
關於這項作業
這些步驟應盡量少遵循,並且只應由下列使用者執行:明確選擇不使用簡式對映(這是預設配置),或是選擇不新增 JAAS 自訂登入模組,來將完整 Kerberos 主體名稱對映至 Liberty 伺服器使用者登錄中的使用者。這項作業可讓您使用完整的 Kerberos 主體名稱來進行授權。
程序
- 將 trimKerberosRealmNameFromPrincipal 屬性設為 false,以便將 SPNEGO 鑑別配置成不修整完整 Kerberos 主體名稱中的 Kerberos 網域範圍名稱。
- 將 Liberty 伺服器配置成使用獨立式 LDAP 或聯合儲存庫。
如需如何配置 LDAP 的相關資訊,請參閱使用 Liberty 來配置 LDAP 使用者登錄。
- 請確定 Active Directory 使用者存在於 LDAP 使用者登錄中,且這個使用者具有相關聯的單一 userPrincipalName 屬性。
- 更新 server.xml 檔中的 LDAP 過濾器,以搜尋 userPrincipalName,如下列範例所示:
<activedLdapFilterProperties id="myactivedfilters"
userFilter="(&(userPrincipalName=%v))"
groupFilter="(&(cn=%v))"
userIdMap="*:userPrincipalName"
groupIdMap="*:cn"
groupMemberIdMap="ibm-allGroups:member">
</activedLdapFilterProperties>
- 為對應的應用程式配置應用程式連結,以使用完整 Kerberos 主體名稱作為使用者名稱及適當配置的 access-id。
例如:
<application type="war" id="myApp" name="myApp" location="${server.config.dir}/apps/myApp.war">
<application-bnd>
<security-role name="Employee">
<user name="kevin@MYDOMAIN.EXAMPLE.COM" access-id="CN=kevin,CN=Users,DC=MYDOMAIN,DC=EXAMPLE,DC=COM"/>
...
</security-role>
...
</application-bnd>
</application>