![[z/OS]](../images/ngzos.gif)
z/OS セキュリティーでの分散 ID フィルターの構成
分散 ID を SAF (System Authorization Facility) ユーザーにマップするには、まず WebSphere® Application Server 用に z/OS® セキュリティー製品の 分散 ID フィルターを構成する必要があります。
SAF クラス RACMAP の分散 ID フィルターは、分散ユーザー名と、分散ユーザー名のレルム名から構成されます。 複数の分散 ID を 1 人の SAF ユーザーにマップするフィルターを構成することも、1 対 1 のマッピングにすることもできます。
RACMAP ID(<SAFUser>) MAP USERDIDFILTER(NAME('<distributedUserId>'))
REGISTRY(NAME('<distributedRealmName>')) WITHLABEL('<someLabel>')
<SAFUser> エレメントは z/OS セキュリティー製品の SAF ユーザーであり、<distributedUserId> は分散 ID であり、<distributedRealmName> は分散 ID のレルム名であり、<someLabel> はこの分散 ID フィルターの説明のためのテキスト・フィールドです。
SETROPTS CLASSACT(IDIDMAP) RACLIST(IDIDMAP)
SETROPTS RACLIST(IDIDMAP) REFRESH
分散ユーザーの SAF ユーザーへのマップ:
ローカルでない OS レジストリーを構成した場合、 Lightweight Directory Access Protocol (LDAP) ユーザーなどの分散ユーザーを SAF ユーザーにマップすることができます。 SAF ユーザーにマップするときに WebSphere Application Server が使用する分散ユーザー名は、WSCredential.getUniqueSecurityName() API によって返される値です。このメソッドは、構成されているユーザー・レジストリーに適用されたときの固有のユーザー名を戻します。 LDAP の場合には、完全識別名 (DN) になります。 カスタム構成の場合には、カスタム・レジストリーの getUniqueUserId() API が戻す値です。 統合リポジトリーの場合には、仮想メンバー・マネージャーの uniqueName プロパティーです。
WebSphere Application Server によって使用される分散レルム名は、WSCredential.getRealmName() API によって判別されます。戻されるレルム名は、構成されるユーザー・レジストリーによって異なります。 LDAP の場合、レルム名は ldapHostName:ldapPortNumber です。 カスタム・ユーザー・レジストリーの場合には、 getRealm() メソッドが戻すように実装で構成した値になります。 統合リポジトリーの場合、レルム名は、統合リポジトリー・パネルのレルム名フィールドで指定したレルムです。
RACMAP ID(USER1) MAP USERDIDFILTER(NAME('CN=LDAPUser1,o=ibm,c=us'))
REGISTRY(NAME('ccwin12.austin.ibm.com:389'))
WITHLABEL('Mapping LDAP LDAPUser1 to USER1')
RACMAP ID(USER3) MAP USERDIDFILTER(NAME('CustomUser3'))
REGISTRY(NAME('customRealm')) WITHLABEL('Mapping custom CustomUser3 to USER3')
RACMAP ID(USER5) MAP USERDIDFILTER(NAME('uid=wimUser5,o=defaultWIMFileBasedRealm
')) REGISTRY(NAME('defaultWIMFileBasedRealm')) WITHLABEL('Mapping custom wimUser5 to USER5')
Kerberos プリンシパルの SAF ユーザーへのマップ:
Kerberos 認証メカニズムを持つ z/OS オペレーティング・システムで ローカル OS レジストリーを構成してある場合は、Kerberos ユーザーを SAF ユーザーに マップすることができます。この場合、分散 ID は Kerberos プリンシパル名になります。 分散レルム名は、KDC の Kerberos レルム名です。
kerberosUser@KRB390.IBM.COM to the SAF user WSADMIN:
RACMAP ID(WSADMIN) MAP USERDIDFILTER(NAME('kerberosUser'))
REGISTRY(NAME('KRB390.IBM.COM')) WITHLABEL('Mapping Kerberos kerberosUser to WSADMIN')
複数分散 ID の SAF ユーザーへのマップ:
RACMAP ID(ACCT) MAP USERDIDFILTER(NAME('*'))
REGISTRY(NAME('accountingUnit.acme.ibm.com:389'))
WITHLABEL('Mapping accounting users to ACCT')
RACMAP ID(ACCT2) MAP USERDIDFILTER(NAME('O=ibm,C=us'))
REGISTRY(NAME('accountingUnit.acme.ibm.com:389'))
WITHLABEL('Mapping US accounting users to ACCT2')
証明書および識別名の SAF ユーザーへのマップ
RACMAP ID(ACCT3) MAP USERDIDFILTER(NAME('O=ibm,C=us'))
REGISTRY(NAME('localOSRealm'))
WITHLABEL('Mapping certificate or distinguished names to ACCT3')
デフォルト分散 ID フィルターの作成:
他のどのフィルターにもない分散 ID を、RESTRICTED 属性を持つ SAF ユーザーにマップするデフォルト・フィルターを定義する場合があります。
RACMAP ID(WSGUEST) MAP USERDIDFILTER(NAME('*'))
REGISTRY(NAME('*')) WITHLABEL('The default filter')
認証ユーザーに関する RACMAP フィルター変更の有効化
ユーザーは、レジストリーで認証されると、認証キャッシュにも追加されます。 z/OS セキュリティー製品での RACMAP フィルターに対する変更は、 このユーザーが認証キャッシュから削除されるまで 有効になりません。
この変更を即時に有効にする場合は、 更新するサーバーで SecurityAdmin Mbean を呼び出します。 purgeUserFromAuthCache オペレーションを呼び出して特定の 1 人のユーザーを削除するか、 clearAuthCache オペレーションを呼び出して認証キャッシュからすべてのユーザーを削除することができます。 また、サーバーを再始動すると、認証キャッシュがクリアされます。
Mbean およびそのオペレーションの詳細については、SecurityAdmin MBean の定義テーブルを参照してください。
例えば、分散 ID LDAPUser1 は SAF ユーザーにマップされず、ロールで保護されたサーブレットへのログインを試行します。 ユーザー ID とパスワードが有効であるため、ユーザーは認証され、認証キャッシュに追加されます。 ただし、LDAPUser1 は SAF ユーザーにマップされず、デフォルト非認証 ID の WSGUEST が許可に使用されます。
WSGUEST はサーブレット・ロールに許可されないため、LDAPUser1 はサーブレットにアクセスできません。 z/OS セキュリティー管理者が、RACMAP フィルターを 定義して LDAPUser1 を SAF ユーザー USER1 に マップします。この ID が認証キャッシュから削除されるまで、LDAPUser1 はサーブレットにアクセスできません。
RACMAP コマンドについて詳しくは、 「z/OS Security Server RACF® コマンド言語解説書」を 参照してください。