在 z/OS 安全中配置分散式身分過濾器
當 safCredentials 配置元素中的 mapDistributedIdentities 屬性設為 true 時,必須配置分散式身分過濾器。
關於這項作業
在您將分散式身分對映至「系統授權機能 (SAF)」使用者之前,您必須先在 z/OS 安全中配置分散式身分過濾器。
SAF 類別 RACMAP 中的分散式身分過濾器,由分散式使用者名稱和分散式使用者名稱的領域名稱組成。您可以配置過濾器,將許多分散式身分對映至一個 SAF 使用者,也可以是一對一對映。
RACMAP ID(<SAFUser>) MAP USERDIDFILTER(NAME('<distributedUserId>'))
REGISTRY(NAME('<distributedRealmName>')) WITHLABEL('<someLabel>')
- SAFUser 元素是 z/OS 安全中的 SAF 使用者。
- distributedUserID 元素是分散式身分。
- distributedRealmName 元素是分散式身分的領域名稱。
- someLabel 元素是用來說明這個分散式身分過濾器的欄位。
當您使用 LDAP 和基本(或 SAF)登錄時,會自動聯合使用者登錄。在 Liberty 中,只支援一個領域。如果您沒有指定一個已識別主要領域的聯合儲存庫,則會從已定義的其中一個使用者登錄中,挑選其中一個領域名稱來使用。
當您使用多項登錄,並根據使用者的領域名稱採取動作,請使用所定義的 primaryRealm 屬性來定義 federatedRepository。
程序
- 啟動 IDIDMAP 類別。 這個指令只需要在開頭執行一次。SETROPTS CLASSACT(IDIDMAP) RACLIST(IDIDMAP)
- 編輯 RACMAP 設定檔之後,您必須使用下列指令,變更才會生效: SETROPTS RACLIST(IDIDMAP) REFRESH
範例
在 Liberty z/OS 中,distributedRealmName 在 LDAP URL 中沒有格式。反倒是您在 RACMAP 設定檔上必須設定給 distributedRealmName 的值,是取自 federatedRepository 元素的 primaryRealm 名稱。如果 federatedRepository 元素未編碼,Liberty 會從每一項使用者登錄期間指定給元素的領域屬性,來決定 distributedRealmName。
下列範例說明當領域名稱是 'FEDREALM' 時,對映至 Liberty z/OS 伺服器 SAF 使用者 (USER1) 的 LDAP 使用者 (LDAPUser1)。
RACMAP ID(USER1) MAP USERDIDFILTER(NAME('CN=LDAPUser1,o=ibm,c=us'))
REGISTRY(NAME('FEDREALM')) WITHLABEL('Mapping LDAP
LDAPUser1 to USER1')
<federatedRepository>
<primaryRealm name="FEDREALM">
</primaryRealm>
</federatedRepository>
如果您選擇在 Liberty z/OS 中,將分散式身分過濾器與包含 SAF 使用者登錄的聯合儲存庫一起使用,最好的作法是在 federatedRepository 元素的 primaryRealm 名稱屬性上指定 distributedRealmName。
如果沒有使用 federatedRepository 元素的 primaryRealm 名稱屬性來指定 distributedRealmName,則 Liberty z/OS 使用的 distributedRealmName 不見得符合您的預期。
如果沒有使用 primaryRealm 來指定它,視您 server.xml 檔中所配置的每一項使用者登錄而定, 用於 RACMAP 檢查的 distributedRealmName 可能衍生自不同的來源。
為了避免混淆,請使用 primaryRealm 屬性,來指定 distributedRealmName。