次の各項で、Fusion Middleware Control、OPSSスクリプトまたはOracle Authorization Policy Managerを使用して管理者がポリシーを管理する方法について説明します。
Oracle Authorization Policy Managerを使用したアプリケーション・ポリシーの管理
代表的な操作は次のとおりです。
既存のアプリケーション・ロールの権限の変更
プリンシパルのパーミッションの取消し
アプリケーション・ロールの作成と削除
すべてのアプリケーション・ロール、およびアプリケーション・ロールのすべてのメンバーのリスト
この章では、次の項目についても説明します。
ポリシー・ストアのデータにアクセスできるのは、ドメイン管理者など、適切なパーミッションを持つユーザーに限られます。
次の項では、Fusion Middleware Control、OPSSスクリプトまたはOracle Authorization Policy Managerを使用して管理者がポリシーを管理する方法について説明します。代表的な操作は次のとおりです。
予期しない認可の失敗を防ぎ、効果的にポリシーを管理するには、次の重要ポイントに注意してください。
重要ポイント1: ユーザーを削除する前に、ユーザーに付与されているすべてのパーミッション、アプリケーション・ロールおよびエンタープライズ・グループを取り消します。削除対象のユーザーを参照するセキュリティ・アーティファクトが残っていると、これらは中途半端に孤立した状態になり、同じ名前またはuidを持つ別のユーザーを後で作成したときに誤って継承される可能性があります。ユーザー名またはuidを変更する場合にも、同様の考え方が当てはまります。古いデータを参照するすべてのポリシー(権限付与、パーミッション、グループ)を更新して、変更後のデータでも予期したとおりに機能するようにする必要があります。 第L.11項「ユーザーによる予期しないパーミッションの取得」を参照してください。 |
重要ポイント2: ポリシーの適用時には、名前の大文字と小文字が区別されます。ユーザー名またはグループ名の大文字と小文字の違いによる認可エラーを防ぐ最善の方法は、アイデンティティ・ストアで指定されているとおりの文字構成による名前を使用することです。そのため、次のことをお薦めします。
第L.4項「パーミッションの付与または取消しの失敗 - 大文字と小文字の不一致」を参照してください。 |
重要ポイント3: リソース・タイプの名前、リソース、または権限には印刷可能文字のみを使用でき、先頭または末尾に空白を使用することはできません。ロール名をはじめとしたポリシーにおける文字使用に関する考慮事項は、第L.15項「ポリシーに使用する文字」を参照してください。 |
Fusion Middleware Controlでは、次の項の説明のように、ドメインで使用しているポリシー・ストア・プロバイダのタイプに関係なく、WebLogicドメインでシステム・ポリシーおよびアプリケーション・ポリシーを管理できます。
この項では、Fusion Middleware ControlでOracle WebLogic ServerまたはWebSphere Application Server上にデプロイされたアプリケーションのアプリケーション・ポリシーを管理する手順について説明します。
Fusion Middleware Controlにログインし、「ドメイン」→「セキュリティ」→「アプリケーション・ポリシー」(アプリケーションがOracle WebLogic Serverにデプロイされている場合)、またはセル→「セキュリティ」→「アプリケーション・ポリシー」(WebSphere Application Serverにデプロイされている場合)とナビゲートして、「アプリケーション・ポリシー」ページを表示します(次の図にページの一部を示します)。
「ポリシー・ストア・プロバイダ」領域は読取り専用です。この領域を開くと、アプリケーションのデプロイ先ドメインまたはセルで現在使用しているポリシー・ストア・プロバイダが表示されます。
注意: 最初、このページにポリシーとロールが表示されていない場合は、青いボタンをクリックするとすべての項目が表示されます。 |
アプリケーションで、指定したプリンシパルまたはパーミッションに一致するポリシーを表示するには、「検索」領域を開き、アプリケーションまたはアプリケーション・ストライプを選択し、基準にするデータ(プリンシパル名、パーミッション名またはその両方)を入力して、青いボタンをクリックします。検索の結果がページの下部の表に表示されます。
選択したアプリケーションまたはアプリケーション・ストライプのアプリケーション・ポリシーを作成するには、「作成」をクリックして、「アプリケーション権限の作成」ページを表示します。ページ上部の「権限の詳細」領域に、アプリケーションに関する読取り専用の情報が表示されます。
作成するポリシーにパーミッションを追加するには、「権限」領域の「追加」をクリックして、「権限の追加」ダイアログ・ボックスを表示します。
「検索」を使用して、クラス名またはリソース名が一致するパーミッションを特定し、パーミッションの「権限クラス」と「リソース名」を決定します。必要に応じ、「カスタマイズ」領域を使用してパーミッションを限定します。
完了したら、「OK」をクリックして、「アプリケーション権限の作成」ページに戻ります。作成したパーミッションが、「権限」領域の表に表示されます。
作成するポリシーにユーザーを追加するには、「権限受領者」領域の「ユーザーの追加」ボタンをクリックして、「ユーザーの追加」ダイアログ・ボックスを表示します。
「検索」を使用して、文字列が一致するユーザー名を特定します。問合せの結果が「使用可能なユーザー」ボックスに表示されます。
様々なボタンを使用して、パーミッションを付与するユーザーを「使用可能なユーザー」ボックスから「選択したユーザー」ボックスに移動します。
完了したら、「OK」をクリックして、「アプリケーション権限の作成」ページに戻ります。選択したユーザーが、「権限受領者」領域の表に表示されます。
作成するポリシーにアプリケーション・ロールを追加するには、「権限受領者」領域の「アプリケーション・ロールの追加」ボタンをクリックして、「アプリケーション・ロールの追加」ダイアログ・ボックスを表示します。
「検索」を使用して、タイプまたは名前が一致するロール名を特定します。問合せの結果が「使用可能なロール」ボックスに表示されます。
様々なボタンを使用して、パーミッションを付与するロールを「使用可能なロール」ボックスから「選択したロール」ボックスに移動します。
完了したら、「OK」をクリックして、「アプリケーション権限の作成」ページに戻ります。選択したロールが、「権限受領者」領域の表に表示されます。
作成するポリシーにグループを追加するには、「権限受領者」領域の「グループの追加」ボタンをクリックして、「グループの追加」ダイアログ・ボックスを表示します。
「検索」を使用して、文字列が一致するグループ名を特定します。問合せの結果が「使用可能なグループ」ボックスに表示されます。
様々なボタンを使用して、ポリシーの追加先とするグループを「使用可能なグループ」ボックスから「選択したロール」ボックスに移動します。
完了したら、「OK」をクリックして、「アプリケーション権限の作成」ページに戻ります。選択したグループが、「権限受領者」領域の表に表示されます。
この表にある項目はいつでも削除できます。削除するには、項目を選択して「削除」ボタンをクリックします。同様に、この表の項目を選択して「編集」ボタンをクリックすると、その項目の内容を変更できます。
完了したら、「OK」をクリックして、「アプリケーション・ポリシー」ページに戻ります。作成したポリシーのプリンシパルとパーミッションがページの下部の表に表示されます。
既存のアプリケーション・ポリシーに基づいてアプリケーション・ポリシーを作成する手順は、次のとおりです。
表から既存のポリシーを選択します。
「類似作成」をクリックし、「アプリケーション権限の類似作成」ページを表示します。このページでは、選択したポリシーから抽出されたデータがパーミッションの表に自動的に入力されます。
前述のステップ3の下位手順の説明に従い、必要に応じてこれらの値を変更し、ユーザー、アプリケーション・ロールまたはグループを入力して「OK」をクリックします。
この項では、Fusion Middleware ControlでOracle WebLogic ServerまたはWebSphere Application Server上にデプロイされたアプリケーションのアプリケーション・ロールを管理する手順について説明します。
Fusion Middleware Controlにログインし、「ドメイン」→「セキュリティ」→「アプリケーション・ロール」(アプリケーションがOracle WebLogic Serverにデプロイされている場合)、またはセル→「セキュリティ」→「アプリケーション・ロール」(WebSphere Application Serverにデプロイされている場合)とナビゲートして、「アプリケーション・ポリシー」ページを表示します(次の図にページの一部を示します)。
「ポリシー・ストア・プロバイダ」領域は読取り専用です。この領域を開くと、アプリケーションのデプロイ先ドメインで現在使用しているポリシー・ストア・プロバイダが表示されます。
注意: 最初、このページにアプリケーション・ロールが表示されていない場合は、青いボタンをクリックするとすべての項目が表示されます。 |
アプリケーションでロールを表示するには、「検索」領域を開き、検索対象のアプリケーションまたはアプリケーション・ストライプを選択し、基準にするデータ(ロール名)を入力して、青いボタンをクリックします。検索の結果がページの下部の表に表示されます。
アプリケーション・ロールを作成するには、「作成」をクリックして、「アプリケーション・ロールの作成」ページを表示します。すべての領域のデータを一度に入力する必要はありません。たとえば、ロール名と表示名を入力してロールを作成し、データを保存しておき、そのロールに属するメンバーを後で指定できます。同様に、後でロール・マッピングのためのデータを入力することもできます。
領域「一般」で、作成するロールの次の属性を指定します。
「ロール名」テキスト・ボックスにロールの名前を入力します。
必要に応じて、ロールに表示する名前を「表示名」テキスト・ボックスに入力します。
オプションで、「説明」テキスト・ボックスに、ロールの説明を入力します。
「メンバー」領域で、作成するロールのマップ先とするユーザーまたはグループを指定します。マップ先とする他のアプリケーション・ロールがある場合は、それを指定します。
作成するアプリケーション・ロールにアプリケーション・ロールを追加する手順は、次のとおりです。
「アプリケーション・ロールの追加」をクリックして、「アプリケーション・ロールの追加」ダイアログ・ボックスを表示します。
このダイアログ・ボックスで、ロールを特定する文字列を「ロール名」ボックスに入力し、その文字列と一致する名前を持つ使用可能なロールを特定して青いボタンをクリックします。問合せの結果が「使用可能なロール」ダイアログ・ボックスに表示されます。
必要に応じて「使用可能なロール」ボックスからロールを選択し、ボックスの間にあるボタンを使用して「選択したロール」ボックスに移動します。
完了したら、「OK」をクリックして、「アプリケーション・ロールの作成」ページに戻ります。選択したアプリケーション・ロールが表「ロール」に表示されます。
作成するアプリケーション・ロールにグループを追加する手順は、次のとおりです。
「グループの追加」をクリックして、「グループの追加」ダイアログ・ボックスを表示します。
このダイアログ・ボックスで、グループを特定する文字列を「グループ名」ボックスに入力し、その文字列と一致する名前を持つ使用可能なグループを特定して青いボタンをクリックします。問合せの結果が「使用可能なグループ」ダイアログ・ボックスに表示されます。
必要に応じて「使用可能なグループ」ボックスからグループを選択し、ボックスの間にあるボタンを使用して、「選択したグループ」ボックスにそのグループを移動します。
完了したら、「OK」をクリックして、「アプリケーション・ロールの作成」ページに戻ります。選択したグループが表「ロール」に表示されます。
作成するアプリケーション・ロールにユーザーを追加する手順は、次のとおりです。
「ユーザーの追加」をクリックして、「ユーザーの追加」ダイアログ・ボックスを表示します。
このダイアログ・ボックスで、ユーザーを特定する文字列を「ユーザー名」ボックスに入力し、その文字列と一致する名前を持つ使用可能なユーザーを特定して青いボタンをクリックします。問合せの結果が「使用可能なユーザー」ダイアログ・ボックスに表示されます。
必要に応じて「使用可能なユーザー」ボックスからユーザーを選択し、ボックスの間にあるボタンを使用して「選択したユーザー」ボックスに移動します。
完了したら、「OK」をクリックして、「アプリケーション・ロールの作成」ページに戻ります。選択したユーザーが、表「ユーザー」に表示されます。
表の項目は、選択して「削除」ボタンをクリックすることで、いつでも表から削除できます。同様に、項目を選択して「編集」ボタンをクリックすることで、表の項目を編集できます。
「OK」をクリックし、ロールの作成(または更新)を完了し、「アプリケーション・ロール」ページに戻ります。作成したロールがそのページの下部の表に表示されます。
既存のアプリケーション・ロールに基づいてアプリケーション・ロールを作成する手順は、次のとおりです。
表から既存のロールを選択します。
「類似作成」をクリックし、「アプリケーション・ロールの類似作成」ページを表示します。このページでは、選択したロールから抽出されたデータがロールの表とユーザーの表に自動的に入力されます。
ロールおよびユーザーのリストを必要に応じて変更し、「OK」をクリックします。
ロール階層でパーミッションがどのように継承されるかを理解するには、第2.2.1項「パーミッションの継承とロールの階層」を参照してください。
この項では、Fusion Middleware ControlでOracle WebLogic ServerドメインまたはWebSphere Application Serverセルのシステム・ポリシーを管理する手順を説明します。
次の手順では、プリンシパルのポリシーとコードベースのポリシーという2種類のシステム・ポリシーを作成できます。プリンシパルのポリシーでは、ユーザーまたはグループのリストにパーミッションを付与します。コードベースのポリシーでは、コード(通常はURLまたはJARファイル)にパーミッションを付与します。たとえば、資格証明ストア・フレームワークを使用するアプリケーションには、適切なコードベースのポリシーが必要です。
Fusion Middleware Controlにログインし、状況に応じて「ドメイン」→「セキュリティ」→「システム・ポリシー」、またはセル→「セキュリティ」→「システム・ポリシー」とナビゲートして、「システム・ポリシー」ページを表示します(次の図にページの一部を示します)。
「ポリシー・ストア・プロバイダ」領域は読取り専用です。この領域を開くと、ドメインで現在使用しているポリシー・ストア・プロバイダが表示されます。
指定したタイプ、名前またはパーミッションと一致するアプリケーション・ポリシーを表示するには、「検索」領域を開き、一致対象のデータを入力して、青いボタンをクリックします。問合せの結果がページの下部の表に表示されます。
現在のアプリケーション・ポリシーの表を再表示するには、タイプとして「すべて」を選択し、名前とパーミッションのボックスを空白のままにします。
「編集」ボタンをクリックすると、選択したポリシーの特性をいつでも編集できます。リストからポリシーを削除するには、「削除」ボタンをクリックします。
システム・ポリシーを作成する手順は、次のとおりです。
「作成」をクリックして、「システム権限の作成」ページを表示します。
「権限の詳細」領域で、作成するポリシーのタイプを選択します。有効なタイプは、「プリンシパル」または「コードベース」です。選択したタイプによって、表示されるUIが多少異なります。後述の手順では、「プリンシパル」を選択した場合を想定しています。
作成するポリシーにパーミッションを追加するには、「権限」領域の「追加」ボタンをクリックして、「権限の追加」ダイアログ・ボックスを表示します。このダイアログ・ボックスで、作成するポリシーに追加するパーミッションを選択します。
「検索」領域を使用して、タイプ、プリンシパル名またはパーミッション名が一致するパーミッションを問い合せます。問合せの結果が「検索」領域の表に表示されます。
追加するパーミッションを選択するには、この表からパーミッションを選択します。パーミッションを選択すると、その詳細が読取り専用の「カスタマイズ」領域に表示されます。
「OK」をクリックして、「システム権限の作成」ページに戻ります。選択したパーミッションが、「権限」の表に追加されます。
表からパーミッションを選択し、「編集」ボタンを使用すると、パーミッションの特性をいつでも変更できます。リストからパーミッションを削除するには、「削除」ボタンを使用します。
作成するポリシーにユーザーを追加するには、「権限受領者」領域の「ユーザーの追加」ボタンをクリックして、「ユーザーの追加」ダイアログ・ボックスを表示します。
「検索」を使用して、パターンが一致するユーザー名を表示します。問合せの結果が「使用可能なユーザー」ボックスに表示されます。
ボックスの間にあるボタンを使用して、「使用可能なユーザー」ボックスから「選択したユーザー」ボックスにユーザーを移動します。
「OK」をクリックして、「システム権限の作成」ページに戻ります。選択したユーザーが、「権限受領者」の表に追加されます。
作成するポリシーにグループを追加するには、「権限受領者」領域の「グループの追加」ボタンをクリックして、「グループの追加」ダイアログを表示します。
「検索」を使用して、パターンが一致するグループ名を表示します。問合せの結果が「使用可能なグループ」ボックスに表示されます。
ボックス間の各種のボタンを使用して、ロールを「使用可能なグループ」ボックスから「選択したグループ」ボックスに移動します。
「OK」をクリックして、「システム権限の作成」ページに戻ります。選択したグループが、「権限受領者」の表に追加されます。
「OK」をクリックして、「システム・ポリシー」ページに戻ります。ページの上部に表示されるメッセージは、操作の結果を示します。操作が正常に完了すると、ページの下部の表にポリシーが追加されます。
Oracle WebLogic Serverの場合、OPSSスクリプトは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スクリプトのバージョン付きアプリケーションのアプリケーション・ストライプ」を参照してください。
スクリプトlistAppStripes
は、アプリケーション・ストライプをリストします。このスクリプトは、オフライン・モードでもオンライン・モードでも実行できます。オフライン・モードで実行する場合は構成ファイルが渡される必要があり、渡された構成ファイルのデフォルト・コンテキストの構成で参照されるポリシー・ストア内のアプリケーション・ストライプをリストします。オンライン・モードで実行する場合は、構成ファイルを渡すことはできず、接続先のドメインのポリシー・ストアのストライプをリストします。いずれのモードでも、正規表現が渡された場合はその正規表現と一致する名前のアプリケーション・ストライプがリストされ、これ以外の場合はすべてのアプリケーション・ストライプがリストされます。
このコマンドがDBベースへの再関連付けの後にオフライン・モードで使用される場合、「DBベース・ストアへの再関連付け後のlistAppStripesの実行」の説明に従って再関連付けで生成された構成ファイルを手動で編集する必要があります。
スクリプト・モード構文
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*
DBベース・ストアへの再関連付けによって生成されたjps構成ファイルをそのままスクリプトlistAppStripes
に渡すことはできません(スクリプトをオフライン・モードで実行する場合)。このシナリオでスクリプトをオフライン・モードで実行するには、まず、渡されたファイルを次のように手動で編集する必要があります。
次の例は、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> <jpsContext name="default"> <serviceInstanceRef ref="credstore"/> <serviceInstanceRef ref="keystore"/> <serviceInstanceRef ref="policystore.xml"/> <serviceInstanceRef ref="audit"/> <serviceInstanceRef ref="idstore.ldap"/> <serviceInstanceRef ref="trust"/> </jpsContext>
再関連付け後
次の部分は、前述のストアのDBベース・ストアへの再関連付け後に生成された構成ファイルを示しています。
<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> <jpsContext name="default"> <serviceInstanceRef ref="credstore.db"/> <serviceInstanceRef ref="keystore.db"/> <serviceInstanceRef ref="policystore.db"/> <serviceInstanceRef ref="audit"/> <serviceInstanceRef ref="idstore.ldap"/> <serviceInstanceRef ref="trust"/> </jpsContext>
必要な編集
前述の再関連付けによって生成された構成ファイルは、オフライン・スクリプトlistAppStripes
に渡す前に手動で変更する必要があります。この編集では、(a)上記のプロパティprops.db.1
のリストを次のように変更する必要があります。
<propertySet name="props.db.1"> <property value="cn=reassociation" name="oracle.security.jps.ldap.root.name"/> <property value="cn=soa_domain" name="oracle.security.jps.farm.name"/> <property value="jdbc:oracle:thin:@dadvma0170:1521:rdbms" name="jdbc.url"/> <property value="rc1_opss" name="security.principal"/> <property value="oracle.jdbc.driver.OracleDriver" name="jdbc.driver"/> <property value="welcome1" name="security.credential"/> </propertySet>
これによりプロパティdatasource.jndi.name
が他の4つのプロパティに置き換えられます。また、(b)デフォルトのコンテキストのアイデンティティ・ストアへの参照(行 <serviceInstanceRef ref="idstore.ldap"/>
)が削除されています。
編集後のファイルはオフライン・スクリプトに渡すことが可能になり、エラーなく実行できます。
スクリプトcreateAppRole
では、指定したアプリケーション・ストライプおよびロール名を持つアプリケーション・ロールがポリシー・ストア内に作成されます。
スクリプト・モード構文
createAppRole.py -appStripe appName -appRoleName roleName
インタラクティブ・モード構文
createAppRole(appStripe="appName", appRoleName="roleName")
引数(すべて必須)の意味は、次のとおりです。
appStripe
では、アプリケーション・ストライプを指定します。
appRoleName
では、ロール名を指定します。
使用例
次の呼出しでは、アプリケーション・ストライプmyApp
およびロール名myRole
を持つアプリケーション・ロールが作成されます。
createAppRole.py -appStripe myApp -appRoleName myRole
スクリプトdeleteAppRole
では、渡されたストライプからアプリケーション・ロールが削除されます。具体的に言うと、このスクリプトでは次のものを削除することによってカスケード削除を実施します。
ロールが存在するすべての権限
他のロールに属しているロール
特定のロールに属しているすべてのロール
スクリプト・モード構文
deleteAppRole.py -appStripe appName -appRoleName roleName
インタラクティブ・モード構文
deleteAppRole(appStripe="appName", appRoleName="roleName")
引数(すべて必須)の意味は、次のとおりです。
appStripe
では、アプリケーション・ストライプを指定します。
appRoleName
では、ロール名を指定します。
使用例
次の呼出しでは、アプリケーション・ストライプmyApp
および名前myRole
を持つロールが削除されます。
deleteAppRole.py -appStripe myApp -appRoleName myRole
スクリプト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
スクリプト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
スクリプトlistAppRoles
では、指定したアプリケーション・ストライプを持つすべてのロールがリストされます。
スクリプト・モード構文
listAppRoles.py -appStripe appName
インタラクティブ・モード構文
listAppRoles(appStripe="appName")
引数(必須)の意味は、次のとおりです。
appStripe
では、アプリケーション・ストライプを指定します。
使用例
次の呼出しでは、アプリケーション・ストライプmyApp
を持つすべてのロールが返されます。
listAppRoles.py -appStripe myApp
スクリプトlistAppRoleMembers
では、指定したアプリケーション・ストライプおよびロール名を持つロール内のすべてのメンバーがリストされます。
スクリプト・モード構文
listAppRoleMembers.py -appStripe appName -appRoleName roleName
インタラクティブ・モード構文
listAppRoleMembers(appStripe="appName", appRoleName="roleName")
引数(すべて必須)の意味は、次のとおりです。
appStripe
では、アプリケーション・ストライプを指定します。
appRoleName
では、ロール名を指定します。
使用例
次の呼出しでは、アプリケーション・ストライプmyApp
および名前myRole
を持つロール内のすべてのメンバーが返されます。
listAppRoleMembers.py -appStripe myApp -appRoleName myRole
スクリプト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
スクリプト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
スクリプト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
スクリプトdeleteAppPolicies
では、指定したアプリケーション・ストライプを持つすべてのポリシーが削除されます。
スクリプト・モード構文
deleteAppPolicies -appStripe appName
インタラクティブ・モード構文
deleteAppPolicies(appStripe="appName")
引数(必須)の意味は、次のとおりです。
appStripe
は、アプリケーション・ストライプを指定します。この指定がない場合はスクリプトがシステム・ポリシーのみに対して機能します。
使用例
deleteAppPolicies -appStripe myApp
スクリプト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 ;
スクリプトgetResourceType
では、特定のアプリケーション・ストライプにあるポリシー・ストアから、指定した名前の<resource-type>エントリの関連パラメータが返されます。
スクリプト・モード構文
getResourceType -appStripe appStripeName -resourceTypeName resTypeName
インタラクティブ・モード構文
getResourceType(appStripe="stripeName", resourceTypeName="resTypeName")
引数の意味は、次のとおりです。
appStripe
では、リソース・タイプのフェッチ元のアプリケーション・ストライプを指定します。
resourceTypeName
では、フェッチするリソース・タイプの名前を指定します。
使用例
次の呼出しでは、ストライプmyApplicationからリソース・タイプmyResTypeがフェッチされます。
getResourceType -appStripe myApplication -resourceTypeName myResType
スクリプトdeleteResourceType
では、渡されたアプリケーション・ストライプから、指定した名前のリソース・タイプが削除されます。このスクリプトは、指定のリソース・タイプのリソース・インスタンスを使用するすべての権限および付与権限から、そのリソース・タイプのすべてのリソース・インスタンスを削除することによってカスケード削除を実施します。
スクリプト・モード構文
deleteResourceType -appStripe appStripeName -resourceTypeName resTypeName
インタラクティブ・モード構文
deleteResourceType(appStripe="stripeName", resourceTypeName="resTypeName")
引数の意味は、次のとおりです。
appStripe
では、リソース・タイプの削除元のアプリケーション・ストライプを指定します。
resourceTypeName
では、削除するリソース・タイプの名前を指定します。
使用例
次の呼出しでは、ストライプmyApplicationからリソース・タイプmyResTypeが削除されます。
deleteResourceType -appStripe myApplication -resourceTypeName myResType
スクリプト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
スクリプト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
スクリプトlistResources
は、指定したアプリケーション・ストライプ内のリソースをリストします。リソース・タイプを指定した場合は、指定したリソース・タイプのすべてのリソースがリストされ、この指定がない場合はすべてのタイプのすべてのリソースがリストされます。
スクリプト・モード構文
listResources -appStripe appStripeName [-type resTypeName]
インタラクティブ・モード構文
listResources(appStripe="appStripeName" [,type="resTypeName"])
引数の意味は、次のとおりです。
appStripe
は、リソースがリストされるアプリケーション・ストライプを指定します。
type
は、リストされるリソースのタイプを指定します。スクリプトの呼出し時に渡されるリソース・タイプがアプリケーション・ストライプ内に存在している必要があります。
使用例
次の呼出しでは、ストライプmyApplicationのタイプmyResTypeのすべてのリソースがリストされます。
listResources -appStripe myApplication -type myResType
次の呼出しでは、ストライプmyApplicationのすべてのリソースがリストされます。
listResources -appStripe myApplication
スクリプトlistResourceActions
は、特定のアプリケーション・ストライプ内の権限のリソースおよびアクションをリストします。
スクリプト・モード構文
listResourceActions -appStripe appStripeName -permSetName entitlementName
インタラクティブ・モード構文
listResourceActions(appStripe="appStripeName", permSetName="entitlementName")
引数の意味は、次のとおりです。
appStripe
は、権限の場所であるアプリケーション・ストライプを指定します。
permSetName
は、リソースとアクションがリストされる権限の名前を指定します。
使用例
次の呼出しでは、ストライプmyApplicationの権限myEntitlementのリソースとアクションがリストされます。
listResourceActions -appStripe myApplication -permSetName myEntitlement
スクリプト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
スクリプトgetEntitlement
では、特定のアプリケーション・ストライプの権限の名前、表示名、すべてのリソース(およびそのアクション)が返されます。
スクリプト・モード構文
getEntitlement -appStripe appStripeName -name entName
インタラクティブ・モード構文
getEntitlement(appStripe="appStripeName", name="entName")
引数の意味は、次のとおりです。
appStripe
は、権限が配置されるアプリケーション・ストライプを指定します。
name
は、アクセスする権限の名前を指定します。
使用例
次の呼出しでは、ストライプmyApplicationの権限myEntitlementの情報が返されます。
getEntitlement -appStripe myApplication -name myEntitlement
スクリプトdeleteEntitlement
では、指定したアプリケーション・ストライプの権限が1つ削除されます。このスクリプトは、アプリケーション・ストライプ内で指定した権限のすべての参照を削除することによってカスケード削除を実行します。
スクリプト・モード構文
deleteEntitlement -appStripe appStripeName -name entName
インタラクティブ・モード構文
deleteEntitlement(appStripe="appStripeName", name="entName")
引数の意味は、次のとおりです。
appStripe
は、権限が削除されるアプリケーション・ストライプを指定します。
name
は、削除対象の権限の名前を指定します。
使用例
次の呼出しでは、ストライプmyApplicationの権限myEntitlementが削除されます。
deleteEntitlement -appStripe myApplication -name myEntitlement
スクリプト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
スクリプト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
スクリプト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
スクリプト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
スクリプト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
スクリプトlistEntitlement
では、指定したアプリケーション・ストライプの権限がリストされます。プリンシパル名とクラスが指定されている場合は、指定したプリンシパルと一致する権限がリストされ、指定がない場合はすべての権限がリストされます。
スクリプト・モード構文
listEntitlement -appStripe appStripeName [-principalName principalName -principalClass principalClass]
インタラクティブ・モード構文
listEntitlement(appStripe="appStripeName" [, principalName="principalName", principalClass="principalClass"])
引数の意味は、次のとおりです。
appStripe
は、権限が配置されるアプリケーション・ストライプを指定します。
principalName
は、一致が求められるプリンシパルの名前を指定します。オプションです。
principalName
は、一致が求められるプリンシパルのクラスを指定します。オプションです。
使用例
次の呼出しでは、ストライプmyApplicationのすべての権限がリストされます。
listEntitlement -appStripe myApplication
スクリプトlistResourceTypes
では、指定したアプリケーション・ストライプのすべてのリソース・タイプがリストされます。
スクリプト・モード構文
listResourceTypes -appStripe appStripeName
インタラクティブ・モード構文
listResourceTypes(appStripe="appStripeName")
引数の意味は、次のとおりです。
appStripe
は、リソース・タイプが配置されているアプリケーション・ストライプを指定します。
使用例
次の呼出しでは、ストライプmyApplicationのすべてのリソース・タイプがリストされます。
listResourceTypes -appStripe myApplication
スクリプトreassociateSecurityStore
では、OPSSセキュリティ・ストアがソースからターゲットのLDAPベース・ストアまたはDBベース・ストアに移行され、デフォルトのポリシー・サービスおよび資格証明サービスがターゲット・リポジトリにリセットされます。また、OPSSセキュリティ・ストアを別のドメインのものと共有する指定もできます(後述のオプション引数join
を参照)。OPSSバイナリとターゲットのポリシー・ストアには、互換性のあるバージョンを使用する必要があります。詳細は、第L.20項「バイナリとポリシー・ストアのバージョンの非互換性<」を参照してください。
ソースは、ファイルベース、LDAPベース、またはDBベースのストアのいずれでもかまいません。サポート対象のLDAPターゲットのタイプは、Oracle Internet Directoryのみ、DBターゲットの場合はDB_ORACLEのみです。このスクリプトで使用および変更されるのはドメイン構成ファイルjps-config.xml
で、インタラクティブ・モードでのみサポートされます。
再関連付けに関連する推奨事項は、「重要ポイント」を参照してください。
インタラクティブ・モード構文
スクリプト構文は、ターゲット・ストアのタイプに応じて若干異なります。
ターゲットがLDAPベース・ストアの場合は次の構文を使用します。
reassociateSecurityStore(domain="domainName", servertype="OID", ldapurl="hostAndPort", jpsroot="cnSpecification", admin="cnSpecification", password="passWord" [,join="trueOrfalse"])
ターゲットが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に設定します。この引数を使用することにより、複数のWebLogicドメインから同一の論理OPSSセキュリティ・ストアを指定できるようになります。
datasourcename
では、JDBCデータ・ソースのJNDI名が指定されます。これはデータ・ソース作成時に入力されたJNDI名データ・ソースの値と同じでなければなりません。第8.3.1.3項「データソース・インスタンスの作成」を参照してください。
使用例
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")
OPSSは、キャッシュ・セキュリティ・アーティファクトによって認可プロセスを最適化します。
アプリケーション・ポリシー(またはその他のセキュリティ・アーティファクト)を変更した場合、アプリケーションおよびアーティファクトの変更に使用されたツールが実行されている場所によって変更が有効になる状況が異なります。
アプリケーションとツールの両方が同じホスト上および同一ドメインで実行されている場合、変更は即座に有効化されます。
同じではなく、アプリケーションとツールが別のホストまたは別のドメインで実行されている場合は、ポリシー・ストア・キャッシュのリフレッシュ後に変更が有効になります。キャッシュのリフレッシュの頻度は、プロパティoracle.security.jps.ldap.policystore.refresh.interval
の値によって決まります。デフォルト値は10分です。
次の使用例は、セキュリティ・アーティファクトの変更に(別のドメインまたはホストの)Oracle Authorization Policy Managerを使用し、oracle.security.jps.policystore.refresh.interval
プロパティ を10分に設定した場合の4つのシナリオにおける認可の動作を示しています。
この使用例では次のように想定しています。
ユーザーはエンタープライズ・ロールのメンバー
このエンタープライズ・ロールは、アプリケーション・ロールのメンバーに含まれている
このアプリケーション・ロールにはアプリケーション機能の一部を制御するパーミッションが付与されている
前述の想定に従って、次の4つのシナリオにおける認可の結果を調べます。
シナリオA
ユーザーがアプリケーションにログインします。
ユーザーがアプリケーション・ロールによって保護された機能にアクセスします。
別のホスト(またはドメイン)から、Oracle Authorization Policy Managerを使用してアプリケーション・ロールからエンタープライズ・ロールを削除します。
ユーザーはアプリケーションからログアウトして、ただちにログインしなおします。
ユーザーは、この時点でもアプリケーション・ロールによって保護された機能にアクセスできます。
この結果の理由は、ポリシー・キャッシュで、まだ前述のステップ3で実施された変更を反映するリフレッシュが行われていないためです。
シナリオB
ユーザーがアプリケーションにログインします。
ユーザーがアプリケーション・ロールによって保護された機能にアクセスします。
別のホスト(またはドメイン)から、Oracle Authorization Policy Managerを使用してアプリケーション・ロールからエンタープライズ・ロールを削除します。
ユーザーはアプリケーションからログアウトして、10分後にログインしなおします。
ユーザーは、アプリケーション・ロールによって保護された機能にアクセスできなくなっています。
この結果の理由は、ポリシー・キャッシュで、前述のステップ3で実施された変更を反映するリフレッシュが行われているためです。
シナリオ C
ユーザーがアプリケーションにログインします。
ユーザーがアプリケーション・ロールによって保護された機能にアクセスします。
別のホスト(またはドメイン)から、Oracle Authorization Policy Managerを使用してアプリケーション・ロールからエンタープライズ・ロールを削除します。
ユーザーがログアウトしない場合、10分以内はアプリケーション・ロールによって保護された機能へのアクセスが可能な状態に保持されます。
この結果の理由は、ポリシー・キャッシュで、まだ前述のステップ3で実施された変更を反映するリフレッシュが行われていないためです。
シナリオD
ユーザーがアプリケーションにログインします。
ユーザーがアプリケーション・ロールによって保護された機能にアクセスします。
別のホスト(またはドメイン)から、Oracle Authorization Policy Managerを使用してアプリケーション・ロールからエンタープライズ・ロールを削除します。
ユーザーがログアウトせずに、10分より長く待ってからアプリケーション・ロールによって保護された機能へのアクセスを試行します。アクセスは拒否されます。
この結果の理由は、ポリシー・キャッシュで、前述のステップ3で実施された変更を反映するリフレッシュが行われているためです。
WLSTスクリプトの中には、処理に関与するロールについてプリンシパル名とプリンシパル・クラスの指定を必要とするものがあります。
たとえば、次の呼出しでは、アプリケーション・ストライプがmyApp
で名前がmyAppRole
であるロールにプリンシパルが追加されます。
grantAppRole.py -appStripe myApp -appRoleName myAppRole -principalClass myPrincipalClass -principalName myPrincipal
このようなスクリプトでプリンシパルが認証ロールまたは匿名ロールを参照する場合、プリンシパル名とプリンシパル・クラスは固定されており、次のペアのいずれかである必要があります。
認証ロール
名前: authenticated-role
クラス: oracle.security.jps.internal.core.principals.JpsAuthenticatedRoleImpl
匿名ロール
名前: anonymous-role
クラス: oracle.security.jps.internal.core.principals.JpsAnonymousRoleImpl
前述のプリンシパル名とクラスの指定が必要なWLSTスクリプトは次のとおりです。
grantAppRole
revokeAppRole
grantPermission
revokePermission
listPermissions
WLSTスクリプトの中には、アプリケーション・ストライプの指定を必要とするものがあります。アプリケーションがバージョン付きではない場合は、アプリケーション・ストライプがデフォルトのアプリケーション名として使用されます。アプリケーションがバージョン付きの場合は、アプリケーション名とアプリケーション・ストライプが同じではなくなります。
たとえば、myApp
というバージョン付きアプリケーションのバージョン1の名前は、「Fusion Middleware Control」ページでmyApp(v1.0)
と表示されますが、このアプリケーションのアプリケーション・ストライプはmyApp#v1.0
です。
一般に、表示名がappName(vers)
のアプリケーションでは、アプリケーション・ストライプがappName#vers
になります。次の呼出しのように、WLSTスクリプトでアプリケーション・ストライプとして渡されるのは、このうちの後者の文字列です。
>listAppRoles myApp#v1.0
ストライプを指定できるWLSTスクリプトは次のとおりです。
createAppRole
deleteAppRole
grantAppRole
revokeAppRole
listAppRoles
listAppRoleMembers
grantPermission
revokePermission
listPermissions
deleteAppPolicies
Oracle Authorization Policy Managerを使用すると、Oracle Internet Directory LDAPポリシー・ストアを使用するWebLogicドメインでアプリケーション・ポリシーおよびその他のセキュリティ・アーティファクトの管理および検索を実行できます。
詳細は、『Oracle Fusion Middleware Authorization Policy Manager管理者ガイド』の次の章を参照してください。
セキュリティ・アーティファクトの問合せ
セキュリティ・アーティファクトの管理
OPSSプロパティの調整方法の詳細は、『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』のOracle Platform Security Servicesの調整に関する項を参照してください。