ヘッダーをスキップ
Oracle® Fusion Middlewareアプリケーション・セキュリティ・ガイド
11g リリース1(11.1.1)
B56235-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

9 ポリシー・ストアの管理

次の各項で、Fusion Middleware Control、OPSSスクリプトまたはOracle Entitlements Serverを使用して管理者がポリシーを管理する方法について説明します。

この章では、次の項目についても説明します。

9.1 ポリシー・ストアの管理

ポリシー・ストアのデータにアクセスできるのは、ドメイン管理者など、適切なパーミッションを持つユーザーに限られます。

次の各項で、Fusion Middleware Control、OPSSスクリプトまたはOracle Entitlements Serverを使用して管理者がポリシーを管理する方法について説明します。代表的な操作は次のとおりです。

予期しない認可の失敗を防ぎ、効果的にポリシーを管理するには、次の重要ポイントに注意してください。


重要ポイント1:

ユーザーを削除する前に、ユーザーに付与されているすべてのパーミッション、アプリケーション・ロールおよびエンタープライズ・グループを取り消します。削除対象のユーザーを参照するセキュリティ・アーティファクトが残っていると、これらは中途半端に孤立した状態になり、同じ名前またはuidを持つ別のユーザーを後で作成したときに誤って継承される可能性があります。

ユーザー名またはuidを変更する場合にも、同様の考え方が当てはまります。古いデータを参照するすべてのポリシー(権限付与、パーミッション、グループ)を更新して、変更後のデータでも予期したとおりに機能するようにする必要があります。

第L.11項「ユーザーによる予期しないパーミッションの取得」を参照してください。



重要ポイント2:

ポリシーの適用時には、名前の大文字と小文字が区別されます。ユーザー名またはグループ名の大文字と小文字の違いによる認可エラーを防ぐ最善の方法は、アイデンティティ・ストアで指定されているとおりの文字構成による名前を使用することです。

そのため、次のことをお薦めします。

  • ポリシーのプロビジョニング時に、管理者は、ポリシーで使用するユーザーおよびグループの名前に、アイデンティティ・リポジトリに記録されているその名前とまったく同じ文字構成を使用します。これによって、ユーザー名またはグループ名を指定した問合せをポリシー・ストアに対して実行すると、想定したとおりに機能します。

  • 実行時にユーザー名を入力するときに、エンドユーザーは、アイデンティティ・リポジトリで指定されている大文字/小文字の組合せと完全に一致する名前を入力します。これによって、予期したとおりにユーザーが認可されます。

第L.4項「パーミッションの付与または取消しの失敗 - 大文字と小文字の不一致」を参照してください。



重要ポイント3:

リソース・タイプの名前、リソース、または権限には印刷可能文字のみを使用でき、先頭または末尾に空白を使用することはできません。

ロール名をはじめとしたポリシーにおける文字使用に関する考慮事項は、第L.16項「ポリシーに使用する文字」を参照してください。



重要ポイント4:

デフォルトでは、認可の失敗がコンソールに表示されません。認可の失敗がコンソールに送信されるようにするには、システム変数jps.auth.debugを-Djps.auth.debug=trueに設定する必要があります。

特に、JpsAuth.checkPermissionの失敗がコンソールに送信されるようにするには、この変数を前述のように設定する必要があります。


9.2 Fusion Middleware Controlを使用したポリシーの管理

Fusion Middleware Controlでは、次の項の説明のように、ドメインで使用しているポリシー・ストア・プロバイダのタイプに関係なく、WebLogicドメインでシステム・ポリシーおよびアプリケーション・ポリシーを管理できます。

9.2.1 アプリケーション・ポリシーの管理

この項では、Fusion Middleware Controlを使用してアプリケーション・ポリシーを管理する方法について説明します。


注意:

複数のアプリケーションがパーミッションを共有している場合、パーミッション・チェックの失敗を防ぐには、該当するパーミッション・クラスをシステム・クラスパスで指定しておく必要があります。


  1. Fusion Middleware Controlにログインし、「ドメイン」→「セキュリティ」→「アプリケーション・ポリシー」(アプリケーションがOracle WebLogic Serverにデプロイされている場合)、または「セル」→「セキュリティ」→「アプリケーション・ポリシー」(WebSphere Application Serverにデプロイされている場合)と移動して、「アプリケーション・ポリシー」ページを表示します(次の図にページの一部を示します)。

    emapppols.gifについては周囲のテキストで説明しています。

    ポリシー・ストア・プロバイダ」領域は読取り専用です。それを開くと、ドメインまたはセルで現在使用しているポリシー・ストア・プロバイダが表示されます。

  2. 指定したプリンシパルまたはパーミッションに一致するアプリケーションのポリシーを表示するには、「検索」領域を開き、検索対象のアプリケーション・ストライプを選択し、基準にする文字列(プリンシパル名、プリンシパル・グループまたはアプリケーション・ロール)を入力して、青いボタンをクリックします。検索の結果がページの下部の表に表示されます。

  3. 選択したアプリケーション・ストライプのアプリケーション・ポリシーを作成するには、「作成」をクリックして、「アプリケーション権限の作成」ページを表示します。ここで、作成する権限に対するプリンシパルおよびパーミッションを追加します。

    1. パーミッションを追加するには、「権限」領域の「追加」をクリックして、「権限の追加」ダイアログ・ボックスを表示します。

      そのダイアログ・ボックスの「検索」領域で、まず「権限」または「リソース・タイプ」を選択します。「権限」を選択した場合は、クラスまたはリソース名に一致するパーミッションを指定し、「権限クラス」および「リソース名」を指定します。「リソース・タイプ」を選択した場合は、タイプ名に一致するリソース・タイプを指定し、タイプを指定します。「OK」をクリックして「アプリケーション権限の作成」ページに戻ります。選択したパーミッションが、「権限」領域の表に表示されます。

    2. プリンシパルを追加するには、「権限受領者」領域の「追加」ボタンをクリックして、「プリンシパルの追加」ダイアログ・ボックスを表示します。

      そのダイアログ・ボックスの「検索」領域で、「タイプ」を選択し、プリンシパル名または表示名に一致させる文字列を入力して、青いボタンをクリックします。問合せの結果が「検索済プリンシパル」表に表示されます。その表から1つ以上の行を選択し、「OK」をクリックして「アプリケーション権限の作成」ページに戻ります。選択したプリンシパルが、「権限受領者」領域の表に表示されます。

    3. 「権限受領者」領域の表にある項目はいつでも削除できます。削除するには、項目を選択して「削除」ボタンをクリックします。同様に、この表の項目を選択して「編集」ボタンをクリックすると、その項目の内容を変更できます。

    4. 完了したら、「OK」をクリックして、「アプリケーション・ポリシー」ページに戻ります。作成したポリシーのプリンシパルとパーミッションがページの下部の表に表示されます。

  4. 既存のアプリケーション・ポリシーに基づいてアプリケーション・ポリシーを作成する手順は、次のとおりです。

    1. 表から既存のポリシーを選択します。

    2. 類似作成」をクリックし、「アプリケーション権限の類似作成」ページを表示します。このページでは、選択したポリシーから抽出されたデータがパーミッションの表に自動的に入力されます。

    3. 前述の手順3の下位手順の説明に従い、必要に応じてこれらの値を変更し、「OK」をクリックします。

9.2.2 アプリケーション・ロールの管理

この項では、Fusion Middleware Controlを使用してアプリケーション・ロールを管理する方法について説明します。

  1. Fusion Middleware Controlにログインし、「ドメイン」→「セキュリティ」→「アプリケーション・ロール」(アプリケーションがOracle WebLogic Serverにデプロイされている場合)、または「セル」→「セキュリティ」→「アプリケーション・ロール」(WebSphere Application Serverにデプロイされている場合)と移動して、「アプリケーション・ロール」ページを表示します(次の図にページの一部を示します)。

    emapproles.gifについては周囲のテキストで説明しています。

    ポリシー・ストア・プロバイダ」領域は読取り専用です。それを開くと、ドメインまたはセルで現在使用しているポリシー・ストア・プロバイダが表示されます。

  2. アプリケーションのロールを表示するには、「検索」領域を開き、検索対象のアプリケーション・ストライプを選択し、ロール名に一致させるデータを入力して、青いボタンをクリックします。検索の結果がページの下部の表に表示されます。

  3. アプリケーション・ロールを作成するには、「作成」をクリックして、「アプリケーション・ロールの作成」ページを表示します。すべての領域に一度にデータを入力する必要はないことに注意してください。たとえば、ロール名と表示名を入力してロールを作成し、データを保存しておき、そのロールに属するメンバーを後から指定できます。同様に、ロール・マッピングに対するデータを後で入力することもできます。

    領域「一般」で、作成するロールの次の属性を指定します。

    1. ロール名」テキスト・ボックスにロールの名前を入力します。

    2. 必要に応じて、ロールに表示する名前を「表示名」テキスト・ボックスに入力します。

    3. オプションで、「説明」テキスト・ボックスに、ロールの説明を入力します。

    メンバー」領域で、作成するロールのマップ先とするユーザーまたはグループを指定します。マップ先とする他のアプリケーション・ロールがある場合は、それを指定します。

    作成するアプリケーション・ロールにアプリケーション・ロールを追加する手順は、次のとおりです。

    1. 「追加」をクリックして、「プリンシパルの追加」ダイアログを表示します。

    2. このダイアログで、「タイプ」(アプリケーション・ロール、グループまたはユーザー)を選択し、プリンシパル名に一致させる文字列を入力して、青いボタンをクリックします。検索結果が「検索済プリンシパル」表に表示されます。その表から1つ以上のプリンシパルを選択します。

    3. 完了したら、「OK」をクリックして、「アプリケーション・ロールの作成」ページに戻ります。選択したアプリケーション・ロールが「メンバー」表に表示されます。

  4. 「メンバー」表にある項目はいつでも削除できます。削除するには、項目を選択して「削除」ボタンをクリックします。同様に、この表の項目を選択して「編集」ボタンをクリックすると、その項目の内容を変更できます。

  5. OK」をクリックし、ロールの作成(または更新)を完了し、「アプリケーション・ロール」ページに戻ります。作成したロールがそのページの下部の表に表示されます。

  6. 既存のアプリケーション・ロールに基づいてアプリケーション・ロールを作成する手順は、次のとおりです。

    1. 表から既存のロールを選択します。

    2. 類似作成」をクリックし、「アプリケーション・ロールの類似作成」ページを表示します。このページでは、選択したロールから抽出されたデータが一部のデータに自動的に入力されます。

    3. ロールおよびユーザーのリストを必要に応じて変更し、「OK」をクリックします。

ロール階層でパーミッションがどのように継承されるかを理解するには、第2.2.1項「パーミッションの継承とロールの階層」を参照してください。

9.2.3 システム・ポリシーの管理

この項では、Fusion Middleware Controlを使用して、Oracle WebLogic ServerドメインまたはWebSphere Application Serverセルのシステム・ポリシーを管理する方法について説明します。

次の手順では、プリンシパルのポリシーとコードベースのポリシーという2種類のシステム・ポリシーを作成できます。プリンシパルのポリシーでは、ユーザーまたはグループのリストにパーミッションを付与します。コードベースのポリシーでは、コード(通常はURLまたはJARファイル)にパーミッションを付与します。たとえば、資格証明ストア・フレームワークを使用するアプリケーションには、適切なコードベースのポリシーが必要です。コードベースURLでは、ワイルドカードやパターンはサポートされていません。

  1. Fusion Middleware Controlにログインし、状況に応じて「ドメイン」→「セキュリティ」→「システム・ポリシー」、またはセル→「セキュリティ」→「システム・ポリシー」とナビゲートして、「システム・ポリシー」ページを表示します(次の図にページの一部を示します)。

    emsyspols.gifについては周囲のテキストで説明しています。

    ポリシー・ストア・プロバイダ」領域は読取り専用です。それを開くと、ドメインまたはセルで現在使用しているポリシー・ストア・プロバイダが表示されます。

  2. 指定したタイプ、名前およびパーミッションと一致するシステム・ポリシーを表示するには、「検索」領域を開き、一致対象のデータを入力して、青いボタンをクリックします。検索結果がページの下部の表に表示されます。現在のすべてのシステム・ポリシーを表示するには、タイプとして「すべて」を選択し、名前とパーミッションのボックスは空のままにします。

  3. 編集」ボタンをクリックすると、選択したポリシーの特性をいつでも編集できます。リストからポリシーを削除するには、「削除」ボタンをクリックします。

システム・ポリシーを作成する手順は、次のとおりです。

  1. 作成」をクリックして、「システム権限の作成」ページを表示します。

  2. 作成するポリシーのタイプとして、「プリンシパル」または「コードベース」を選択します。選択したタイプによってUIが多少異なります。次の手順は、「プリンシパル」を選択した場合に対するものです。

  3. パーミッションを追加するには、「権限」領域の「追加」ボタンをクリックして、「権限の追加」ダイアログ・ボックスを表示し、作成しているポリシーに追加するパーミッションを選択します。

    1. 検索」領域を使用して、タイプ、プリンシパル名またはパーミッション名が一致するパーミッションを問い合せます。検索結果が「検索」領域の表に表示されます。

    2. 追加するパーミッションを選択するには、表からパーミッションを選択します。パーミッションを選択すると、その詳細が読取り専用の「カスタマイズ」領域に表示されます。

    3. OK」をクリックして、「システム権限の作成」ページに戻ります。選択したパーミッションが、「権限」の表に追加されます。

  4. 「パーミッション」表からパーミッションを選択し、「編集」ボタンを使用すると、パーミッションの特性をいつでも変更できます。リストからパーミッションを削除するには、「削除」ボタンを使用します。

  5. 「OK」をクリックして、「システム・ポリシー」ページに戻ります。

  6. 「コードベースに関する権限」領域の表は読取り専用であり、コードベース・システム・ポリシーに関連付けられているリソース名、アクションおよびパーミッション・クラスを示します。

9.3 OPSSスクリプトによるアプリケーション・ポリシーの管理

OPSSスクリプトは、Oracle WebLogic ServerのコンテキストではWLSTスクリプトであり、WebSphere Application ServerのコンテキストではWASAdminスクリプトです。この項に記載されたスクリプトは、WebLogic Application ServerとWebSphere Application Serverの両プラットフォームに適用されます。

オンライン・スクリプトとは、実行中のサーバーとの接続が必要なスクリプトです。特に指定がないかぎり、この項に記載されたスクリプトはオンライン・スクリプトで、ベースがファイル、LDAP、DBのいずれであるかにかかわりなくポリシー・ストアで動作します。動作にサーバーの実行を必要としないオフラインのスクリプトもいくつか存在します。

読取り専用スクリプトは、モニター、オペレータ、コンフィギュレータまたはAdminというWebLogicグループに属するユーザーのみが実行できます。読取り-書込みスクリプトは、AdminまたはコンフィギュレータのWebLogicグループに属するユーザーのみが実行できます。WLSTスクリプトはすべて、Oracle WebLogic Serverをインストールすれば、追加設定なしで使用できます。

WLSTスクリプトは、インタラクティブ・モードでもスクリプト・モードでも実行できます。インタラクティブ・モードの場合は、コマンドライン・プロンプトにスクリプトを入力すると、応答が即座に表示されます。スクリプト・モードの場合は、スクリプトをテキスト・ファイル(ファイル名拡張子は.py)に記述して、シェル・スクリプトのディレクティブのように入力なしで実行できます。

WASAdminスクリプトは、インタラクティブ・モードでのみ実行できます。

重要事項

OPSSスクリプトを呼び出す前は、次のスクリプトのいずれか(使用するプラットフォームによって決まります)を実行して、必要なJARがクラス・パスに追加されていることを確認する必要があります。

WebLogicの場合:

>sh $ORACLE_HOME/common/bin/wlst.sh

オンライン・スクリプトを実行するには、次のようにWebLogicサーバーに接続しておく必要があります。

>java weblogic.WLST
>connect('servername', 'password', 'localhost:portnum')

WebSphereでOPSSスクリプトを実行する方法の詳細は、Oracle Fusion Middlewareサード・パーティ・アプリケーション・サーバー・ガイドを参照してください。

OPSSはサポートされているすべてのプラットフォームでアプリケーション・ポリシーの管理に使用できる次のスクリプトが用意されています(特に指定がないかぎりこのスクリプトはすべてオンラインです)。

前述のスクリプトで指定するクラス名はすべて、完全修飾パス名にする必要があります。引数appStripeは、アプリケーション・ストライプ(通常はアプリケーション名)を参照し、特定のアプリケーションに関するドメイン・ポリシーのサブセットを特定します。

認証ロール、匿名ロールおよびWLSTコマンドに関する重要な情報は、第9.5項「WLSTスクリプトを使用した匿名ロールおよび認証ロールへのポリシーの付与」を参照してください。

バージョン付きアプリケーションにおけるアプリケーション・ストライプの正しい使用法については、第9.6項「WLSTスクリプトのバージョン付きアプリケーションのアプリケーション・ストライプ」を参照してください。

9.3.1 listAppStripes

スクリプトlistAppStripesは、アプリケーション・ストライプをリストします。このスクリプトは、オフライン・モードでもオンライン・モードでも実行できます。オフライン・モードで実行する場合は構成ファイルが渡される必要があり、渡された構成ファイルのデフォルト・コンテキストの構成で参照されるポリシー・ストア内のアプリケーション・ストライプをリストします。オンライン・モードで実行する場合は、構成ファイルを渡すことはできず、接続先のドメインのポリシー・ストアのストライプをリストします。いずれのモードでも、正規表現が渡された場合はその正規表現と一致する名前のアプリケーション・ストライプがリストされ、これ以外の場合はすべてのアプリケーション・ストライプがリストされます。

このコマンドがDBベースへの再関連付けの後にオフライン・モードで使用される場合、「DBベース・ストアへの再関連付け後のオフライン・スクリプトの実行」の説明に従って、再関連付けで生成された構成ファイルを手動で編集する必要があります

スクリプト・モード構文

listAppStripes.py [-configFile configFileName]
                  [-regularExpression aRegExp]

インタラクティブ・モード構文

listAppStripes([configFile="configFileName"] [, regularExpression="aRegExp"])

引数の意味は、次のとおりです。

  • configFileは、OPSS構成ファイルへのパスを指定します。オプション。指定した場合はスクリプトがオフラインで実行されます。指定された構成ファイルのデフォルト・コンテキストにアイデンティティ・ストアに対するサービス・インスタンスの参照を含めることはできません。指定しない場合はスクリプトがオンラインで実行され、ポリシー・ストア内のアプリケーション・ストライプがリストされます。

  • regularExpressionは、正規表現を指定しこれに一致するストライプ名が返されます。オプション。指定しない場合はすべての名前が一致することになります。サブストリングの一致を返す場合は文字*(アスタリスク)を使用します。

使用例

次の(オンラインの)呼出しでは、ポリシー・ストア内のアプリケーション・ストライプのリストが返されます。

listAppStripes.py

次の(オフラインの)呼出しでは、指定された構成ファイルのデフォルト・コンテキストで参照されるポリシー・ストア内のアプリケーション・ストライプのリストが返されます。

listAppStripes.py -configFile /home/myFiles/jps-config.xml

次の(オンラインの)呼出しでは、接頭辞Appが含まれるアプリケーション・ストライプのリストが返されます。

listAppStripes.py -regularExpression App*

9.3.2 createAppRole

スクリプトcreateAppRoleでは、指定したアプリケーション・ストライプおよびロール名を持つアプリケーション・ロールがポリシー・ストア内に作成されます。

スクリプト・モード構文

createAppRole.py -appStripe appName 
              -appRoleName roleName

インタラクティブ・モード構文

createAppRole(appStripe="appName", appRoleName="roleName")

引数(すべて必須)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。

  • appRoleNameでは、ロール名を指定します。

使用例

次の呼出しでは、アプリケーション・ストライプmyAppおよびロール名myRoleを持つアプリケーション・ロールが作成されます。

createAppRole.py -appStripe myApp -appRoleName myRole

9.3.3 deleteAppRole

スクリプトdeleteAppRoleでは、渡されたストライプからアプリケーション・ロールが削除されます。具体的に言うと、このスクリプトでは次のものを削除することによってカスケード削除を実施します。

  • ロールが存在するすべての権限

  • 他のロールに属しているロール

  • 特定のロールに属しているすべてのロール

スクリプト・モード構文

deleteAppRole.py -appStripe appName -appRoleName roleName

インタラクティブ・モード構文

deleteAppRole(appStripe="appName", appRoleName="roleName")

引数(すべて必須)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。

  • appRoleNameでは、ロール名を指定します。

使用例

次の呼出しでは、アプリケーション・ストライプmyAppおよび名前myRoleを持つロールが削除されます。

deleteAppRole.py -appStripe myApp -appRoleName myRole

9.3.4 grantAppRole

スクリプトgrantAppRoleでは、指定したアプリケーション・ストライプおよび名前を持つロールにプリンシパル(クラスと名前)が追加されます。このスクリプトは、アプリケーション・ロール階層の構築や変更に使用できます。

スクリプト・モード構文

grantAppRole.py -appStripe appName
             -appRoleName roleName
             -principalClass className
             -principalName prName

インタラクティブ・モード構文

grantAppRole(appStripe="appName", appRoleName="roleName", principalClass="className", principalName="prName")

引数(すべて必須)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。

  • appRoleNameでは、ロール名を指定します。

  • principalClassでは、クラスの完全修飾名を指定します。このクラスは、実行時に使用できるようにクラスパスで指定しておく必要があります。通常、プリンシパルがユーザーの場合、このクラスはweblogic.security.principal.WLSUserImplであり、プリンシパルがグループの場合、このクラスはweblogic.security.principal.WLSGroupImplです。

  • principalNameでは、プリンシパル名を指定します。

使用例

次の呼出しでは、デフォルトのプリンシパル実装クラスWLSGroupImplで定義したプリンシパルmyPrincipalが、アプリケーション・ストライプmyAppのロールmyRoleに追加されます。

grantAppRole.py -appStripe myApp 
             -appRoleName myRole 
             -principalClass weblogic.security.principal.WLSGroupImpl
             -principalName myPrincipal

9.3.5 revokeAppRole

スクリプトrevokeAppRoleでは、指定したアプリケーション・ストライプおよび名前を持つロールからプリンシパル(クラスと名前)が削除されます。このスクリプトは、アプリケーション・ロール階層の構築や変更に使用できます。

スクリプト・モード構文

revokeAppRole.py -appStripe appName 
              -appRoleName roleName 
              -principalClass className 
              -principalName prName

インタラクティブ・モード構文

revokeAppRole(appStripe="appName", appRoleName="roleName", principalClass="className", principalName="prName")

引数(すべて必須)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。

  • appRoleNameでは、ロール名を指定します。

  • principalClassでは、完全修飾プリンシパル・クラス名を指定します。

  • principalNameでは、プリンシパル名を指定します。

使用例

次の呼出しでは、デフォルトのプリンシパル実装クラスWLSGroupImplで定義したプリンシパルmyPrincipalが、アプリケーション・ストライプmyAppのロールmyRoleから削除されます。

revokeAppRole.py -appStripe myApp 
              -appRoleName myRole 
              -principalClass weblogic.security.principal.WLSGroupImpl
              -principalName myPrincipal

9.3.6 listAppRoles

スクリプトlistAppRolesでは、指定したアプリケーション・ストライプを持つすべてのロールがリストされます。

スクリプト・モード構文

listAppRoles.py -appStripe appName

インタラクティブ・モード構文

listAppRoles(appStripe="appName")

引数(必須)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。

使用例

次の呼出しでは、アプリケーション・ストライプmyAppを持つすべてのロールが返されます。

listAppRoles.py -appStripe myApp

9.3.7 listAppRolesMembers

スクリプトlistAppRoleMembersでは、指定したアプリケーション・ストライプおよびロール名を持つロール内のすべてのメンバーがリストされます。

スクリプト・モード構文

listAppRoleMembers.py -appStripe appName 
                   -appRoleName roleName

インタラクティブ・モード構文

listAppRoleMembers(appStripe="appName", appRoleName="roleName")

引数(すべて必須)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。

  • appRoleNameでは、ロール名を指定します。

使用例

次の呼出しでは、アプリケーション・ストライプmyAppおよび名前myRoleを持つロール内のすべてのメンバーが返されます。

listAppRoleMembers.py -appStripe myApp
                   -appRoleName myRole

9.3.8 grantPermission

スクリプトgrantPermissionでは、アプリケーション・ポリシーまたはグローバル・ポリシー・セクションで、コードベース、URLまたはプリンシパルに付与するパーミッションが作成されます。

スクリプト・モード構文

grantPermission [-appStripe appName] 
                        [-codeBaseURL url] 
                [-principalClass prClassName] 
                [-principalName prName] 
                -permClass permissionClassName
                [-permTarget permName]
                [-permActions comma_separated_list_of_actions]

インタラクティブ・モード構文

grantPermission([appStripe="appName",] [codeBaseURL="url",] [principalClass="prClassName",] [principalName="prName",] permClass="permissionClassName", [permTarget="permName",]
[permActions="comma_separated_list_of_actions"])

引数(オプションの引数は、大カッコで囲んであります)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。この指定がない場合はスクリプトがシステム・ポリシーに対して機能します。

  • codeBaseURLでは、パーミッションが付与されたコードのURLを指定します。

  • principalClassでは、完全修飾クラス名を指定します(権限受領者)。

  • principalNameでは、権限受領者プリンシパルの名前を指定します。

  • permClassでは、パーミッション・クラスの完全修飾名を指定します

  • permTargetでは、パーミッション・ターゲットの名前を指定します(使用可能な場合)。この属性が含まれていないパーミッションもあります。

  • permActionでは、付与するアクションのリストを指定します。この属性が含まれていないパーミッションもあります。また、使用できるアクションはパーミッション・クラスによって異なります。

使用例

次の呼出しでは、指定したデータを持つアプリケーション・パーミッションが(アプリケーション・ストライプmyAppを持つアプリケーションに対して)作成されます。

grantPermission.py -appStripe myApp
                                -principalClass my.custom.Principal
                -principalName manager
                -permClass java.security.AllPermission

次の呼出しでは、指定したデータを設定したシステム・パーミッションが作成されます。

grantPermission.py -principalClass my.custom.Principal
                -principalName manager
                -permClass java.io.FilePermission
                -permTarget /tmp/fileName.ext
                -permActions read,write

9.3.9 revokePermission

スクリプトrevokePermissionでは、アプリケーションまたはグローバル・ポリシー・セクションで定義されたプリンシパルまたはコードベースからパーミッションが削除されます。

スクリプト・モード構文

revokePermission [-appStripe appName] 
                         [-codeBaseURL url] 
                 [-principalClass prClassName] 
                 [-principalName prName] 
                 -permClass permissionClassName
                 [-permTarget permName]
                 [-permActions comma_separated_list_of_actions]

インタラクティブ・モード構文

revokePermission([appStripe="appName",][codeBaseURL="url",]
[principalClass="prClassName",] [principalName="prName",] 
permClass="permissionClassName", [permTarget="permName",] [permActions="comma_separated_list_of_actions"])

引数(オプションの引数は、大カッコで囲んであります)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。この指定がない場合はスクリプトがシステム・ポリシーに対して機能します。

  • codeBaseURLでは、パーミッションが付与されたコードのURLを指定します。

  • principalClassでは、完全修飾クラス名を指定します(権限受領者)。

  • principalNameでは、権限受領者プリンシパルの名前を指定します。

  • permClassでは、パーミッション・クラスの完全修飾名を指定します

  • permTargetでは、パーミッション・ターゲットの名前を指定します(使用可能な場合)。この属性が含まれていないパーミッションがあることに注意してください。

  • permActionでは、削除するアクションのリストを指定します。この属性が含まれていないパーミッションがあり、使用できるアクションはパーミッション・クラスによって異なることに注意してください。

使用例

次の呼出しでは、指定したデータを持つアプリケーション・パーミッションが(アプリケーション・ストライプmyAppを持つアプリケーションに対して)削除されます。

revokePermission.py -appStripe myApp
                                 -principalClass my.custom.Principal
                 -principalName manager
                 -permClass java.security.AllPermission

次の呼出しでは、指定したデータを持つシステム・パーミッションが削除されます。

revokePermission.py -principalClass my.custom.Principal
                 -principalName manager
                 -permClass java.io.FilePermission
                 -permTarget /tmp/fileName.ext
                 -permActions read,write

9.3.10 listPermissions

スクリプトlistPermissionsでは、指定したプリンシパルに付与されたすべてのパーミッションがリストされます。

スクリプト・モード構文

listPermissions [-appStripe appName] 
                -principalClass className 
                -principalName prName

インタラクティブ・モード構文

listPermissions([appStripe="appName",] principalClass="className", principalName="prName") 

引数(オプションの引数は、大カッコで囲んであります)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。この指定がない場合はスクリプトがシステム・ポリシーに対して機能します。

  • principalClassでは、完全修飾クラス名を指定します(権限受領者)。

  • principalNameでは、権限受領者プリンシパルの名前を指定します。

使用例

次の呼出しでは、アプリケーションmyAppのポリシーによってプリンシパルに付与されたすべてのパーミッションがリストされます。

listPermissions.py -appStripe myApp
                -principalClass my.custom.Principal 
                -principalName manager

次の呼出しでは、システム・ポリシーによってプリンシパルに付与されたすべてのパーミッションがリストされます。

listPermissions.py -principalClass my.custom.Principal
                -principalName manager

9.3.11 deleteAppPolicies

スクリプトdeleteAppPoliciesでは、指定したアプリケーション・ストライプを持つすべてのポリシーが削除されます。

スクリプト・モード構文

deleteAppPolicies -appStripe appName 

インタラクティブ・モード構文

deleteAppPolicies(appStripe="appName") 

引数(必須)の意味は、次のとおりです。

  • appStripeは、アプリケーション・ストライプを指定します。この指定がない場合はスクリプトがシステム・ポリシーのみに対して機能します。

使用例

deleteAppPolicies -appStripe myApp

9.3.12 createResourceType

スクリプトcreateResourceTypeでは、特定のアプリケーション・ストライプにあるポリシー・ストアに、指定した名前、表示名、説明およびアクションが設定された新規<resource-type>エントリが挿入されます。オプションの引数は角カッコで囲まれています。それ以外のすべての引数は必須です。

スクリプト・モード構文

createResourceType -appStripe appStripeName 
                   -resourceTypeName resTypeName
                   -displayName displName
                   -description descripString
                           [-provider resTypeProvider]
                           [-matcher resTypeClass]
                           -actions resTypeActions
                           [-delimiter delimChar]

インタラクティブ・モード構文

createResourceType(appStripe="appStripeName", resourceTypeName="resTypeName", displayName="displName", description="descripString" 
[, provider="resTypeProvider", matcher="resTypeClass"], actions="resTypeActions"[, delimiter="delimChar"])

引数の意味は、次のとおりです。

  • appStripeでは、リソース・タイプの挿入先のアプリケーション・ストライプを指定します。

  • resourceTypeNameでは、挿入するリソース・タイプの名前を指定します。

  • displayNameでは、UIガジェットで使用するリソース・タイプの名前を指定します。

  • descriptionでは、リソース・タイプの簡単な説明を指定します。

  • providerでは、リソース・タイプのプロバイダを指定します。

  • matcherでは、リソース・タイプのクラスを指定します。指定しなかった場合は、デフォルトのoracle.security.jps.ResourcePermissionが使用されます。

  • actionsでは、リソース・タイプのインスタンスに許可されたアクションを指定します。

  • delimiterでは、アクションのリストを区切る際に使用する文字を指定します。指定しなかった場合は、デフォルトのカンマ','に設定されます。

使用例

次の呼出しでは、セミコロンで区切って指定したアクションBWPrintおよびアクションColorPrintを設定したリソース・タイプがストライプmyApplicationに作成されます。

createResourceType -appStripe myApplication
                   -resourceTypeName Printer
                   -displayName PRINTER
                   -description A resource type representing a Printer
                   -provider Printer
                   -matcher com.printer.Printer
                   -allowedActions BWPrint;ColorPrint
                   -delimiter ;

9.3.13 getResourceType

スクリプトgetResourceTypeでは、特定のアプリケーション・ストライプにあるポリシー・ストアから、指定した名前の<resource-type>エントリの関連パラメータが返されます。

スクリプト・モード構文

getResourceType -appStripe appStripeName 
                -resourceTypeName resTypeName

インタラクティブ・モード構文

getResourceType(appStripe="stripeName", resourceTypeName="resTypeName")

引数の意味は、次のとおりです。

  • appStripeでは、リソース・タイプのフェッチ元のアプリケーション・ストライプを指定します。

  • resourceTypeNameでは、フェッチするリソース・タイプの名前を指定します。

使用例

次の呼出しでは、ストライプmyApplicationからリソース・タイプmyResTypeがフェッチされます。

getResourceType -appStripe myApplication
                -resourceTypeName myResType

9.3.14 deleteResourceType

スクリプトdeleteResourceTypeでは、渡されたアプリケーション・ストライプから、指定した名前のリソース・タイプが削除されます。このスクリプトは、指定のリソース・タイプのリソース・インスタンスを使用するすべての権限および付与権限から、そのリソース・タイプのすべてのリソース・インスタンスを削除することによってカスケード削除を実施します。


重要:

作成を完了したリソース・タイプは変更できませんリソース・タイプをなんらかの方法で(リソース・タイプのアクションの追加、名前変更、削除など)変更する必要がある場合は、そのリソース・タイプを削除し、適切な値を使用してリソース・タイプを新規作成する必要があります。具体的には次の操作を実行します。

  • 新規リソース・タイプの作成

  • 必要な新規リソース・インスタンスの作成

  • 必要な権限の作成


スクリプト・モード構文

deleteResourceType -appStripe appStripeName 
                   -resourceTypeName resTypeName

インタラクティブ・モード構文

deleteResourceType(appStripe="stripeName", resourceTypeName="resTypeName")

引数の意味は、次のとおりです。

  • appStripeでは、リソース・タイプの削除元のアプリケーション・ストライプを指定します。

  • resourceTypeNameでは、削除するリソース・タイプの名前を指定します。

使用例

次の呼出しでは、ストライプmyApplicationからリソース・タイプmyResTypeが削除されます。

deleteResourceType -appStripe myApplication
                   -resourceTypeName myResType

9.3.15 createResource

スクリプトcreateResourceでは、指定したアプリケーション・ストライプに指定したタイプの新しいリソースが作成されます。渡されるリソース・タイプは、渡されたアプリケーション・ストライプに存在している必要があります。

スクリプト・モード構文

createResource -appStripe appStripeName 
               -name resName
               -type resTypeName
               [-displayName dispName]
               [-description descript]

インタラクティブ・モード構文

createResource(appStripe="appStripeName", name="resName", type="resTypeName" [,-displayName="dispName"] [,-description="descript"])

引数の意味は、次のとおりです。

  • appStripeは、リソースを作成するアプリケーション・ストライプを指定します。

  • nameは、作成するリソースの名前を指定します。

  • typeは、作成するリソースのタイプを指定します。スクリプトの呼出し時に渡されるリソース・タイプがアプリケーション・ストライプ内に存在している必要があります

  • diplayNameは、作成するリソースの表示名を指定します。オプション。

  • descriptionは、作成するリソースの説明を指定します。オプション。

使用例

次の呼出しでは、ストライプmyApplicationにリソースmyResourceが作成されます。

createResource -appStripe myApplication 
               -name myResource 
               -type myResType
               -displayName myNewResource

9.3.16 deleteResource

スクリプトdeleteResourceでは、特定のアプリケーション・ストライプの権限から特定のリソースとそのすべての参照が削除されます。このスクリプトはカスケード削除を実行します。権限が参照するリソースが1つのみの場合はその権限が削除され、それ以外の場合は、権限から渡されたタイプのリソース・アクションが削除されます。

スクリプト・モード構文

deleteResource -appStripe appStripeName 
               -name resName
               -type resTypeName

インタラクティブ・モード構文

deleteResource(appStripe="appStripeName", name="resName", type="resTypeName")

引数の意味は、次のとおりです。

  • appStripeは、リソースの削除が実行されるアプリケーション・ストライプを指定します。

  • nameは、削除対象のリソース名を指定します。

  • typeは、削除されるリソースのタイプを指定します。スクリプトの呼出し時に渡されるリソース・タイプがアプリケーション・ストライプ内に存在している必要があります

使用例

次の呼出しでは、ストライプmyApplicationのリソースmyResourceが削除されます。

deleteResource -appStripe myApplication 
               -name myResource 
               -type myResType

9.3.17 listResources

スクリプトlistResourcesは、指定したアプリケーション・ストライプ内のリソースをリストします。リソース・タイプを指定した場合は、指定したリソース・タイプのすべてのリソースがリストされ、この指定がない場合はすべてのタイプのすべてのリソースがリストされます。

スクリプト・モード構文

listResources -appStripe appStripeName 
             [-type resTypeName]

インタラクティブ・モード構文

listResources(appStripe="appStripeName" [,type="resTypeName"])

引数の意味は、次のとおりです。

  • appStripeは、リソースがリストされるアプリケーション・ストライプを指定します。

  • typeは、リストされるリソースのタイプを指定します。スクリプトの呼出し時に渡されるリソース・タイプがアプリケーション・ストライプ内に存在している必要があります

使用例

次の呼出しでは、ストライプmyApplicationのタイプmyResTypeのすべてのリソースがリストされます。

listResources -appStripe myApplication 
              -type myResType

次の呼出しでは、ストライプmyApplicationのすべてのリソースがリストされます。

listResources -appStripe myApplication 

9.3.18 listResourceActions

スクリプトlistResourceActionsは、特定のアプリケーション・ストライプ内の権限のリソースおよびアクションをリストします。

スクリプト・モード構文

listResourceActions -appStripe appStripeName 
                    -permSetName entitlementName

インタラクティブ・モード構文

listResourceActions(appStripe="appStripeName", permSetName="entitlementName")

引数の意味は、次のとおりです。

  • appStripeは、権限の場所であるアプリケーション・ストライプを指定します。

  • permSetNameは、リソースとアクションがリストされる権限の名前を指定します。

使用例

次の呼出しでは、ストライプmyApplicationの権限myEntitlementのリソースとアクションがリストされます。

listResourceActions -appStripe myApplication 
                    -permSetName myEntitlement

9.3.19 createEntitlement

スクリプトcreateEntitlementでは、リソース1つのみの新しい権限と指定したアプリケーション・ストライプのアクションのリストが作成されます。addResourceToEntitlementは、既存の権限へのリソースの追加に使用されます。既存の権限からリソースを削除するには、revokeResourceFromEntitlementを使用します。

スクリプト・モード構文

createEntitlement -appStripe appStripeName 
                  -name entitlementName
                  -resourceName resName
                  -actions actionList
                  [-displayName dispName]
                  [-description descript]

インタラクティブ・モード構文

createEntitlement(appStripe="appStripeName", name="entitlementName", resourceName="resName", actions="actionList" [,-displayName="dispName"] [,-description="descript"])

引数の意味は、次のとおりです。

  • appStripeは、権限を作成するアプリケーション・ストライプを指定します。

  • nameは、作成する権限の名前を指定します。

  • resourceNameは、作成される権限の特定のリソース・メンバーの名前を指定します。

  • actionsは、リソースresourceNameのアクションのカンマ区切りリストを指定します。

  • diplayNameは、作成するリソースの表示名を指定します。オプション。

  • descriptionは、作成する権限の説明を指定します。オプション。

使用例

次の呼出しでは、ストライプmyApplicationにリソースmyResourceのみの権限myEntitlementが作成されます。

createEntitlement -appStripe myApplication 
                  -name myEntitlement
                  -resourceName myResource
                  -actions read,write

9.3.20 getEntitlement

スクリプトgetEntitlementでは、特定のアプリケーション・ストライプの権限の名前、表示名、すべてのリソース(およびそのアクション)が返されます。

スクリプト・モード構文

getEntitlement -appStripe appStripeName 
               -name entName

インタラクティブ・モード構文

getEntitlement(appStripe="appStripeName", name="entName")

引数の意味は、次のとおりです。

  • appStripeは、権限が配置されるアプリケーション・ストライプを指定します。

  • nameは、アクセスする権限の名前を指定します。

使用例

次の呼出しでは、ストライプmyApplicationの権限myEntitlementの情報が返されます。

getEntitlement -appStripe myApplication 
               -name myEntitlement

9.3.21 deleteEntitlement

スクリプトdeleteEntitlementでは、指定したアプリケーション・ストライプの権限が1つ削除されます。このスクリプトは、アプリケーション・ストライプ内で指定した権限のすべての参照を削除することによってカスケード削除を実行します。

スクリプト・モード構文

deleteEntitlement -appStripe appStripeName 
                  -name entName

インタラクティブ・モード構文

deleteEntitlement(appStripe="appStripeName", name="entName")

引数の意味は、次のとおりです。

  • appStripeは、権限が削除されるアプリケーション・ストライプを指定します。

  • nameは、削除対象の権限の名前を指定します。

使用例

次の呼出しでは、ストライプmyApplicationの権限myEntitlementが削除されます。

deleteEntitlement -appStripe myApplication 
                  -name myEntitlement

9.3.22 addResourceToEntitlement

スクリプトaddResourceToEntitlementでは、指定したアクションのリソースが指定したアプリケーション・ストライプの特定の権限に追加されます。渡されるリソース・タイプは、渡されたアプリケーション・ストライプに存在している必要があります。

スクリプト・モード構文

addResourceToEntitlement -appStripe appStripeName 
                         -name entName
                         -resourceName resName
                         -resourceType resType
                         -actions actionList

インタラクティブ・モード構文

addResourceToEntitlement(appStripe="appStripeName", name="entName", resourceName="resName",actions="actionList")

引数の意味は、次のとおりです。

  • appStripeは、権限が配置されるアプリケーション・ストライプを指定します。

  • nameは、変更対象の権限の名前を指定します。

  • resourceNameは、追加するリソースを指定します。

  • resourceTypeは、追加するリソースのタイプを指定します。スクリプトの呼出し時に渡されるリソース・タイプがアプリケーション・ストライプ内に存在している必要があります

  • actionsは、追加されるリソースのアクションのカンマ区切りリストを指定します。

使用例

次の呼出しでは、ストライプmyApplicationの権限myEntitlementにリソースmyResourceが追加されます。

addResourceToEntitlement -appStripe myApplication 
                         -name myEntitlement 
                         -resourceName myResource
                         -resourceType myResType
                         -actions view,edit

9.3.23 revokeResourceFromEntitlement

スクリプトrevokeResourceFromEntitlementでは、指定したアプリケーション・ストライプの権限から特定のリソースが削除されます。

スクリプト・モード構文

revokeResourceFromEntitlement -appStripe appStripeName 
                              -name entName
                              -resourceName resName                                
                              -resourceType resTypeName
                              -actions actionList

インタラクティブ・モード構文

revokeResourceFromEntitlement(appStripe="appStripeName", name="entName", resourceName="resName" ,-resourceType="resTypeName", actions="actionList")

引数の意味は、次のとおりです。

  • appStripeは、権限が配置されるアプリケーション・ストライプを指定します。

  • nameは、変更対象の権限の名前を指定します。

  • resourceNameは、削除対象のリソースのタイプを指定します。

  • resourceTypeは、削除対象のリソースのタイプを指定します。

  • actionsは、削除対象のアクションのカンマ区切りリストを指定します。

使用例

次の呼出しでは、ストライプmyApplicationの権限myEntitlementからリソースmyResourceが削除されます。

revokeResourceFromEntitlement -appStripe myApplication 
                              -name myEntitlement 
                              -resourceName myResource
                              -resourceType myResType
                              -actions view,edit

9.3.24 listEntitlements

スクリプトlistEntitlementsでは、特定のアプリケーション・ストライプ内のすべての権限がリストされます。リソース名とリソース・タイプが指定されている場合は、指定したタイプで指定したリソース名と一致するリソースを持つ権限がリストされます。このような指定がない場合はアプリケーション・ストライプ内のすべての権限がリストされます。

スクリプト・モード構文

listEntitlements -appStripe appStripeName 
                 [-resourceTypeName resTypeName]
                 [-resourceName resName]

インタラクティブ・モード構文

listEntitlements(appStripe="appStripeName" [,resourceTypeName="resTypeName", resourceName="resName"])

引数の意味は、次のとおりです。

  • appStripeでは、リストされる権限が含まれるアプリケーション・ストライプを指定します。

  • resourceTypeNameは、リスト対象のリソースのタイプ名を指定します。オプション。

  • resourceNameは、一致が求められるリソースの名前を指定します。オプション。

使用例

次の呼出しでは、ストライプmyApplicationのすべての権限がリストされます。

listEntitlements -appStripe myApplication 

次の呼び出しでは、ストライプmyApplicationから、リソース・タイプがmyResTypeでリソース名がmyResNameと一致するすべての権限がリストされます。

listEntitlements -appStripe myApplication 
                 -resourceTypeName myResType
                 -resourceName myResName

9.3.25 grantEntitlement

スクリプトgrantEntitlementでは、指定したアプリケーション・ストライプに指定したプリンシパルの権限が作成されます。

スクリプト・モード構文

grantEntitlement -appStripe appStripeName 
                 -principalClass principalClass
                 -principalName principalName
                 -permSetName entName

インタラクティブ・モード構文

grantEntitlement(appStripe="appStripeName", principalClass="principalClass", principalName="principalName" ,-permSetName="entName")

引数の意味は、次のとおりです。

  • appStripeは、権限を作成するアプリケーション・ストライプを指定します。

  • principalClassでは、プリンシパルに関連付けられるクラスを指定します。

  • nameは、権限が付与されるプリンシパルの名前を指定します。

  • permSetNameは、作成する権限の名前を指定します。

使用例

次の呼出しでは、ストライプmyApplicationで権限myEntitlementが作成されます。

grantEntitlement -appStripe myApplication 
                 -principalClass oracle.security.jps.service.policystore.ApplicationRole
                 -principalName myPrincipalName
                 -permSetName myEntitlement

9.3.26 revokeEntitlement

スクリプトrevokeEntitlementでは、指定したアプリケーション・ストライプで権限が削除され、プリンシパルの権限が取り消されます。

スクリプト・モード構文

revokeEntitlement -appStripe appStripeName 
                  -principalClass principalClass
                  -principalName principalName
                  -permSetName entName

インタラクティブ・モード構文

revokeEntitlement(appStripe="appStripeName", principalClass="principalClass", principalName="principalName" ,-permSetName="entName")

引数の意味は、次のとおりです。

  • appStripeは、権限が削除されるアプリケーション・ストライプを指定します。

  • principalClassでは、プリンシパルに関連付けられるクラスを指定します。

  • principalNameは、権限が取り消されるプリンシパルの名前を指定します。

  • permSetNameは、削除される権限の名前を指定します。

使用例

次の呼出しでは、ストライプmyApplicationの権限myEntitlementが削除されます。

revokeEntitlement -appStripe myApplication 
                  -principalClass oracle.security.jps.service.policystore.ApplicationRole
                  -principalName myPrincipalName
                  -permSetName myEntitlement

9.3.27 listEntitlement

スクリプトlistEntitlementでは、指定したアプリケーション・ストライプの権限がリストされます。プリンシパル名とクラスが指定されている場合は、指定したプリンシパルと一致する権限がリストされ、指定がない場合はすべての権限がリストされます。

スクリプト・モード構文

listEntitlement -appStripe appStripeName 
                [-principalName principalName
                -principalClass principalClass]

インタラクティブ・モード構文

listEntitlement(appStripe="appStripeName" [, principalName="principalName", principalClass="principalClass"])

引数の意味は、次のとおりです。

  • appStripeは、権限が配置されるアプリケーション・ストライプを指定します。

  • principalNameは、一致が求められるプリンシパルの名前を指定します。オプション。

  • principalClassは、一致が求められるプリンシパルのクラスを指定します。オプション。

使用例

次の呼出しでは、ストライプmyApplicationのすべての権限がリストされます。

listEntitlement -appStripe myApplication 

9.3.28 listResourceTypes

スクリプトlistResourceTypesでは、指定したアプリケーション・ストライプのすべてのリソース・タイプがリストされます。

スクリプト・モード構文

listResourceTypes -appStripe appStripeName 

インタラクティブ・モード構文

listResourceTypes(appStripe="appStripeName")

引数の意味は、次のとおりです。

  • appStripeは、リソース・タイプが配置されているアプリケーション・ストライプを指定します。

使用例

次の呼出しでは、ストライプmyApplicationのすべてのリソース・タイプがリストされます。

listResourceTypes -appStripe myApplication 

9.3.29 reassociateSecurityStore

スクリプトreassociateSecurityStoreでは、OPSSセキュリティ・ストアがソースからターゲットのLDAPベース・ストアまたはDBベース・ストアに移行され、デフォルトのポリシー・サービスおよび資格証明サービスがターゲット・リポジトリにリセットされます。また、OPSSセキュリティ・ストアを別のドメインのものと共有する指定もできます(後述のオプション引数joinを参照)。OPSSバイナリとターゲットのポリシー・ストアには、互換性のあるバージョンを使用する必要があります。詳細は、第L.21項「バイナリとポリシー・ストアのバージョンの非互換性」を参照してください。

ソースは、ファイルベース、LDAPベース、またはDBベースのストアのいずれでもかまいません。サポート対象のLDAPターゲットのタイプは、Oracle Internet Directoryのみ、DBターゲットの場合はDB_ORACLEのみです。このスクリプトで使用および変更されるのはドメイン構成ファイルjps-config.xmlで、インタラクティブ・モードでのみサポートされます。

再関連付けに関連する推奨事項は、「重要ポイント」を参照してください。DBベース・ストアへの再関連付けの後、オフライン・モードでいずれかのOPSSスクリプトを使用する前に、手動での編集が必要になります。詳細は、「DBベース・ストアへの再関連付け後のオフライン・スクリプトの実行」を参照してください。

インタラクティブ・モード構文

スクリプト構文は、ターゲット・ストアのタイプに応じて若干異なります。

ターゲットがLDAPベース・ストアの場合は次の構文を使用します。

reassociateSecurityStore(domain="domainName", servertype="OID",  ldapurl="hostAndPort", jpsroot="cnSpecification", admin="cnSpecification", password="passWord" [,join="trueOrfalse"][,keyFilePath="dirLoc", keyFilePassword="password") 

ターゲットがDBベース・ストアの場合は次の構文を使用します。

reeassociateSecurityStore(domain="domainName", servertype="DB_ORACLE", datasourcename="datasourceName", jpsroot="jpsRoot"[,admin="adminAccnt"] [,password="passWord"][join="trueOrfalse"][)

引数(すべて必須)の意味は、次のとおりです。

  • domain: WebLogicでは、再関連付けが行われるドメイン名を指定し、WebSphereではWebSphereセル名を指定します。

  • adminでは、LDAPターゲットの場合、ターゲット・サーバーに対する管理者のユーザー名を指定します。形式はcn=usrNameです。
    DBターゲットの場合は、DBに、(ユーザー/パスワードで保護される)保護データ・ソースがある場合にのみ必要です。この場合、データ・ソースが作成されたときにデータ・ソースを保護するために設定されたユーザー名を指定します。そのユーザーとパスワードは、ブートストラップ資格証明ストアに存在する必要があります。

  • passwordでは、引数adminに関連付けられているパスワードを指定します。LDAPターゲットの場合にのみ必要です。

    DBターゲットの場合は、DBに保護データ・ソースがある場合にのみ必要で、当該の場合は引数adminで指定されたユーザーに関連付けられたパスワードを指定します。

  • ldapurlでは、LDAPサーバーのURIを指定します。デフォルトのポートを使用する場合の形式は、ldap//:host:portです。匿名SSLまたは一方向SSL伝送を使用する場合の形式は、ldaps://host:portです。目的のSSL接続モードを扱うことができるようにセキュア・ポートを構成する必要があります。また、このセキュア・ポートは、デフォルトの(セキュアではない)ポートとは別のポートとする必要があります。

  • servertypeでは、ターゲットLDAPサーバーまたはDBサーバーの種類を指定します。有効なタイプはOIDおよびDB_ORACLEのみです。

  • jpsrootでは、ターゲットLDAPリポジトリのルート・ノードを指定します。すべてのデータがその下に移行されます。形式は、cn=nodeNameです。

  • joinでは、ドメインがOPSSセキュリティ・ストアを別のドメインと共有するかどうかを指定します。オプション。trueに設定すると既存のストアを別のドメインと共有します。falseに設定すると共有しません。指定しなかった場合は、デフォルトでfalseに設定されます。この引数を使用することにより、複数のWebLogicドメインから同一の論理OPSSセキュリティ・ストアを指定できるようになります。


    重要:

    OPSSセキュリティ・ストアとjoin=trueの再関連付けを行う場合は、第1ドメインのブートストラップ・ウォレットを第2ドメインに手動でコピーする必要があります。この要件の理由は、キーストア・データの暗号化に使用されるローカル・キーが第1ドメインで生成され、データを復号化するには第2ドメインのブートストラップ・ウォレットにも同じキーが必要であるためです。


  • datasourcenameでは、JDBCデータ・ソースのJNDI名が指定されます。これはデータ・ソース作成時に入力されたJNDI名データ・ソースの値と同じでなければなりません。第8.3.1.3項「データソース・インスタンスの作成」を参照してください。

  • keyFilePathでは、ewallet.p12ファイルが作成されるディレクトリを指定します。このファイルの内容は暗号化され、keyFilePasswordに渡される値により保護されます。オプション。引数keyFilePasswordとともに使用します。

  • keyFilePasswordでは、ewallet.p12ファイルを保護するためのパスワードを指定します。オプション。引数keyFilePathとともに使用します。

使用例

reassociateSecurityStore(domain="myDomain", admin="cn=adminName", password="myPass", ldapurl="ldaps://myhost.example.com:3060", servertype="OID", jpsroot="cn=testNode")

myDomainとは別のドメイン(otherDomainなど)で、myDomainにあるポリシー・ストアを共有する必要があるとします。その場合は、このスクリプトを次のように呼び出します。

reassociateSecurityStore(domain="otherDomain", admin="cn=adminName", password="myPass", ldapurl="ldaps://myhost.example.com:3060", servertype="OID", jpsroot="cn=testNode", join="true")

9.3.30 DBベース・ストアへの再関連付け後のオフライン・スクリプトの実行

DBベース・ストアへの再関連付けによって生成されたjps構成ファイルをそのままオフラインOPSSスクリプトに渡すことはできません。DBベース・ストアへの再関連付け後にOPSSスクリプトをオフライン・モードで実行する前に、次に示すように、構成ファイルを手動で編集する必要があります。

次の例は、DBベースのOPSSセキュリティ・ストアへの再関連付け前後のjps構成ファイルの一部、および再関連付けで生成された構成ファイルに必要な変更を示しています。

再関連付け前

次の部分は、DBベース・ストアへの再関連付け前のファイルベース・ポリシー・ストアの構成を示しています。

<serviceInstance name="policystore.xml" provider="policystore.xml.provider" location="./system-jazn-data.xml">
  <description>File Based Policy Store Service Instance</description>
</serviceInstance>
 

再関連付け後

次の部分は、前述のストアのDBベース・ストアへの再関連付け後に生成されたファイル内のプロパティ・セットprops.db.1を示しています。

<propertySet name="props.db.1">
  <property value="cn=soa_domain" name="oracle.security.jps.farm.name"/>
  <property value="cn=jpsroot" name="oracle.security.jps.ldap.root.name"/>
  <property value="jdbc/opss" name="datasource.jndi.name"/>
</propertySet>
 
<serviceInstance provider="policystore.provider" name="policystore.db">
  <property value="DB_ORACLE" name="policystore.type"/>
  <propertySetRef ref="props.db.1"/>
</serviceInstance>
 

必要な編集

前述のプロパティ・セットを次のプロパティ・セットに置換する必要があります。

<propertySet name="props.db.1">
    <property value="cn=myDomain" name="oracle.security.jps.farm.name"/>
    <property value="DB_ORACLE" name="server.type"/>
    <property value="cn=myRoot" name="oracle.security.jps.ldap.root.name"/>
    <property name="jdbc.url" value="jdbc:oracle:thin:@myhost.com:1521/srv_name"/>
    <property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="bootstrap.security.principal.key" value="myKeyName" />
    <property name="bootstrap.security.principal.map" value="myMapName" />
</propertySet> 

プロパティjdbc.urlの値は、JDBCデータソースの作成時に入力されたデータソースの名前と一致する必要があります。ブートストラップ資格証明(マップとキー)の値は、ブートストラップの作成時にOPSSスクリプトaddBootStrapCredentialに渡された値と一致する必要があります。

この後、編集したファイルをオフライン・スクリプトに渡します。

9.4 キャッシングとキャッシュのリフレッシュ

OPSSは、キャッシュ・セキュリティ・アーティファクトによって認可プロセスを最適化します。

アプリケーション・ポリシー(またはその他のセキュリティ・アーティファクト)を変更した場合、アプリケーションおよびアーティファクトの変更に使用されたツールが実行されている場所によって変更が有効になる状況が異なります。

9.4.1

次の使用例は、セキュリティ・アーティファクトの変更に(別のドメインまたはホストの)Oracle Entitlements Serverを使用し、oracle.security.jps.policystore.refresh.intervalプロパティを10分に設定した場合の4つのシナリオにおける認可の動作を示しています。

この使用例では次のように想定しています。

  • ユーザーはエンタープライズ・ロールのメンバー

  • このエンタープライズ・ロールは、アプリケーション・ロールのメンバーに含まれている

  • このアプリケーション・ロールにはアプリケーション機能の一部を制御するパーミッションが付与されている

前述の想定に従って、次の4つのシナリオにおける認可の結果を調べます。

シナリオA

  1. ユーザーがアプリケーションにログインします。

  2. ユーザーがアプリケーション・ロールによって保護された機能にアクセスします。

  3. 別のホスト(またはドメイン)から、Oracle Entitlements Serverを使用してアプリケーション・ロールからエンタープライズ・ロールを削除します。

  4. ユーザーはアプリケーションからログアウトして、ただちにログインしなおします。

  5. ユーザーは、この時点でもアプリケーション・ロールによって保護された機能にアクセスできます。

この結果の理由は、ポリシー・キャッシュで、まだ前述のステップ3で実施された変更を反映するリフレッシュが行われていないためです。

シナリオB

  1. ユーザーがアプリケーションにログインします。

  2. ユーザーがアプリケーション・ロールによって保護された機能にアクセスします。

  3. 別のホスト(またはドメイン)から、Oracle Entitlements Serverを使用してアプリケーション・ロールからエンタープライズ・ロールを削除します。

  4. ユーザーはアプリケーションからログアウトして、10分後にログインしなおします。

  5. ユーザーは、アプリケーション・ロールによって保護された機能にアクセスできなくなっています。

この結果の理由は、ポリシー・キャッシュで、前述のステップ3で実施された変更を反映するリフレッシュが行われているためです。

シナリオ C

  1. ユーザーがアプリケーションにログインします。

  2. ユーザーがアプリケーション・ロールによって保護された機能にアクセスします。

  3. 別のホスト(またはドメイン)から、Oracle Entitlements Serverを使用してアプリケーション・ロールからエンタープライズ・ロールを削除します。

  4. ユーザーがログアウトしない場合、10分以内はアプリケーション・ロールによって保護された機能へのアクセスが可能な状態に保持されます。

この結果の理由は、ポリシー・キャッシュで、まだ前述のステップ3で実施された変更を反映するリフレッシュが行われていないためです。

シナリオD

  1. ユーザーがアプリケーションにログインします。

  2. ユーザーがアプリケーション・ロールによって保護された機能にアクセスします。

  3. 別のホスト(またはドメイン)から、Oracle Entitlements Serverを使用してアプリケーション・ロールからエンタープライズ・ロールを削除します。

  4. ユーザーがログアウトせずに、10分より長く待ってからアプリケーション・ロールによって保護された機能へのアクセスを試行します。アクセスは拒否されます。

この結果の理由は、ポリシー・キャッシュで、前述のステップ3で実施された変更を反映するリフレッシュが行われているためです。

9.5 WLSTスクリプトを使用した匿名ロールおよび認証ロールへのポリシーの付与

WLSTスクリプトの中には、処理に関与するロールについてプリンシパル名とプリンシパル・クラスの指定を必要とするものがあります。

たとえば、次の呼出しでは、アプリケーション・ストライプがmyAppで名前がmyAppRoleであるロールにプリンシパルが追加されます。

grantAppRole.py -appStripe myApp -appRoleName myAppRole 
                -principalClass myPrincipalClass -principalName myPrincipal

このようなスクリプトでプリンシパルが認証ロールまたは匿名ロールを参照する場合、プリンシパル名とプリンシパル・クラスは固定されており、次のペアのいずれかである必要があります

前述のプリンシパル名とクラスの指定が必要なWLSTスクリプトは次のとおりです。

9.6 WLSTスクリプトのバージョン付きアプリケーションのアプリケーション・ストライプ

WLSTスクリプトの中には、アプリケーション・ストライプの指定を必要とするものがあります。アプリケーションがバージョン付きではない場合は、アプリケーション・ストライプがデフォルトのアプリケーション名として使用されます。アプリケーションがバージョン付きの場合は、アプリケーション名とアプリケーション・ストライプが同じではなくなります。

たとえば、myAppというバージョン付きアプリケーションのバージョン1の名前は、「Fusion Middleware Control」ページでmyApp(v1.0)と表示されますが、このアプリケーションのアプリケーション・ストライプはmyApp#v1.0です。

一般に、表示名がappName(vers)のアプリケーションでは、アプリケーション・ストライプがappName#versになります。次の呼出しのように、WLSTスクリプトでアプリケーション・ストライプとして渡されるのは、このうちの後者の文字列です。

>listAppRoles myApp#v1.0

ストライプを指定できるWLSTスクリプトは次のとおりです。

9.7 Oracle Entitlements Serverを使用したアプリケーション・ポリシーの管理

Oracle Entitlements Serverを使用すると、Oracle Internet Directory LDAPポリシー・ストアを使用するWebLogicドメインでアプリケーション・ポリシーおよびその他のセキュリティ・アーティファクトの管理および検索を実行できます。

詳細は、Oracle Fusion Middleware Oracle Entitlements Server管理者ガイドの次のトピックを参照してください。

9.8 ポリシー・ストア構成のガイドライン

OPSSプロパティの調整方法の詳細は、『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』のOracle Platform Security Servicesの調整に関する項を参照してください。