ヘッダーをスキップ

Oracle Containers for J2EE セキュリティ・ガイド
10g(10.1.3.4.0)

B50832-01
目次
目次
索引
索引

戻る 次へ

C OracleAS JAAS Provider Admintoolリファレンス

この章には、OracleAS JAAS ProviderのAdmintoolのリファレンス情報が記載されています。この章の内容は次のとおりです。

Admintoolについて

この項では、OracleAS JAAS ProviderのAdmintoolを使用する際に役立つ情報を提供します。この項の内容は次のとおりです。

Admintoolの実行

java -jarオプションを使用してOracleAS JAAS Providerのjazn.jarファイルを実行することにより、Admintoolを実行します。現行のディレクトリをjazn.jarが配置されているディレクトリにするか、または次の例に示すように、Javaコマンドラインでjazn.jarへのパスを指定します。

% java -jar /myroot/mydir/jazn.jar ...


注意

jazn.jarは、通常、次の場所に配置されます。

ORACLE_HOME/j2ee/home/jazn.jar
 

デフォルトでは、Admintoolは、現行ディレクトリ下にあるconfigディレクトリのjazn.xml構成ファイルを検索します。これを変更するには、oracle.security.jazn.configシステム・プロパティによって場所を直接指定するか、oracle.homeプロパティまたはoracle.j2ee.homeプロパティでOracleホームまたはJ2EEホームの場所を指定します。検索場所の優先度については、「jazn.xmlファイル」を参照してください。

次の例では、jazn.xmlファイルの場所を指定しています。

% java -jar -Doracle.security.jazn.config=/tmp/jazn.xml jazn.jar ...

次の例では、J2EEホームの場所を指定しています。この場合のORACLE_HOMEは、Oracleホーム・ディレクトリへのパス、instancenameはOC4Jインスタンスの名前(homeなど)を表しています。この指定に基づき、AdmintoolはORACLE_HOME/j2ee/instancename/configディレクトリ内でjazn.xmlを検索します。

% java -jar -Doracle.j2ee.home=ORACLE_HOME/j2ee/instancename jazn.jar ...

Admintoolのユーザー・リポジトリの場所

ファイルベースのセキュリティ・プロバイダを使用する場合は、jazn.xmlファイルにある<jazn>要素のlocation属性によって、Admintoolが使用するユーザー・リポジトリ(system-jazn-data.xmlまたはjazn-data.xml)の場所が指定されます。デフォルトでは、これはsystem-jazn-data.xmlファイルですが、locationの設定を更新して、アプリケーション固有のjazn-data.xmlファイルを使用することができます。

<jazn provider="XML" location="path/jazn-data.xml">
   ...
</jazn>

Oracle Identity Managementを使用する場合、次の例のように、<jazn>location属性によってOracle Internet Directoryの場所が指定されます。ただし、Oracle Identity Managementを使用する場合はlocationの値を手動で更新しないでください。この値は、Application Server Controlを介してOracle Internet DirectoryインスタンスをOC4Jに関連付けるとき(「Oracle Internet DirectoryとOC4Jの関連付け」を参照)に自動的に設定されます)。次に例を示します。

<jazn provider="LDAP" location="ldap://myoid.oracle.com:389" default-realm="us" >
   ...
</jazn>

Admintoolに対する認証

Admintoolを実行する際には、ユーザーは、オプションとして-userおよび-passwordコマンドライン・オプションを使用して、認証を受ける必要があります。ユーザー認証は、次のいずれかの方法で行えます。

前述のいずれのモードでも、コマンドラインで指定したオプションが実行されると、システム・プロンプトが再表示されます。さらに他のAdmintoolコマンドを実行するには、再度ツールを実行してもう1回認証される必要があります。

再度認証を受けることなく複数のコマンドを実行するには、Admintoolシェル・モードを使用できます。このモードでは、「Admintoolシェル」で説明しているように、シェルを終了するまではAdmintoolのプロンプトから繰り返しコマンドを実行できます。

Admintoolでのカスタム・プリンシパルとパーミッションの使用

Admintoolとカスタム・プリンシパルおよびパーミッションを連携させるには、カスタム・クラスを含んでいるJARファイルの場所を指定するようにclasspathプロパティを構成します。そのためには、次の例のように、jazn.xmlファイルの<jazn>要素にある<property>サブ要素を使用します。

<jazn ... >
   ...
   <property name="classpath" value="/tmp/customPrincipal.jar" />
   ...
</jazn>


注意

前のバージョンでは、回避策としてJARファイルをjre/lib/extディレクトリに配置していました。この方法は現在でも可能ですが、お薦めしません。 


Admintoolのコマンドライン構文およびオプションの概要

Admintoolには、管理機能用のコマンド・オプションが多数用意されています。一般的な構文は、次のとおりです。

% java -jar jazn.jar [-user username -password password] [option1 option2 ... ]


重要

  • -userおよび-passwordオプションを使用する場合(前項で説明したように、これは非推奨)は、コマンドライン上の他のすべてのオプションより前に指定する必要があります。

  • Admintoolの変更を有効にするには、OC4Jを再起動します。

 

この項では、Admintoolのコマンドのすべてのオプションを、詳細の参照先とともに示します。すべてのオプションとその構文は、-helpオプションでもリスト表示できます。

% java -jar jazn.jar -help

コマンドライン・オプションの概要は、次のとおりです。

Admintoolシェル

Admintoolシェルを使用すると、UNIXに似たインタフェースを介してJAASのプリンシパルとポリシーを対話形式で管理できます。-shellオプションで、シェルを開始します。次に例を示します(ユーザーとパスワードを要求されたら、ユーザーoc4jadminおよびパスワードを入力します)。

% java -jar jazn.jar -shell
AbstractLoginModule username: oc4jadmin
AbstractLoginModule password: password
JAZN:> 

このシェルは、JAZN:>プロンプトで応答します。インタフェース・シェルを終了するには、exitシェル・コマンドを使用します。シェル・コマンドのリストを表示するには、helpコマンドを使用します。特定のシェル・コマンドの詳細が表示できるように、シェルではmanコマンドがサポートされています。

JAZN:> man admintoolcommand


注意

複数の語で構成される引数は、引用符で囲む必要があります。次に例を示します。

% java -jar jazn.jar -user "Oracle DBA" ...
 

この項の以降の部分で、次の項目について説明します。

Admintoolコマンドライン・オプションのシェル・サポート

Admintoolシェルでは、Admintoolコマンドラインと同じオプションがサポートされていますが、オプション名の前にハイフン(-)を含める必要はありません。(ハイフンを含めると、オプションは無視されます。)Admintoolシェルを起動すると、次のシェル・コマンドラインは、(システム・プロンプトからの)次のAdmintoolコマンドラインと同じになります。

JAZN:> option1 option2 ... optionN

% java -jar jazn.jar -option1 -option2 ... -optionN

Admintoolシェルのディレクトリ構造

Admintoolシェルは、OracleAS JAAS Provider APIへの対話型インタフェースです。

シェルのディレクトリ構造はノードで構成され、各ノードには親ノードのプロパティを表すサブノードが含まれています。図C-1にノード構造を示します。

図C-1    Admintoolシェルのディレクトリ構造


画像の説明

この構造では、userおよびroleノードがリンクされています。これは、userの下のrolesリンクが、realmの下のrolesリンクと同じであることを意味します。UNIX用語では、この図で番号1のroleは、この図で番号2のroleへのシンボリック・リンクです。


注意

このリリースでは、ポリシー・ディレクトリは常に空です。  


次の図C-2に、レルムabcRealmのノードを示します。

図C-2    シェルのディレクトリ構造のサンプル


画像の説明

Admintoolの特別シェル・コマンドの概要

この項では、次のAdmintoolのシェル・コマンドの概要を説明します。

すべてのAdmintoolコマンドで相対パスと絶対パスがサポートされます。

add、mkdirおよびmk: プロバイダ・データの作成

add name [other_parameter]
mkdir name [other_parameter]
mk name [other_parameter]

addmkdirmkの各コマンドは等価で、いずれも現行のディレクトリにサブディレクトリまたはノードを作成します。コマンドの結果は、現行ディレクトリの場所によって異なります。たとえば、現行のディレクトリがルートの場合、コマンドによってレルムが作成されます。現行のディレクトリが/realm/usersの場合、コマンドによってユーザーが作成されます。状況によっては、これらのコマンドが-addrealm-adduserなどのAdmintoolコマンドと等価となる場合があります。

前述のシェル・コマンドには、追加のパラメータが必要となる場合があります。これは基本的に、同等のAdmintoolコマンドに対して必要となるパラメータと同じです。たとえば、次のシェル・コマンドを実行するとします。

JAZN:> add myrealm myuser mypassword myrole

/realmsディレクトリの下で実行する場合、このシェル・コマンドは次のコマンドと等価になります。

% java -jar jazn.jar -addrealm myrealm myuser mypassword myrole

cd: プロバイダ・データのナビゲート

cd path

cdコマンドを使用すると、ディレクトリ・ツリーをナビゲートできます。相対パス名と絶対パス名がサポートされます。

/とパスを入力すると、ルート・ノードに戻ります。

指定したディレクトリが存在しない場合は、エラー・メッセージが表示されます。

clear: 画面の消去

clear

clearコマンドを実行すると、80の空白行が表示されて端末画面がクリアされます。

exit: Admintoolシェルの終了

exit

exitコマンドを実行すると、Admintoolシェルが終了します。

help: Admintoolのシェル・コマンドのリスト表示

help

helpコマンドを実行すると、有効なすべてのシェル・コマンドのリストが表示されます。

ls: データのリスト表示

ls [path]

lsコマンドを実行すると、現行のディレクトリまたはノードの内容がリスト表示されます。たとえば、現行のディレクトリがルートの場合、lsではすべてのレルムのリストが表示されます。現行のディレクトリが/realm/usersの場合、lsではレルムのすべてのユーザーのリストが表示されます。表示されるリストは、現行のディレクトリに応じて異なります。lsコマンドには、*ワイルドカードを使用できます。

man: AdmintoolのManページの表示

man command_option
man shell_command

manコマンドを実行すると、指定したシェル・コマンドまたはAdmintoolコマンド・オプションの詳細な使用方法が表示されます。

pwd: 作業ディレクトリの表示

pwd 

pwdコマンドを実行すると、ディレクトリ・ツリー内のユーザーの現在位置が表示されます。未定義の値は、このリストに空白として表示されます。

rm: プロバイダ・データの削除

rm name 

rmコマンドを実行すると、現行のディレクトリからディレクトリまたはノードが削除されます。コマンドの結果は、現行ディレクトリに応じて異なります。たとえば、現行のディレクトリがルートの場合、rmでは指定したレルムが削除されます。現行のディレクトリが/realm/usersの場合は、指定したユーザーが削除されます。指定した名前が存在しない場合は、エラー・メッセージが表示されます。

rmコマンドには、*ワイルドカードを使用できます。

set: 値の更新

set name=value

setコマンドを実行すると、指定した名前の値が更新されます。たとえば、このコマンドでは、作業ディレクトリに応じて、ログイン・モジュール・クラス、ログイン・モジュール制御フラグまたはログイン・モジュール・クラス・オプションが更新されます。

Admintoolの管理機能

この項では、Admintoolの管理機能について説明します。内容は次のとおりです。

ログイン・モジュールの追加と削除

-addloginmodule application_name login_module_name
       control_flag [optionname=value ...]
-remloginmodule application_name login_module_name

-addloginmoduleオプションを指定すると、指定したアプリケーション用に新規ログイン・モジュールが構成されます。

control_flagには、標準のjavax.security.auth.login.Configurationクラスに指定されているとおり、requiredrequisitesufficientまたはoptionalのいずれかを指定する必要があります。これらのフラグ値の意味の概要は、表9-5で説明しています。

ログイン・モジュールが独自のオプションを受け入れる場合は、各オプションとその値をoptionname=valueのペアとして指定します。各ログイン・モジュールには、独自の個別オプション・セットがあります。

たとえば、MyLoginModuleを必須モジュールとしてアプリケーションmyappに追加する場合に、このログイン・モジュールでdebugオプションがサポートされているときは、次のように入力します。

% java -jar jazn.jar -addloginmodule myapp MyLoginModule required debug=true

MyLoginModulemyappから削除するには、次のように入力します。

% java -jar jazn.jar -remloginmodule myapp MyLoginModule

Admintoolのシェルの場合

JAZN:> addloginmodule myapp MyLoginModule required debug=true 
JAZN:> remloginmodule myapp MyLoginModule

レルムの追加と削除(ファイルベース・プロバイダのみ)

-addrealm realm admin adminpwd adminrole
-remrealm realm

-addrealm オプションを指定すると、指定した名前と管理者でレルムが作成されます。

ファイルベース・プロバイダの場合、レルムの名前、レルムの管理者、管理者のパスワード、管理者のロールを指定します。

-addrealm realm admin adminpwd adminrole

-remrealmオプションを指定すると、レルムが削除されます。


重要

Oracle Internet Directoryのレルムを作成する場合は、OracleAS JAAS ProviderのAdmintoolを使用しないでください。このツールで作成したレルムが適しているのは、ファイルベース・プロバイダに対してのみです。Oracle Internet Directoryで使用するための情報が不足しています。かわりに、Oracle Delegated Administration Service(DAS)を使用してください。 


関連項目

 

たとえば、管理者marthaを指定してレルムemployeesを作成するときに、管理者のパスワードがmypassで、管理者がロールhrのメンバーである場合は、次のように入力します。

% java -jar jazn.jar -addrealm employees martha mypass hr

employeesを削除する場合は、次のように入力します。

% java -jar jazn.jar -remrealm employees

Admintoolのシェルの場合

JAZN:> addrealm employees martha mypass hr
JAZN:> remrealm employees

ロールの追加と削除(ファイルベース・プロバイダのみ)

-addrole realm role
-remrole realm role

-addroleオプションを使用して指定のレルムにロールを作成し、-remroleオプションを使用してレルムからロールを削除します。

たとえば、ロールroleFooをレルムfooに追加するには、次のように入力します。

% java -jar jazn.jar -addrole foo fooRole

レルムからロールを削除するには、次のように入力します。

% java -jar jazn.jar -remrole foo fooRole

Admintoolのシェルの場合

JAZN:> addrole foo fooRole
JAZN:> remrole foo fooRole

ユーザーの追加と削除(ファイルベース・プロバイダのみ)

-adduser realm username password
-remuser realm username

-adduserオプションを使用して指定のレルムにユーザーを追加し、-remuserオプションを使用してユーザーをレルムから削除します。

次に示す例のように、コマンドラインではなくAdmintoolシェルを使用してユーザーを追加することをお薦めします。

% java -jar jazn.jar -shell
AbstractLoginModule username : oc4jadmin
AbstractLoginModule password : adminpassword
JAZN:> adduser jazn.com my_user my_password

Admintoolのコマンドラインでユーザーを入力するのはあまりセキュアではありません。たとえば、UNIXシステムでは、システム上の他のユーザーは、すべてのプロセスをリスト表示するps -efコマンドを使用することでパスワードを見ることができます。これに対し、Admintoolシェルに入力したコマンドはAdmintoolのみが読み取れます。

ただし、コマンドラインでユーザーを追加する方法もサポートされています。たとえば、パスワードmypassを指定してユーザーmarthaをレルムfooに追加するには、次のように入力します。

% java -jar jazn.jar -adduser foo martha mypass 

パスワードを指定せずにユーザーを挿入するには、次のようにコマンドラインの最後に-nullオプションを指定します。

jazn -jar jazn.jar -adduser foo martha -null

レルムからmarthaを削除するには、次のように入力します。

% java -jar jazn.jar -remuser foo martha

Admintoolのシェルの場合

JAZN:> adduser foo martha mypass
JAZN:> remuser foo martha

パスワードの設定(ファイルベース・プロバイダのみ)

-setpasswd realm user old_pwd new_pwd

-setpasswdオプションを使用すると、管理者は古いパスワードを指定したユーザーのパスワードを再設定できます。

たとえば、レルムfooのユーザーmarthaのパスワードをmypassからa2d3vnに変更するには、次のように入力します。

% java -jar jazn.jar -setpasswd foo martha mypass a2d3vn

Admintoolのシェルの場合

JAZN:> setpasswd foo martha mypass a2d3vn

パスワードのチェック(ファイルベース・プロバイダのみ)

-checkpasswd realm user [-pw password]

-checkpasswdオプションを使用して、指定のユーザーの認証にパスワードが必要かどうかを指定します。

-checkpasswdを単独で指定すると、Admintoolでは、ユーザーがパスワードを持っている場合は「このプリンシパルのためのパスワードが存在します。」、パスワードを持っていない場合は「このプリンシパルのためのパスワードは存在しません。」という応答が戻されます。

-checkpasswdをパスワード用の-pwパラメータとともに指定すると、Admintoolでは、ユーザー名とパスワードのペアが正しい場合は、「ユーザー/パスワードのペアの検証に成功しました。」というレスポンスが戻され、ユーザーまたはパスワードが正しくない場合は「ユーザー/パスワードのペアの検証に失敗しました。」というレスポンスが戻されます。

たとえば、レルムfoo内のユーザーmarthaがパスワードHelloを使用するかどうかをチェックするには、次のように入力します。

% java -jar jazn.jar -checkpasswd foo martha -pw Hello

Admintoolのシェルの場合

JAZN:> checkpasswd foo martha -pw Hello

管理操作

-activateadmin

-activateadminオプションを使用して、デフォルト・レルム内のoc4jadminアカウント(旧admin)をアクティブにし、パスワードを設定するには、次のようにします。(スタンドアロンOC4Jでは、ファイルベース・プロバイダに対してこのアカウントは最初は非アクティブになっています。)

% java -jar jazn.jar -activateadmin password

Admintoolのシェルの場合

JAZN:> activateadmin password


注意

-activateadminコマンドは、1度だけのコマンドです。すでに管理アカウントがアクティブになっている場合、その旨を知らせるエラーがスローされます。 


関連項目

 

パーミッションの付与と取消し

-grantperm {realm {-user user |-role role} | principal_class principal_params}
            permission_class [permission_params] 
-revokeperm {realm {-user user|-role role} | principal_class principal_params}
             permission_class [permission_params] 

この構文のprincipal_classは、java.security.Principalインタフェースを実装するクラスの完全修飾名で、principal_paramsは、プリンシパル・クラスによって解釈される文字列です。

-grantpermオプションを使用して、指定したパーミッションをユーザー(-userでコールする場合)、ロール(-roleでコールする場合)またはプリンシパルに付与します。-revokepermオプションを使用すると、指定したパーミッションがユーザー、ロールまたはプリンシパルから取り消されます。

ユーザーまたはロールに対してパーミッションの付与または取消しを行う場合は常にレルムを指定しますが、プリンシパルに対してパーミッションの付与または取消しを行う場合は指定しません。

パーミッションの指定は、パーミッションの明示的なクラス名と、そのアクション・パラメータおよびターゲット・パラメータから構成されます。次の例のように、複数のアクション・パラメータとターゲット・パラメータを指定できることに注意してください。


注意

Admintoolから「パーミッション・クラスが見つかりません。」というエラー・メッセージが発行された場合、付与するパーミッションがクラスパス内にないことを意味します。「Admintoolでのカスタム・プリンシパルとパーミッションの使用」を参照してください。 


たとえば、プリンシパル・パラメータhobbesLDAPPrincipalが理解できる値)およびパーミッション・パラメータgetProtectionDomainRuntimePermissionが理解できる値)を使用してプリンシパルLDAPPrincipalRuntimePermissionを付与するには、次のように入力します。

% java -jar jazn.jar -grantperm oracle.security.jazn.realm.LDAPPrincipal hobbes
     java.lang.RuntimePermission getProtectionDomain

もう1つ例を示すと、ターゲットa.txtとアクションread, writeを指定して、レルムfooのユーザーmarthaFilePermissionを付与するには、次のように入力します。

% java -jar jazn.jar -grantperm foo -user martha java.io.FilePermission
     a.txt read,write

パーミッションを取り消すには、次のように入力します。

% java -jar jazn.jar -revokeperm foo -user martha java.io.FilePermission
     a.txt read,write

Admintoolのシェルの場合

JAZN:> grantperm foo -user martha java.io.FilePermission a.txt read,write
JAZN:> revokeperm foo -user martha java.io.FilePermission a.txt read,write

ロールの付与と取消し

-grantrole role realm {user |-role role} 
-revokerole role realm {user |-role role} 

-grantroleオプションを使用して、指定のロールをユーザー(ユーザー名でコールする場合)またはロール(-roleでコールする場合)に付与します。-revokeroleオプションを使用すると、指定のロールがユーザーまたはロールから取り消されます。

たとえば、ロールeditorをレルムfooのユーザーmarthaに付与するには、次のように入力します。

% java -jar jazn.jar -grantrole editor foo martha

あるいは、ロールfinancialをロールfinreporterに付与するには、次のように入力します。

% java -jar jazn.jar -grantrole financial foo -role finreporter

Admintoolのシェルの場合

JAZN:> grantrole editor foo martha
JAZN:> revokerole editor foo martha

ログイン・モジュールのリスト表示

-listloginmodules [application_name] [login_module_class]

-listloginmodulesオプションを使用して、指定のapplication_name内のログイン・モジュールをすべて表示します。application_nameを指定しないと、すべてのアプリケーション内のログイン・モジュールが表示されます。application_nameの後にlogin_module_classを指定すると、アプリケーション内の指定したクラスに関する情報のみが表示されます。

たとえば、アプリケーションmyappのログイン・モジュールをすべて表示するには、次のように入力します。

% java -jar jazn.jar -listloginmodules myapp

Admintoolのシェルの場合

JAZN:> listloginmodules myapp

パーミッションのリスト表示

-listperms {realm {-user user | -role role} | principal_class principal_params
            permission_class [permission_params] 

-listpermsオプションを使用して、リスト基準と一致するパーミッションをすべて表示します。

ユーザーまたはロールのパーミッションをリスト表示する場合は常にレルムを指定しますが、プリンシパルのパーミッションをリスト表示する場合は指定しません。


重要

PermissionClassManagerおよび関連するクラスと操作(-listpermsを含む)は、OC4J 10.1.3.x実装では非推奨になっており、将来のリリースではサポートされない予定です。 


たとえば、レルムfooのユーザーmarthaのパーミッションをすべて表示するには、次のように入力します。

% java -jar jazn.jar -listperms foo -user martha

Admintoolのシェルの場合

JAZN:> listperms foo -user martha

レルムのリスト表示

-listrealms [realm]

-listrealmsオプションを使用して、現行のJAAS環境のレルムをすべて表示します。引数としてレルムを指定すると、そのレルムのみがリスト表示されます。

たとえば、レルムすべてのリストを表示するには、次のように入力します。

% java -jar jazn.jar -listrealms

Admintoolのシェルの場合

JAZN:> listrealms

ロールのリスト表示

-listroles [realm [user | -role role]]
 

-listrolesオプションを使用して、リスト基準と一致するロールのリストを表示します。このオプションでは、次のユーザーがリスト表示されます。

たとえば、レルムfooのすべてのロールのリストを表示するには、次のように入力します。

% java -jar jazn.jar -listroles foo 

Admintoolのシェルの場合

JAZN:> listroles foo 

ユーザーのリスト表示

-listusers [realm [-role role | -perm permission]]

-listusersオプションを使用して、リスト基準と一致するユーザーのリストを表示します。このオプションでは、次のユーザーがリスト表示されます。

たとえば、レルムfooのすべてのユーザーのリストを表示するには、次のように入力します。

% java -jar jazn.jar -listusers foo

パーミッションbarを使用しているレルムfooのすべてのユーザーのリストを表示するには、次のように入力します。

% java -jar jazn.jar -listusers foo -perm bar

Admintoolでは、次のようにユーザーが1行に1人ずつリスト表示されます。

scott
admin
anonymous

Admintoolのシェルの場合

JAZN:> listusers foo

principals.xmlファイルからJAASへの変換

-convert filename realm

-convertオプションを使用して、principals.xmlファイルを現行のOracleAS JAAS Providerの指定したレルムに移植します。filename引数には、入力ファイルのパス名(通常はORACLE_HOME/j2ee/home/config/principals.xml)を指定します。次に例を示します。

% java -jar jazn.jar \
       -convert $ORACLE_HOME/j2ee/home/config/principals.xml jazn.com

Admintoolのシェルの場合

JAZN:> convert ORACLE_HOME/j2ee/home/config/principals.xml jazn.com

関連項目

 


戻る 次へ
Oracle
Copyright © 2003, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引