![[z/OS]](../images/ngzos.gif)
ロール・ベースの許可の System Authorization Facility
ロールを割り当てる場合、以下の 3 つの選択肢があります。(1) WebSphere® Application Server 許可。この場合、許可管理機能は、管理コンソールの「ユーザー/グループへのセキュリティー・ロールのマッピング」パネルを使用して、WebSphere Administration 内で実行されます。(2) ロール・ベースの許可の System Authorization Facility (SAF) (WebSphere Authorization Facility for z/OS のみのオプション)。この場合、Java 2 Platform Enterprise Edition (J2EE) ロールに SAF 許可を使用します。 (3) 外部許可プロバイダー (プラグ可能 JACC インターフェースを使用します)。 WebSphere Application Server が SAF 許可を使用するように構成されている場合、許可管理機能は、SAF 管理機能を使用して実行され、J2EE ロール Management に対するユーザーまたはグループは WebSphere Administration 内で無視されます。SAF クラスの EJBROLE を使用すると (例えば、RACF® EJBROLE プロファイルを使用して)、EJB および Web アプリケーション (WebSphere Application Server 管理コンソール・アプリケーションを含む) における Java™ 2 Platform, Enterprise Edition (J2EE) ロールへのクライアントのアクセスが制御されます。
- SAF 許可が管理コンソールで選択された場合は、他のすべての許可の選択項目 (Tivoli Access Manager 許可など) に優先します。 詳しくは、 制御の要約 を参照してください。
- SAF 許可が使用可能な場合、すべてのレベルの許可は常に、オペレーティング・システムのセキュリティー・マネージャー (RACF または同等の製品) によって実行されます。 つまり、ユーザーがセキュリティー・マネージャー (RACF) ユーザー ID で 認証されるか、または SAF マッピング・モジュールが使用される必要があります。 詳しくは、System Authorization Facility (SAF) のオペレーティング・システムおよびアプリケーション・レベルに関する考慮事項を参照してください。
- システムのカスタマイズ中に SAF 許可が選択された場合、すべての管理ロールの管理 EJBROLE プロファイルは、カスタマイズ・ダイアログを使用して生成された RACF ジョブにより定義されます。そして、SAF 許可は、すべてのユーザー・レジストリーに対する許可メカニズムとして使用できます。 詳しくは、ローカル OS レジストリー使用時のコンソール・ユーザーへのアクセス制御を参照してください。
- SAF 許可を構成する際にプロパティー com.ibm.security.SAF.authorization を true に設定すると、管理ロールへのアクセスは SAF EJBROLE プロファイルを使用して制御されます。 管理ロールへのアクセスの許可について詳しくは、管理ロールへのアクセスの許可を参照してください。
- SAF 許可が使用可能な場合、コンソール・ユーザーおよびコンソール・グループのすべての値が無視されます。 管理コンソール内の「ユーザー/グループへのセキュリティー・ロールのマッピング」機能パネルは無視されます。 詳しくは、管理ロールとネーミング・サービスの許可を参照してください。
- Everyone および All Authenticated は無視されます (これらは RACF で管理されるため)。 詳しくは、System Authorization Facility (SAF) のオペレーティング・システムおよびアプリケーション・レベルに関する考慮事項とユーザーまたはグループへのセキュリティー・ロールのマッピングを参照してください。
- SAF 許可が使用可能な場合は、SAF EJBROLE プロファイルを使用して、CosNaming 機能へのアクセスを制御します。 カスタマイズ・ダイアログでセキュリティー・ドメイン・セットアップする際に、CosNaming ロールは、カスタマイズ・ジョブで定義されます。 CosNaming 機能と SAF 許可、および管理ロールとネーミング・サービスの許可のリファレンスについて詳しくは、ネーミング・ロールへのアクセスの制御に SAF 許可を使用する場合の特殊な考慮事項を参照してください。
- SAF 許可が使用可能な場合は、SAF EJBROLE プロファイルを使用して J2EE ロールを許可します。 非ローカル・オペレーティング・システムのレジストリーの場合は、WebSphere Application Server ID を SAF ID にマップするために、ID マッピングが用意されている必要があります。詳しくは、ローカル OS レジストリー使用時のコンソール・ユーザーへのアクセス制御を参照してください。
- J2EE ロールに対する SAF 許可は、アプリケーションのデプロイメント・プロセスから独立したタスクです。 詳しくは、ロールへのユーザーおよびグループの割り当てを参照してください。
- EJBROLE クラスを RACLIST する必要があります。EJBROLE クラスが RACLIST されていない場合には、EJBROLE クラス内のプロファイルに対して行われた変更を選出するためにアプリケーション・サーバーを再始動する必要があります。
- Servlet 3.1 仕様では、すべての認証済みユーザーに対してアクセス権限を付与するロール名 ** が新規に定義されています。デフォルトでは、許可の決定は SAF によって行われます。
- ロール名が ** のときにセキュリティー・コードがすべての認証済みユーザーにアクセス権限を付与するかどうかは、com.ibm.websphere.security.delegateStarStarRoleAuthorization カスタム・プロパティーで定義します。
- true - セキュリティー・コードは、プラグ可能な許可テーブルと相互作用せずにアクセス権限を付与します。
- false - セキュリティー・コードは、プラグ可能な許可テーブルに決定を委任します。これはデフォルト値です。

SAF 許可が使用可能な場合は、SAF EJBROLE プロファイルを使用して Java EE ロールを許可します。 非ローカル・オペレーティング・システムのレジストリーの場合は、WebSphere Application Server ID を SAF ID にマップするために、ID マッピングが用意されている必要があります。
SAF 許可を使用可能にするには、z/OS System Authorization Facility 許可で詳細を参照してください。
EJBROLES の定義はアプリケーション・デプロイメント・プロセスの一部です。 アプリケーションによって定義済みの Java EE ロールに対応する、定義済み EJBROLE プロファイルに対して、ユーザー ID が少なくとも READ アクセス権を持つ場合、そのユーザー ID はロールに割り当てられていると見なされます。 (EJBROLE という名前で混乱しないようにしてください。この名前は、エンタープライズ Bean および Web アプリケーションの両方で、Java EE ロールに使用されます。)
アプリケーション・デプロイヤーがコンポーネントのデプロイメント記述子でロールを使用する場合、 そのロール名は EJBROLE プロファイルの名前と同一でなければなりません。セキュリティー管理者は 、EJBROLE プロファイルを定義し、プロファイルに対して SAF ユーザーまたはグループを 許可します。ロールに対して適格であると見なされるには、ユーザーは EJBROLE プロファイルへの読み取りアクセス権を持つか、または 読み取りアクセス権を持つ SAF グループに関連付けられていなければなりません。
SAF 許可が選択されている場合、SAF プロファイル・プレフィックスの仕様 (以前には、z/OS セキュリティー・ドメインと呼ばれていました) により、WebSphere Application Server for z/OS のシステム・リソースが使用する特定の EJBROLE プロファイルが影響を受けます。SAF プレフィックスが定義される場合、WebSphere Application Server for z/OS ランタイム用の Java EE アプリケーション EJBROLE プロファイルの先頭にこのプロパティーの値が付けられます。これにより、 同じシスプレックスの別のセル上に、同じアプリケーションをデプロイすることができますが、 必要に応じて、ロール・マッピングに異なるユーザーを持つことができます。
例えば、アプリケーションに 2 つの Java EE ロール名 (juniorTellers および seniorTellers) があるとします。 これらは大/小文字混合のロールです。SAF レジストリーに、JTELLER と STELLER と呼ばれる MVS グループ、および BANKADM と呼ばれる MVS ユーザー ID があります。 JTELLER グループは juniorTellers ロールにアクセスするために必要で、 STELLER グループは seniorTellers ロールにアクセスするために必要です。 BANKADM ユーザー ID は、 両方のロールにアクセスするために必要です。
2 つのセルがあり、両方とも SAF プロファイル・プレフィックスを使用するように定義されています。 プレフィックスは、それぞれ PRODCELL および TESTCELL です。 TEST1 ユーザー ID は両方のロールにアクセスできますが、 テスト環境 TESTCELL 内でのみ可能です。
両方のセルに同じアプリケーションをデプロイする場合、以下のように、RACF (または同等のセキュリティー・サブシステム) を使用して、別個のプロファイルを定義する必要があります。
/* the EJBROLE class must be active, this step is done by the customization dialogs */ SETROPTS CLASSACT(EJBROLE) /* first define the roles in RACF */ RDEFINE EJBROLE PRODCELL.juniorTellers UACC(NONE) RDEFINE EJBROLE PRODCELL.seniorTellers UACC(NONE) RDEFINE EJBROLE TESTCELL.juniorTellers UACC(NONE) RDEFINE EJBROLE TESTCELL.seniorTellers UACC(NONE) /* permit the appropriate users and groups to the various roles */ PERMIT PRODCELL.juniorTellers CLASS(EJBROLE) ID(JTELLER BANKADM) ACCESS(READ) PERMIT PRODCELL.seniorTellers CLASS(EJBROLE) ID(STELLER BANKADM) ACCESS(READ) PERMIT TESTCELL.juniorTellers CLASS(EJBROLE) ID(TEST1) ACCESS(READ) PERMIT TESTCELL.seniorTellers CLASS(EJBROLE) ID(TEST1) ACCESS(READ) /* refresh the EJBROLE class in RACF * SETROPTS RACLIST(EJBROLE) REFRESH"
EJBROLES のグループ化 (GEJBROLE)
SAF インターフェースは、EJBROLE クラスのグループ化クラスもサポートします。 このグループ化クラスは、GEJBROLE と呼ばれます。同じユーザーまたはグループにいくつかのロールへのアクセス権を与える必要がある 場合には、これは特に役立ちます。
- アプリケーションのデプロイメント記述子を、 この企業で既に定義済みのロール (管理者など) に準拠するよう調整します。 このプロセスは、特にアプリケーションの変更または再インストールのたびに デプロイメント記述子の再調整が必要となるため、時間がかかり、エラーが発生しやすくなります。
- アプリケーションで必要なロールごとに EJBROLE プロファイルを定義します。 次に、ユーザーとグループに対して、これらのロールへのアクセスを許可します。 同じユーザーとグループが、意味が類似したいくつかの異なるプロファイルに対する許可を持つ可能性があるため、 このプロセスは、管理者にとっては規模が大きくなります。
- 上記の 2 つのオプションに関する最悪の問題を回避するには、グループ化クラスを使用します。 この場合も、 アプリケーションで必要なロールごとに EJBROLE プロファイルを定義する必要があります。 同じユーザーおよびグループのすべてに対して新規プロファイルの使用を許可するのではなく、 グループ化クラスで Supervisors などのプロファイルを作成し、 すべての新規 EJBROLE プロファイルをそこに追加します。 これらのロールへのアクセスを必要とするすべてのユーザーおよびグループを 1 箇所 (Supervisors プロファイルなど) で許可できるようになります。 さらに、既存の EJBROLE プロファイル (Managers) をグループ化クラス・プロファイル (Supervisors) に追加することによって、 管理作業を回避することもできます。
- RACF クラス GEJBROLE での組織ロール・プロファイルを計画します。
- ユーザー・グループを GEJBROLE プロファイルに許可して、アクセス・リストを作成し、 ロールを GEJBROLE プロファイルに追加します。
- GEJBROLE に EJBROLE が 1 つしかなくても構いません。
- ユーザーをロールに許可するために、EJBROLE および GEJBROLE を混合して使用しないでください。
- 可能であれば、ユーザーを GEJBROLE プロファイルにのみ許可します。
- 通常は、EJBROLE に優先して GEJBROLE を使用します。