Oracle Containers for J2EE
セキュリティ・ガイド
10g(10.1.3.4.0) B50832-01 |
|
OC4Jでは、ファイルベースのセキュリティ・プロバイダが用意されています。XMLベースのファイルがユーザー、ロールおよびポリシーのリポジトリとして使用されます。このファイルベース・プロバイダは、一般に開発時や小規模な本番環境(スタンドアロンOC4Jを使用する場合など)で使用されます。デフォルトのセキュリティ・プロバイダでもあります。具体的には、OracleAS JAAS Providerではファイルベース(XMLベース)プロバイダの次のタスクがサポートされています。
これらの情報は、XMLリポジトリ(通常system-jazn-data.xml
)に格納されます。ただし、かわりにアプリケーション固有のjazn-data.xml
ファイルを使用することもできます。
この章では、Application Server Controlコンソールの機能に沿って、ファイルベース・プロバイダのユーザー、ロール、およびレルムの基本管理タスクについて説明します。
この章の内容は次のとおりです。
ファイルベース・プロバイダのユーザーとロールを管理するには、Application Server Controlコンソールを使用します(「Application Server Controlを介したアプリケーション・レルムの管理」を参照)。これにより、ユーザー・リポジトリ(system-jazn-data.xml
ファイル、または供給するアプリケーション固有jazn-data.xml
ファイル)が更新されます。
ファイルベース・プロバイダのポリシーを管理するには、OracleAS JAAS Provider Admintoolを使用します。「Admintoolのコマンドライン構文およびオプションの概要」にリストされているポリシー・オプションを参照してください。
通常、system-jazn-data.xml
またはjazn-data.xml
ファイルは直接操作しないようにします。
この項では、Application Server Controlコンソールを使用して、ファイルベース・プロバイダを使用するアプリケーション用に行う次の管理タスクについて説明します。また、最後にインスタンス・レベルの管理に関する項があります。
ファイルベース・プロバイダを指定できるのは、Application Server Controlを介してアプリケーションをデプロイするときです。オプションで、jazn-data.xml
ファイルの場所とデフォルト・レルムの指定もできます。
「デプロイ: デプロイ設定」ページで、次の手順を実行します(このページへのナビゲート方法は、「Application Server Controlを介したアプリケーションのデプロイ」を参照してください)。
アプリケーションで使用するセキュリティ・プロバイダは、前述のようにデプロイ時に選択できます。また、デプロイ後に、異なるセキュリティ・プロバイダに変更することもできます。次の手順でファイルベース・プロバイダに変更できます。
「セキュリティ・プロバイダ」ページが再表示されます。このページで設定を確認できます。変更を有効にするためにアプリケーションを再起動するよう指示されます。
この項では、ファイルベース・プロバイダのレルムを構成する方法について説明します。
後述のどの手順の場合も最初の手順は、アプリケーションのApplication Server Controlコンソールの「セキュリティ・プロバイダ」ページに進むことです(「アプリケーションの「セキュリティ・プロバイダ」ページへのナビゲート」を参照)。
ここでのタスクにより、リポジトリ・ファイルの<jazn-realm>
要素の下においてサブ要素が作成または変更されます。<jazn-realm>
の下には、レルムごとに<realm>
サブ要素があります。
注意 レルムの編集タスクというものはありません。レルムの編集とは、ユーザーまたはロールあるいはその両方の更新のことですが、これらについては「Application Server Controlを介したアプリケーション・ユーザーの管理」および「Application Server Controlを介したロールの管理」に記載されています。 |
レルムを検索するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
レルムを作成するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
「セキュリティ・プロバイダ」ページが再表示されます。このページでレルム・リスト内の新しいレルムを確認できます。
レルムを削除するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
「セキュリティ・プロバイダ」ページが再表示されます。
この項では、ファイルベース・プロバイダのユーザーを構成する方法について説明します。
後述のどの手順の場合も最初の手順は、アプリケーションのApplication Server Controlコンソールの「セキュリティ・プロバイダ」ページに進むことです(「アプリケーションの「セキュリティ・プロバイダ」ページへのナビゲート」を参照)。
ここでのタスクにより、リポジトリ・ファイルの<users>
要素の下においてサブ要素が作成または変更されます。各<realm>
要素には、そのレルムに含まれるユーザー用に<users>
サブ要素があります。
ユーザーを検索するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
ユーザーを作成するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
「ユーザー」ページが再表示されます。このページでユーザー・リスト内の新しいユーザーを確認できます。
ユーザーを削除するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
「ユーザー」ページが再表示されます。
ユーザーのプロパティを編集するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
「ユーザー」ページが再表示されます。
注意 所定のユーザーの「ユーザー」ページには、ユーザーが属するロールの「ロール」ページからもアクセスできます(「ロールの編集」を参照してください)。「ロール」ページの「ユーザー」で、目的のユーザーを選択します。 |
この項では、ファイルベース・プロバイダのロールを構成する方法について説明します。
後述のどの手順の場合も最初の手順は、アプリケーションのApplication Server Controlコンソールの「セキュリティ・プロバイダ」ページに進むことです(「アプリケーションの「セキュリティ・プロバイダ」ページへのナビゲート」を参照)。
ここでのタスクにより、リポジトリ・ファイルの<roles>
要素の下においてサブ要素が作成または変更されます。各<realm>
要素には、そのレルムに含まれるロール用に<roles>
サブ要素があります。
ロールを検索するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
ロールを作成するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
ユーザーがRemote Method Invocation(RMI)を介して(たとえばリモートEJBクライアントから)OC4J上でオブジェクトにアクセスする場合、RMIパーミッションが必要になります。
ユーザーは、起動、停止、構成変更などの管理機能を実行するには、管理パーミッションが必要です。
「ロール」ページが再表示されます。このページでロール・リスト内の新しいロールを確認できます。
ロールを削除するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
「ロール」ページが再表示されます。
ロールのプロパティを編集するには、アプリケーションの「セキュリティ・プロバイダ」ページから、次の手順を実行します。
「ロール」ページが再表示されます。
OC4Jインスタンス・レベルのファイルベース・セキュリティ・プロバイダ用に、レルム、ユーザー、ロールを構成できます。このようにして行われた変更は、アプリケーション・レベルのjazn-data.xml
ファイル(指定されている場合)ではなく、常にsystem-jazn-data.xml
ファイルに影響します。
(インスタンス・レベルのファイルベース・プロバイダは、OC4Jのsystem-application.xml
ファイルの<jazn>
要素の設定に従って、system-jazn-data.xml
として指定されます。)
インスタンス・レベルのファイルベース・プロバイダは、アプリケーション用のファイルベース・プロバイダとほぼ同じ方法で管理できます。Application Server Controlコンソールの「インスタンス・レベルのセキュリティ」ページには、次の手順でナビゲートできます。
この項では、主要なOC4J構成ファイルにおける、ファイルベース・プロバイダに関する重要なセキュリティ構成について、参考情報を提供します。通常の場合、構成ファイルを直接操作するかわりに、Application Server Controlコンソール(この章で前述)を使用して構成と管理を行う必要があります。このツールを使用することにより、適切なエントリが構成ファイルに自動的に設定されます。
この項の以降の部分で、次の項目について説明します。
(jazn.xml
ファイルとorion-application.xml
ファイルの両方にある)<jazn>
要素には、セキュリティ・プロバイダ、リポジトリおよびデフォルト・レルムの構成を指定します。デフォルトでは、system-jazn-data.xml
ファイルは、ファイルベース・プロバイダのユーザー、ロールおよびポリシー構成のリポジトリですが、OC4Jは、このファイルのかわりにアプリケーション固有のjazn-data.xml
ファイルを使用するよう構成できます。
この項の内容は次のとおりです。
アプリケーションには、3つの代表的なデプロイ・シナリオがあります。これらのシナリオは、ファイルベース・プロバイダの使用時に、orion-application.xml
ファイルおよびインスタンス・レベルのjazn.xml
ファイルの<jazn>
要素の設定によって分類されるものです。
jazn.xml
ファイルに委任します。jazn.xml
の<jazn>
要素にprovider="XML"
設定がある場合に、orion-application.xml
ファイルに次の<jazn>
要素があるときには、このファイルのリポジトリ設定(location
属性)およびデフォルト・レルム設定(default-realm
属性)が使用されます。
<jazn provider="XML" />
または、jazn.xml
ファイルにlocation
およびdefault-realm
設定がない場合は、このファイルはデフォルト・リポジトリsystem-jazn-data.xml
とデフォルト・レルムjazn.com
を使用します。
jazn.xml
ファイルに委任します。jazn.xml
の<jazn>
要素にprovider="XML"
設定があるが、orion-application.xml
ファイルに次のような<jazn>
要素があるときには、このファイルのリポジトリ設定(location
属性)は使用されますが、デフォルト・レルムに関しては、orion-application.xml
ファイルの設定(default-realm
属性)が使用されます。
<jazn provider="XML" default-realm="abc.com" />
または、jazn.xml
ファイルにlocation
設定がない場合は、このファイルはデフォルト・リポジトリsystem-jazn-data.xml
を使用します。
orion-application.xml
で指定します。次の例では、orion-application.xml
で、リポジトリjazn-data.xml
とデフォルト・レルムmyrealm
を指定しています。
<jazn provider="XML" location="./jazn-data.xml" default-realm="myrealm" />
orion-application.xml
が次のように構成されている状態で、jazn-data.xml
ファイルがアプリケーションとともにパッケージ化されていない場合は、このファイルがデプロイ時に作成されます。
<jazn provider="XML" location="./jazn-data.xml" />
アプリケーションにjazn-data.xml
ファイルを供給する場合は、アプリケーションのorion-application.xml
ファイルにある<jazn>
要素のlocation
属性にその位置を指定します。次に例を示します。
orion-application.xml
で次のように指定します。
<jazn provider="XML" location="./jazn-data.xml" default-realm="myrealm" />
相対的な場所を指定する場合は、<jazn>
要素が格納されているorion-application.xml
ファイルの場所を基準とします。通常これは、アプリケーションEARファイルの/META-INF
ディレクトリになります。
/META-INF
ディレクトリにあるjazn-data.xml
ファイルをパッケージ化します。
この項では、system-jazn-data.xml
ファイルにおけるjazn.com
レルム用のユーザーとロールの構成を示します。一般的な構造は、system-jazn-data.xml
またはjazn-data.xml
ファイルにあるレルム構成の構造と同じです。この構成は、Application Server Controlを介してレルムを管理するときに自動的に作成されます。
<jazn-realm> <realm> <name>jazn.com</name> <users> <user deactivated="true"> <name>anonymous</name> <description>The default guest/anonymous user</description> </user> <user deactivated="true"> <name>oc4jadmin</name> <display-name>OC4J Administrator</display-name> <description>OC4J Administrator</description> <credentials>!welcome</credentials> </user> <user> <name>JtaAdmin</name> <display-name>JTA Recovery User</display-name> <description>Used to recover propagated OC4J transactions</description> <credentials>!defaultJtaPassword</credentials> </user> </users> <roles> <role> <name>oc4j-administrators</name> <display-name>OC4J Admin Role</display-name> <description>Administrative role for OC4J</description> <members> <member> <type>user</type> <name>oc4jadmin</name> </member> <member> <type>user</type> <name>JtaAdmin</name> </member> </members> </role> <role> <name>oc4j-app-administrators</name> <display-name>OC4J Application Administrators</display-name> <description>OC4J application-level administrators</description> <members> </members> </role> <role> <name>users</name> <display-name>users</display-name> <description>users role for rmi/ejb access</description> <members> </members> </role> </roles> </realm> </jazn-realm>
OracleAS JAAS Provider Admintoolで、-grantperm
オプションを使用してカスタム・プリンシパルにJAASパーミッションを付与できます(「パーミッションの付与と取消し」を参照)。
ポリシー・データは、system-jazn-data.xml
に格納されます。次の例はこのファイルの一部分で、RMIパーミッションloginをadmin
プリンシパルに付与した結果を示しています。(この例では、admin
がjazn.com
レルムに属するユーザーであると想定しています。)
<jazn-policy> <grant> <grantee> <principals> <principal> <realm-name>jazn.com</realm-name> <type>user</type> <class>oracle.security.jazn.samples.SampleUser</class> <name>admin</name> </principal> </principals> </grantee> <permissions> <permission> <class>com.evermind.server.rmi.RMIPermission</class> <name>login</name> </permission> </permissions> </grant> </jazn-policy>
次のアカウントは、ファイルベース・プロバイダ用にsystem-jazn-data.xml
に事前定義されています。
oc4jadmin
ユーザー(スタンドアロンOC4Jでは初期段階では解除されています。)
oc4j-administrators
ロール(oc4jadmin
をメンバーとして含んでいます。)
oc4j-app-administrators
ロール
ascontrol_admin
ロール(oc4jadmin
をメンバーとして含んでいます。)
ascontrol_appadmin
ロール
ascontrol_monitor
ロール
anonymous
ユーザー(初期段階では解除されています。)
users
ロール
jtaadmin
ユーザーOC4Jには、ファイルベース・リポジトリからOracle Internet Directoryリポジトリまたは代替ファイルベース・リポジトリに移植するためのツールが用意されています。(principals.xml
からの移植に使用するツールと混同しないでください。そのツールは別のもので、この章で後述します。)
Oracle Internet Directoryリポジトリに移植する際には、出力はLDIFファイルになり、このLDIFファイルをldapmodify
やbulkload
などのコマンドによりOracle Internet Directoryにインポートします。
この項の内容は次のとおりです。
移植ツールでは、ユーザー、ロール、ロール・メンバーシップおよびポリシーの移植がサポートされます(ロール、ユーザー、カスタム・プリンシパルまたはコードベースにパーミッションが付与されます)。
移植には次の3つのモードがあります。
移植ツールのコマンドラインの構文とオプションは次のとおりです。
% java JAZNMigrationTool [-st xml] [-dt ldap|xml] [-D binddn] [-w passwd] [-h ldaphost] [-p ldapport] [-sf sourcefilename] [-df destfilename] [-sr source_realm] [-dr dest_realm] [-m policy|realm|all] [-help]
これらのオプションについて、表7-1で説明します。
次の例では、all
モードで、指定されたホストのOracle Internet Directoryにあるデフォルトのサブスクライバ・レルムに移植しています。
% java oracle.security.jazn.tools.JAZNMigrationTool -D cn=orcladmin -w welcome1 \ -h myhost.example.com -p 389 -sf /tmp/jazn-data.xml -df /tmp/dest.ldif \ -sr jazndemo.com
移植ツール(パッケージoracle.security.jazn.tools
内のクラスJAZNMigrationTool
)はアプリケーションから起動することもできます。Oracleでは次のAPIを用意しています。
/** * Create an instance with the provided parameters. These parameters are * equivalent to the options supported by the executable utility version. */ public JAZNMigrationTool(Map params) /** * Perform the migration operation */ public void migrateData() throws JAZNException
このコンストラクタ内のparams
パラメータでは、前項の表7-1に記載されているものと同じオプションと同じデフォルトがサポートされています。パラメータ・キーは、定数としてJAZNMigrationTool
クラスに定義されています。表7-2に、JAZNMigrationTool
で定義されている定数とコマンドライン・オプション間の相関関係を示します。
キー定数 | 対応するオプション |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
非推奨のprincipals.xml
ファイルからデータを移植するには、OracleAS JAAS Provider Admintoolのconvert
オプションを使用します。
-convert filename realm
-convert
オプションを使用して、principals.xml
ファイルを現行のOracleAS JAAS Providerの指定したレルムに移植します。filename
引数には、入力ファイルのパス名(通常はORACLE_HOME
/j2ee/home/config/principals.xml
)を指定します。
移植により、principals.xml
のユーザーがデプロイ・ユーザーに、principals.xml
のグループがデプロイ・ロールに変換されます。それまでprincipals.xml
のグループに付与されていたパーミッションは、すべてデプロイ・ロールにマップされます。移植時にアクティブになっていなかったユーザーは移植されません。このため、移植を介してユーザーに意図せずにアクセス権が付与されることはありません。
principals.xml
を変換する前に、レルムの管理を認可されている管理ユーザーがいることを確認する必要があります。次に手順を示します。
principals.xml
内で、デフォルトではアクティブにされない管理ユーザーをアクティブにします。管理者用のパスワードを必ず作成してください。
principals.com
を作成します。たとえば、Admintoolシェルに次のように入力します。
JAZN> addrealm principals.com u1 welcome r1
レルムの作成に、principals.xml
内の管理者名とは異なる管理者名を使用したことを確認します。管理者名の違いを確認するのは、convert
オプションでは重複するユーザーは移植されませんが、重複するロールは古い方を上書きすることで移植されるためです。
principals.xml
をprincipals.com
レルムに移植します。
% java -jar jazn.jar -convert config/principals.xml principals.com
<default-realm>
をprincipals.com
に変更します。「ファイルベース・プロバイダに対する<jazn>要素の設定」を参照してください。
OC4J 10.1.3.1実装には、OC4Jインスタンスをグループに含めるための機能が追加されています(それまでは、グループに入れることができたのは名前が同じであるインスタンスのみでした)。
これらの機能とOC4J J2EEServerGroup
MBeanを使用して、グループ内の各OC4Jインスタンスのsystem-jazn-data.xml
ファイルに対する変更の整合性を図ることができます。
OC4Jクラスタでは、次のようにApplication Server Controlを介して新しいグループを作成できます。
次のように、Application Server Controlを介してグループを管理できます。
グループを作成してOC4Jインスタンスを移入した後に、クラスタMBeanブラウザを使用して、グループ内の各system-jazn-data.xml
ファイルに対して設定の整合性をとることができます。この場合、グループのJ2EEServerGroup
MBeanで操作を起動します。これには、system
アプリケーションのJ2EEApplication
MBeanも関係します。
この作業は次の手順で行います。
操作の結果が、グループ内のすべてのインスタンスのsystem-jazn-data.xml
ファイルに適用されます。
|
Copyright © 2003, 2008 Oracle Corporation. All Rights Reserved. |
|