ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Entitlements Server管理者ガイド
11g リリース2 (11.1.2.1)
B71695-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

9 環境固有のリソースの保護

この章では、特定のセキュリティ・モジュールを使用してリソースを保護する方法について説明します。この章には次の項目があります。

9.1 セキュリティ・モジュール・タイプの選択

Oracle Entitlements Server管理者は、保護されるリソースのタイプに基づいてセキュリティ・モジュール・タイプを選択します。セキュリティ・モジュール・タイプは、OESクライアントのSMConfigツールを使用してセキュリティ・モジュールをインスタンス化する際に定義します(第8章「セキュリティ・モジュールの構成の管理」を参照)。


注意:

OESクライアントのインストール手順は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。


SMConfigツールを使用してセキュリティ・モジュールをインスタンス化する際、セキュリティ・モジュール・タイプ、構成IDおよび適切なコンテナへのパスなどのパラメータを定義します。表9-2に、インスタンス化可能なセキュリティ・モジュール・タイプをリストします。(SMType属性値はセキュリティ・モジュール列のカッコ内に定義されています。)

表9-1に記載されているセキュリティ・モジュール・タイプでは、環境に固有のリソースは保護されません。これらは、認可を要求するJavaコールを受信するポリシー決定ポイント(PDP)です。セキュリティ・モジュールは単純に、アプリケーションによりコールされる認可APIを提供します。

表9-1 一般的な保護セキュリティ・モジュール・タイプ

セキュリティ・モジュール 目的 プロキシ・モード コンテナ・サポート

Java (java)

認可を要求するJavaコールを受信するポリシー決定ポイント(PDP)

サポート

Java Standard Edition (JSE)アプリケーションおよび複雑な統合で使用されます。

WebSphere (was)

アプリケーションから認可リクエストを直接受信するJavaセキュリティ・モジュール

サポート

WebSphere Application Server

Webサービス(ws)

Webサービス・コールを受信するマルチプロトコル・セキュリティ・モジュール。XACMLゲートウェイまたはSOAPを使用してWebサービス・セキュリティ・モジュールと通信するように、プロキシ・モードの他のセキュリティ・モジュール(Java、WLS)を構成します。

未サポート

JSEスタンドアロン・プロセスとして、またはWebLogic Serverコンテナ上で実行されるWebサービスとして、サポートされます。プロキシ・モードの他のセキュリティ・モジュールにより使用可能です。Webサービス・リクエストを作成可能な場合またはアプリケーションが非標準プログラミング言語(Pythonなど)で作成されている場合に使用できます。

RMI (rmi)

Remote Method Invocation (RMI)コールを受信するように強化されたJavaセキュリティ・モジュールであるマルチプロトコル・セキュリティ・モジュール

未サポート

Webサービスの負荷が高い場合にJSEアプリケーションでのみ使用されます。

.NET (dotnet)

C#で記述されたアプリケーションがC#でPEP APIをコールすることによりWebサービス・セキュリティ・モジュールに認可リクエストを送信できるようにします。

プロキシ・モードでのみサポートされます。.NETセキュリティ・モジュールはWebサービス・セキュリティ・モジュールと通信するプロキシとして機能します。

.NETコンテナ

JBoss (jboss)

アプリケーションから認可リクエストを直接受信するJavaセキュリティ・モジュール

サポート

JBoss Application Server

Tomcat (tomcat)

アプリケーションから直接認可リクエストを受信するJavaセキュリティ・モジュール。Oracle Platform Security Servicesの認可/ログイン・モジュールまたはcheckPermissionをサポートしません。

サポート

Apache Tomcatアプリケーション・サーバー


表9-2に記載されているセキュリティ・モジュールは、アプリケーションから直接受信する認可コールを処理する機能以外に、それらがデプロイされている環境の固有のリソースを保護する機能はありません。

表9-2 環境固有のセキュリティ・モジュール・タイプ

セキュリティ・モジュール 目的 プロキシ・モード コンテナ・サポート

Sharepoint (moss)

コンテンツに対するSharepointリクエストをインターセプトして、Microsoft Sharepoint Serverリソースを保護します。9.2項「Microsoft Office SharePoint Serverのリソースの保護」を参照してください。

プロキシ・モードでのみサポートされます。Sharepointセキュリティ・モジュール自体はWebサービス・セキュリティ・モジュールと通信するプロキシ(C#で記述)として機能します。

.NETコンテナ

WebLogic Server (wls)

Oracle Entitlements Serverセキュリティ・プロバイダが有効化されていて(9.4.1項「WebLogic Serverとの統合」を参照)セキュリティ・モジュールがWebLogic Serverコールを処理可能な場合を除いて、Javaセキュリティ・モジュールと完全に同じ動作を示します。9.4項「WebLogic Serverリソースの保護」を参照してください。

サポート(Oracle Entitlements Serverセキュリティ・プロバイダが有効化されてWebLogic Serverリクエストをインターセプトする場合を除く)

WebLogic Server

Oracle Service Bus (osb)

Oracle Entitlements Serverセキュリティ・プロバイダが有効化されている場合に、Oracle Service Busからの認可リクエストをインターセプトするWebLogicセキュリティ・モジュール。9.3項「Oracle Service Busリソースの保護」を参照してください。

サポート



これらのセキュリティ・モジュールとその構成方法の詳細は、第8章「セキュリティ・モジュールの構成の管理」を参照してください。これらの動作の詳細は、1.3項「Oracle Entitlements Serverのアーキテクチャの概要」第7章「ポリシー決定ポイントのデプロイ」を参照してください。

9.2 Microsoft Office SharePoint Serverのリソースの保護

企業は、Oracle Entitlements Serverを使用して、MOSSポータル環境を管理できます。MOSSとの統合はMOSSセキュリティ・モジュール・プラグインにより実現されます。このプラグインはSharePoint Server内で認可コールをインターセプトし、統合されたWebサービス・セキュリティ・モジュール(PDP)に送信します。PDPは認可決定をMOSSセキュリティ・モジュール・プラグインに返し、決定が実行されます。詳細は、次の各項を参照してください。

9.2.1 SharePointリソースの保護

保護可能なSharePointコンポーネントには、Webサイト、Webページ、Webパーツ、リスト・アイテムおよびナビゲーション・バー・アイテムなどがあります。リソースは、コンポーネントに基づいて異なる方法で保護されます。SharePointリソースは、次のリストに従ってカテゴリ分けされます。

  • アイテムは最小のSharePointコンポーネント(ドキュメント、タスク、連絡先、ページまたは通知など)です。

  • リストは単一タイプのSharePointコンポーネントのコレクションです。ドキュメント・リスト、連絡先リスト、タスク・リストなどを作成できます。

  • フォルダはリスト内に存在し、複数のアイテムとサブフォルダのコンテナとして機能します。

  • サイトはリストのコレクションです。たとえば、SharePointのデフォルトのドキュメント・センター・サイトは、「お知らせ」、「ドキュメント」および「タスク」の3つのリストで構成されています。

  • SharePointサイト・ページ上のナビゲーション・バー・アイテムは、MOSSコンポーネントの操作に使用できます。


注意:

すべてのMOSSリソースのリソース・タイプは1つのみです。この項では、MossResourceTypeという名前を使用します。


次の各項では、詳細を説明します。

9.2.1.1 WebサイトとWebページの保護

MOSS Webサイトは、1つ以上のWebページで構成されます。組織は一般に、社内の1つの部門を示す1つのWebサイトをMOSSで編成します。MOSSに付属のメインWebサイトには、デフォルトのサブ・サイトが存在します。サブ・サイトは、上端または左右のナビゲーション・バー上に、または他のWebページ上でリンクとして、表示されます。これらのすべてのWebサイトに、固有のURLが存在します。

MOSSのWebサイトまたはWebページのURLにより、Oracle Entitlements Serverで作成されるリソース・インスタンスが定義されます。http://Sharepoint_Server_Name/TestSiteと定義されたURLの場合、対応するリソースは、アプリケーションMossAppの下にリソース・タイプMossResourceTypeのインスタンスとしてリソース/TestSiteを定義することによって作成されます。この場合、ポリシーはOracle Entitlements Serverオブジェクトを使用して作成されます。

カスタムHTTPモジュールは、Oracle Entitlements Serverによって実装され、MOSS Webサイトを保護します。ユーザーが保護されたコンポーネントへのアクセスを試みた場合、そのリクエストはカスタムHTTPモジュールによってインターセプトされ、ポリシーを評価するためにOracle Entitlements Serverに転送されます。決定がカスタムHTTPモジュールに返され、ユーザーがアクセスを拒否された場合、その場所を表示する権限がないことを示すメッセージを含むカスタム・エラー・ページが表示されます。


注意:

カスタムHTTPモジュールは、MOSSサイト構成ファイルweb.configHttpModules要素を定義することによって有効化されます。9.2.4項「SharePointセキュリティの構成」を参照してください。


9.2.1.2 Webパーツの保護

MOSS Webパーツは、Webページ内にコンテンツを公開するために使用されるという点がポートレットに似ています。1つのWebページに1つ以上のWebパーツが存在できます。Webパーツは、リソース・インスタンス名として固有のMOSS表示名を定義することによって、Oracle Entitlements Serverで表現されます。リソース・インスタンスは、親Webページのリソースの子として作成されます。

ユーザーが保護されたコンポーネントへのアクセスを試みた場合、そのリクエストはOracle Entitlements Serverに作成されたMOSS委任制御によってインターセプトされます。つまり、委任制御を使用すると、SharePointページに、そのページ自体を変更することなく、任意のカスタム.NETコードを配置できます。このカスタム・コードは、Oracle Entitlements Serverから決定を取得して、認可されていないWebパーツをページから削除するために使用されます。この場合、エラー・メッセージは表示されません。


注意:

委任OES認可制御は、Webパーツ・ページに明示的に追加されるか、またはWebサイトのマスター・ページで暗黙的に定義されます。9.2.4項「SharePointセキュリティの構成」を参照してください。


9.2.1.3 リストの保護

MOSSリストは、Webページ上のWebパーツ内のアイテムのコレクションです。MOSS Webサイトを作成する場合、使用するテンプレートに応じて一連のリストも作成されます。各リスト・アイテムはURLによって識別され、Oracle Entitlements Serverリソースとして表されます。これらのリストは、ドキュメント・リストまたは非ドキュメント・リストのどちらであるかに応じて、Oracle Entitlements Serverに組み込まれます。

  • ドキュメント・リストは、http://Sharepoint_Server_Name/TestSite/SharedDocuments/Forms/AllItems.aspxに移動することによって表示できます。/TestSite/SharedDocuments/Forms/AllItems.aspxという名前でトップレベル・リソースを作成します。次に、リストのアイテムごとに、トップレベル・リソースのサブリソースとして個別のリソース・オブジェクトを作成します。たとえば、リストのScott.sqlという名前のアイテムに/TestSite/SharedDocuments/Scott.sqlという名前でサブリソースを作成できます。

  • 非ドキュメント・リストは、http://Sharepoint_Server_Name/TestSite/Lists/Announcements/AllItems.aspxに移動することによって表示できます。/TestSite/Lists/Announcements/AllItems.aspxという名前でリソースを作成します。次に、同じレベルにリソース/TestSite/Lists/Announcements/EditForm.aspxとリソース/TestSite/Lists/Announcements/DispForm.aspxを作成します。ここでリストの任意のアイテムをクリックすると、URLとしてhttp://Sharepoint_Server_Name/web1/Lists/Announcements/DispForm.aspx?ID=2&Source=http%3A%2F%2Fsharepoint01%2FTestSite%2FLists%2FAnnouncements%2FAllItems%2Easpxが表示されます。このURLのURLパラメータとして定義されたIDをメモします。このIDは非ドキュメント・アイテムの名前として使用され、EditForm.aspxDispForm.aspxの両方のサブリソースとして作成されます。この手順は、非ドキュメント・リスト内のすべてのアイテムについて実行する必要があります。または、アイテムのリンクの上にマウスを移動して、ブラウザのステータス・バーに表示されるURLに含まれるIDをメモします。


    注意:

    リスト・アイテムの場合のみ、EditForm.aspxに対するポリシーを作成する必要はありません。同じDispForm.aspxに対するviewまたはANYを付与できます。viewの場合はReadOnlyアクセスが付与され、ANYの場合は完全なアクセス(編集、削除など)が付与されます。


9.2.1.4 Webページ内の機密コンテンツの保護

管理者は、SharePointサーバーを使用して、アクセス制御が必要な機密情報が含まれるカスタム・ページを公開できます。開発者は、Oracle Entitlements Serverタグ・ライブラリに対応するASPタグ内に機密情報を包含することができます。タグ・ライブラリはOracle Entitlements Serverと通信してアクセス決定を取得し、それに基づいて認可されたユーザーにのみコンテンツが表示されます。


注意:

ASPタグ・ライブラリは、MOSSページで名前空間、タグ接頭辞およびアセンブリを登録し、タグを使用して機密コンテンツを包含するMOSSページ開発者が使用するサーバー側Webコントロールです。このライブラリは、アクセス制御を提供するためにタグが使用されているカスタム・コンテンツ・ページにエンド・ユーザーがアクセスを試みたときに起動されます。


9.2.2 MOSSとWebサービスのセキュリティ・モジュールのインスタンス化

MOSSセキュリティ・モジュールは、Webサービス・セキュリティ・モジュールと連携して、MOSSリソースのきめ細やかな認可を提供します。セキュリティ・モジュールをインスタンス化する前に、前提となるMOSS環境が設定済であることを確認します。これには、MOSSのインストールおよび保護されるWebアプリケーションの作成が含まれます。


注意:

この手順では、Webアプリケーションの環境の詳細(ポート番号、URLなど)が必要です。


MOSSセキュリティ・モジュールとWebサービス・セキュリティ・モジュールは、同一サーバーへのデプロイと異なるサーバーへのデプロイが可能です。両方のセキュリティ・モジュールをインスタンス化するには、$ORACLE_CLIENT_HOME/oessm/SMConfigTool/binディレクトリにあるSMConfigツールを使用します。

  • MOSSセキュリティ・モジュールとWebサービス・セキュリティ・モジュールを同時にインスタンス化するには、config.sh with the parameter -smType mosswsを実行します。

  • これらのセキュリティ・モジュールを別々にインスタンス化するには、config.shを2回、1回目はパラメータ-smType mossで、2回目はパラメータ-smType wsで、実行します。

さらに、選択しているデプロイメントに応じてSMConfigツールを実行します。たとえば、MOSSと同じWindowsマシンにデプロイされているセキュリティ・モジュールをインスタンス化するには、次のコマンドを使用します。

config.sh –smType mossws –prpFileName file_name –mossprpFileName file_name 
   –smConfigId -WSListeningPort –pdServer –pdPort

ここで、prpFileNameはWebサービス・セキュリティ・モジュールの作成に使用されたsmconfig.prpであり、mossprpFileNameはMOSSサーバーの構成に使用されたプロパティ・ファイルです。


注意:

mossprpFileNameテンプレートは、$ORACLE_CLIENT_HOME/oessm/mosssm /adm/configtool/moss_config.propertiesにあります。moss_config.propertiesには、環境に従って定義する必要がある必須プロパティおよび未定義の場合はデフォルト値が使用されるオプション・プロパティが存在します。


異なるWindowsマシンにデプロイされているセキュリティ・モジュールをインスタンス化するには、先にWebサービス・セキュリティ・モジュールをインスタンス化します(特別な手順はありません)。その後で次のコマンドを使用して、MOSSセキュリティ・モジュールを構成します。

config.sh –smType moss –prpFileName file_name –mossprpFileName file_name

OESクライアントのインストール手順の詳細は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

9.2.3 MOSSセキュリティ・モジュールの統合と統合解除

テンプレートmossprpFileNamemoss.enableOESプロパティの値を使用して、Oracle Entitlements ServerをMOSSアプリケーションと統合するか、またはOracle Entitlements ServerとMOSSアプリケーションの統合を解除することができます。

  • moss.enableOES=trueの場合、config.shをパラメータ-smType mossで実行すると、Oracle Entitlements ServerがMOSSアプリケーションと統合されます。

  • moss.enableOES=falseの場合、config.shをパラメータ-smType mossで実行すると、MOSSアプリケーションがそのデフォルト認可プロセスを使用するように構成されます。

9.2.4 SharePointセキュリティの構成

次の手順は、SMConfigツールによって開始される自動構成以外にMOSSアプリケーションの認可を手動で構成する手順を示します。この手順は、9.2.2項「MOSSとWebサービスのセキュリティ・モジュールのインスタンス化」config.shスクリプトによって自動実行される手順と同じであり、SMConfigツールを使用しない手順が必要な場合に使用できます。

この手順では、セキュリティ・モジュールがインスタンス化済であることを前提としています。インスタンス化後は、生成される構成IDとサービス・レジストリURLをメモします。この手順で、configIDはMOSS、サービス・レジストリURLはhttp://hostname:port/ServiceRegistryです。

  1. Oracle Entitlements Server管理コンソールを使用して、次の手順を実行します。

    • Webサービス・セキュリティ・モジュール定義を作成します。

      第10章「システム構成の管理」を参照してください。

    • 保護されるMOSSアプリケーションを表すアプリケーション・ポリシー・オブジェクトを作成します。

      アプリケーションの名前は、moss_config.propertiesファイルで定義されているmoss.app.nameプロパティの値と一致している必要があります。

      第4章「ポリシーとポリシー・オブジェクトの管理」を参照してください。

    • アプリケーションをWebサービス・セキュリティ・モジュール・プロファイルにバインドします。

      第10章「システム構成の管理」を参照してください。

  2. $OES_CLIENT_HOME/oes_sm_instances/MOSS_SM_Name/libディレクトリからOES.SharePoint.dlllog4net.dllC:/WINDOWS/assemblyディレクトリにドラッグ・アンド・ドロップします。

    これにより、アセンブリがWindowsのグローバル・アセンブリ・キャッシュに登録され、ホスト・マシン上のすべての.NETアプリケーションから使用できるようになります。

  3. MOSS 2007 (IIS 6)を使用している場合、次のコードをdefault.masterファイルのHTML HEADセクションに追加して、Oracle Entitlements Server委任制御を宣言します。

    <SharePoint:DelegateControl runat="server" ControlId="PageHeader"/>
    

    default.masterファイルはC:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\GLOBAL\ディレクトリにあります。この手順は、MOSS 2010 (IIS 7)を使用している場合は必要ありません。


    注意:

    default.masterを「ワードパッド」で開くと、既存の文字のかわりに疑問符(?)が表示されている箇所が散見されます。ファイルを変更して保存する前に、これが修正されていることを確認してください。または、ファイルを「メモ帳」で開いてください。


  4. ユーザーがMOSSコンポーネントへのアクセスを認可されていない場合にメッセージを表示するカスタム・エラー・ページを追加します。

    CustError.aspxcustError2010.aspxは、Oracle Entitlements ServerのMOSS用カスタム・エラー・ページです。これらは、$OES_CLIENT_HOME/oes_sm_instances/MOSS_SM_Name/adm/pagesディレクトリにあります。

    • MOSS 2007 (IIS 6)を使用している場合、custError.aspxC:\ Program Files\Common Files\Microsoft Shared\web server extensions\12\template\layoutsにコピーします。

    • MOSS 2010 (IIS 7)を使用している場合、custError2010.aspxC:\Program Files\Common Files\Microsoft Shared\web server extensions\14\template\layoutsにコピーし、名前をcustError.aspxに変更します。

  5. Sharepoint Serverのweb.config構成ファイルを編集して、Oracle Entitlements ServerとMOSSの統合を有効化します。

    web.configはSharePointアプリケーションの仮想ディレクトリ(C:\Inetpub\wwwroot\wss\VirtualDirectories\port-numberなど)にあります。ここで、port-numberはアプリケーションのポートです。


    注意:

    web.configを「ワードパッド」で開くと、既存の文字のかわりに疑問符(?)が表示されている箇所が散見されます。ファイルを変更して保存する前に、これが修正されていることを確認してください。または、ファイルを「メモ帳」で開いてください。


    1. 表9-3に記載されているプロパティをappSettingsセクションに追加します。例9-1は、appSettingsセクションを示しています。値はmossprpFileNameとして定義されているファイルから取得されています。

      例9-1 Sharepoint web.configファイルのappSettingsセクション

      <add key="SsmUrl" value="${moss.SmUrl}/ServiceRegistry"/>
      <add key="SsmId" 
           value="${oracle.security.jps.runtime.pd.client.sm_name}"/>
      <add key="ApplicationID" value="${application.id}"/>
      <add key="PolicyDomain" value="${policy.domain}"/>
      <add key="ResourceType" value="${moss.resourcetype}"/>
      <add key="log4NetXmlfile" value="${moss.log4NetXmlfile}”/>
      <add key="sharepointSite" value="${moss.sharepointSite}"/>
      <add key="EnableOES" value="${moss.EnableOES}"/>
      <add key="IgnoredExtensions" value="${moss.IgnoredExtensions}"/>
      <add key="IgnoredURLExpression" value=”${moss.IgnoredURLExpression}"/>
      

      表9-3 MOSSアプリケーションのappSettingsプロパティ

      プロパティ 説明

      SsmUrl

      WebサービスSMのレジストリURL (http://oesw2k8:9400/ServiceRegistryなど)。

      SsmId

      このセキュリティ・モジュールの名前(MOSSなど)。

      IdentityAsserterName

      Oracle Entitlements Serverで構成されているIDアサーション・プロバイダの名前。現時点ではOESIdentityAssertionのみがサポートされています。

      ApplicationID

      保護されたMOSSリソースを表す構成済Oracle Entitlements Serverアプリケーションの名前。

      ResourceType

      すべてのMOSSリソースのリソース・タイプ(MossResourceTypeなど)。保護されたすべてのMOSSコンポーネントのリソース・タイプは、moss_config.propertiesファイルで定義されているmoss.resource.typeプロパティの値と一致している必要があります。

      log4NetXmlfile

      log4Net.xml構成ファイルへの完全修飾パス。log4Net.xmlファイルで定義されているログ・ファイルは、ログ・メッセージを書き込めるように読取り/書込みアクセス権がEveryoneに付与されている既存ディレクトリに存在する必要があります。

      sharepointSite

      トップレベルSharePointサイト(http://alesw2k8:9581/など)。

      Enable OES

      OES統合を有効化するフラグで、値としてtrueまたはfalseを設定します。

      IgnoredExtensions

      OESアクセス制御で無視されるファイル拡張子パターンのカンマ区切りリスト。次に例を示します。

      png,js,css,axd
      

      これらのリソースへのアクセスがリクエストされた場合、常に付与されます。

      IgnoredURLExpression

      OESアクセス制御で無視されるファイル名パターンのカンマ区切りリスト。次に例を示します。

      /_layouts/Authenticate.aspx,/_login/default.aspx,/_forms/default.aspx
      

      これらのリソースへのアクセスがリクエストされた場合、常に付与されます。


    2. 表9-3に記載されているSafeControl AssemblyエントリをSafeControlsセクションに追加します。

      例9-2 SafeControl Assemblyエントリ

      <SafeControls>
            ...
      <SafeControl Assembly="OES.Sharepoint, Version=1.0.0.0, Culture=neutral, 
        PublicKeyToken=68b08a2fa869dfdc" Namespace="OES.Sharepoint.Controls" 
        TypeName="*" Safe="True" />
      <SafeControl Assembly="OES.Sharepoint, Version=1.0.0.0, Culture=neutral, 
        PublicKeyToken=68b08a2fa869dfdc" Namespace="OES.Sharepoint.Modules" 
        TypeName="*" Safe="True" />
      </SafeControls>
      
    3. 使用するサーバーに基づいてカスタムhttpModulesを定義します。

      MOSS 2007 (IIS 6)を使用している場合、次の記述をhttpModulesセクションに追加します。

      <add name="CustHTTPModule" type="OES.Sharepoint.Modules.CustHTTPModule, 
        OES.Sharepoint, Version=1.0.0.0, Culture=neutral, 
        PublicKeyToken=68b08a2fa869dfdc " />
      

      MOSS 2010 (IIS 7)を使用している場合、例9-3assembliesセクションに、例9-4modulesセクション(最後の<remove>より後で最初の<add>より前の位置)に、それぞれ追加します。

      例9-3 add assemblyエントリ

      <assemblies>
      …
      <add assembly="OES.Sharepoint, Version=1.0.0.0, Culture=neutral, 
        PublicKeyToken=68b08a2fa869dfdc" />
      …
      </assemblies>
      

      例9-4 add nameエントリ

      <modules runAllManagedModulesForAllRequests="true">
      …
      <add name="CustHTTPModule" preCondition="integratedMode" 
        type="OES.Sharepoint.Modules.CustHTTPModule, OES.Sharepoint, 
        Version=1.0.0.0, Culture=neutral, PublicKeyToken=68b08a2fa869dfdc" />      
      …
      </modules>
      
    4. カスタム・コンテンツを公開する必要がある仮想パスでPageParserPaths (SafeModeセクション)を更新します。カスタム・コンテンツは、ソリューションによって提供されるタグ・ライブラリを介して認可できます。例9-5に例を示します。

      例9-5 PageParserPathsエントリ

      <PageParserPaths>
        <PageParserPath VirtualPath="/Pages/*" CompilationMode="Always"  
           AllowServerSideScript="true" IncludeSubFolders="true"/>
      </PageParserPaths>
      
    5. MOSSのPortalSiteMapProviderの詳細(例9-6を参照)をOracle Entitlements ServerのPortalSiteMapProviderの詳細(例9-7を参照)で更新します。

      Oracle Entitlements ServerのカスタムPortalSiteMapProviderは、ナビゲーション・バー・アイテムを保護します。

      例9-6 MOSSのPortalSiteMapProvider

      <SiteMap>
       <Providers>
           …
      <add name="GlobalNavigation" description="Provider for MOSS Global Navigation" 
        type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, 
        Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, 
        PublicKeyToken=71e9bce111e9429c" NavigationType="Combined" Version="14" />
      <add name="CurrentNavigation" description="Provider for MOSS Current Navigation" 
        type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, 
        Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, 
        PublicKeyToken=71e9bce111e9429c" NavigationType="Current" Version="14" />        
           …
       </Providers>
      </SiteMap>
      

      例9-7 Oracle Entitlements ServerのPortalSiteMapProvider

      <SiteMap>
       <Providers>
           …
      <add NavigationType="Combined" Version="1" description="Provider for MOSS 
        Global Navigation" name="GlobalNavigation" 
        type="OES.Sharepoint.Controls.OESPortalSiteMapProvider, OES.Sharepoint, 
        Version=1.0.0.0, Culture=neutral, PublicKeyToken=68b08a2fa869dfdc"/>
      <add NavigationType="Current" Version="1" description="Provider for MOSS 
        Current Navigation" name="CurrentNavigation" 
        type="OES.Sharepoint.Controls.OESPortalSiteMapProvider, OES.Sharepoint, 
        Version=1.0.0.0, Culture=neutral, PublicKeyToken=68b08a2fa869dfdc"/> 
           …
       </Providers>
      </SiteMap>
      
    6. IISサーバーを再起動して、前述の変更をIISサーバーに反映させます。

  6. OESAuthorizationFeatureディレクトリをMOSS FEATURESディレクトリにコピーします。

    • MOSS 2007 (IIS 6)を使用している場合、$OES_CLIENT_HOME/oes_sm_instances/MOSS_SM_Name/lib/OESAuthorizationFeatureディレクトリをC:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURESディレクトリにコピーします。

    • MOSS 2010 (IIS 7)を使用している場合、$OES_CLIENT_HOME/oes_sm_instances/MOSS_SM_Name/lib/OESAuthorizationFeature2010ディレクトリをC:\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURESディレクトリにコピーし、ディレクトリ名をOESAuthorizationFeatureに変更します。

  7. 次のいずれかのコマンドを使用して、指定したサイトにOESAuthorizationFeatureをインストールし、アクティブ化します。

    OES認可機能は、「サイトの設定」→「すべてのサイト設定の変更」→「サイトの機能」に移動して、WebサイトごとおよびサブWebサイトごとに個別にアクティブ化できます。サブWebに対してアクティブ化した場合、サブWeb内部のすべてのWebページのすべてのWebパーツにアクセス制御を適用できます。

    • MOSS 2007 (IIS 6)を使用している場合、コマンド・プロンプトを開き、次のコマンドを実行します。

      “C:\Program Files\Common Files\Microsoft Shared\web server 
      extensions\12\BIN\STSADM.EXE” –o installfeature –name 
      OESAuthorizationFeature
       
      “C:\Program Files\Common Files\Microsoft Shared\web server 
      extensions\12\BIN\STSADM.EXE” –o activatefeature –name 
      OESAuthorizationFeature –url http://alesw2k3:9581
      
    • MOSS 2010 (IIS 7)を使用している場合、コマンド・プロンプトを開き、次のコマンドを実行します。

      “C:\Program Files\Common Files\Microsoft Shared\web server 
      extensions\14\BIN\STSADM.EXE” –o installfeature –name 
      OESAuthorizationFeature
       
      “C:\Program Files\Common Files\Microsoft Shared\web server 
      extensions\14\BIN\STSADM.EXE” –o activatefeature –name 
      OESAuthorizationFeature –url http://aleswin2k8:9581
      
  8. IISサーバーを再起動します。

  9. %OES_CLIENT_HOME%\oessm\mosssm\libディレクトリにあるMOSSResourceDiscovery.exeを使用して、SharePointサーバーのすべての保護されたリソースのリストを取得します。


    注意:

    MOSSリソースは、Oracle Entitlements Serverのリソースに、階層的にマップされます。したがって、検出されたすべてのリソースをポリシー・ストアに定義する必要はありません。たとえば、10,000個のドキュメント名を個別にコピーするのではなく、これらのドキュメントが存在するフォルダの名前をコピーし、リソース名式(/lib/*など)を使用してポリシーを作成します。


    この実行可能ファイルはMOSSセキュリティ・モジュールに含まれ、object1という名前のプレーン・テキスト・ファイルおよびdiscovered-jazn-data.xmlという名前のXMLファイルを生成します。MOSSリソースは両方のファイルで定義されます。MOSSResourceDiscovery.exe実行可能ファイルは、次の情報の入力を要求します。

    • ファイルを作成するディレクトリへのパス(c:\inetpub\wwwroot\wss\VirtualDirectories\9581\policyなど)。このディレクトリは事前に作成済である必要があります。

    • 管理URLファイルが存在するディレクトリへのパス($OES_CLIENT_HOME/oessm/mosssm/adm/Discovery/AdmUrls.txtなど)。

    • Sharepoint ServerサイトURL (http://amw2k8:9581など)。URLの末尾にスラッシュ(/)を付けないでください。

    • MOSSアプリケーションを表すOracle Entitlements Serverアプリケーション・オブジェクトの名前(MossAppなど)。

    • Oracle Entitlements Serverリソース・タイプの名前。この値は常にMossResourceTypeである必要があります。

    XMLファイルはポリシー移行ツールで使用できます。詳細は、13.5項「ポリシーの移行」を参照してください。テキスト・ファイルは、次の手順でリソースをOracle Entitlements Serverポリシー・ストアにインポートするために使用されます。

  10. テキスト・ファイルをポリシー移行ツールmanage-policy.cmd|shの入力として使用して、MOSSリソースをOracle Entitlements Serverポリシー・ストアにインポートします。

    manage-policy.cmd|shは、%OES_CLIENT_HOME%\oessm\binディレクトリにあります。このインポートにより、MOSSリソースがポリシー・ストアに追加されます。既存のMOSSアプリケーション(および関連するポリシー)は削除されません。入力値(アプリケーション名、リソース・タイプおよび生成されるリソース・ファイル)は、前述の手順でMOSSResourceDiscovery.exeで使用した入力と一致している必要があります。

    manage-policy.cmd|shを実行する前に、スクリプトを次のように変更します。

    このツールは1回のみ実行します。新しいリソースは、管理コンソールを使用して手動で作成します。

  11. 管理コンソールを使用してポリシーを配布します。

9.3 Oracle Service Busリソースの保護

Oracle Service Bus (OSB)は、多数の分散サービス・エンドポイントを中央で管理および制御するように設計されています。Oracle Entitlements Serverを使用することで、企業はOSBランタイム・リソースへのアクセスを制御し、認可された後にのみそれらがアクセス可能になるようにできます。一般に、OSBランタイム・リソースは、isAccessAllowed()認可APIに渡されるリソースです。


注意:

Oracle Entitlements Serverでは、OSBコンソールなど、OSB構成時に使用されるリソースは保護されません。


次の各項には、OSBリソース・オブジェクトの詳細とその値をOracle Entitlements Serverポリシー・オブジェクトにマップする方法の詳細が含まれています。

9.3.1 OSBリソース・オブジェクトの調査

OSBランタイム・リソースはオブジェクトとして表されます。リソースを表すオブジェクトには、オブジェクトのコンテキスト(OSBプロジェクトまたはタスクなど)を表す値を定義するKEYS文字列配列が含まれます。OSBリソースを保護するには、認可ポリシーの定義に使用するOracle Entitlements Serverセキュリティ・オブジェクトを作成する際に、リソース・オブジェクトのKEYSに渡される値を反映する必要があります。OSBリソース・オブジェクトで定義されるKEYSのリストを次に示します。このOSBリソース・オブジェクトのタイプは常に<alsb-proxy-service>です。

  • proxyは、保護されるリソースに関連付けられたOSBプロキシ・サービスの名前を定義します。この値によって1つのOSBプロキシ・サービスが一意に識別されます。

  • pathは、OSBプロキシ・サービスへのフルパス(Project-name/Folder-nameなど)です。

    • Project-nameは、プロキシ・サービスが関連付けられているOSBプロジェクトの名前です。

    • Folder-nameは、プロキシ・サービスにオプションで定義されるディレクトリ構造です。/folder_name/sub_folder_nameのように、文字列セパレータ/を使用すると、複数のディレクトリを定義できます。

    この値によって、proxyで参照されているOSBプロキシ・サービスと同じOSBプロキシ・サービスが一意に識別されます。

  • actionは、OSBプロキシ・サービスへのエントリがセキュアかどうかを定義し、次のいずれかの値が設定されます。

    • invokeはOSBプロキシ・サービスへのエントリに対するアクセス制御を表します。

    • wss-invokeはOSBプロキシ・サービスの操作へのエントリに対するセキュア・アクセス制御を表します。OSB Webサービス・セキュリティは、このアクションを使用して構成されます。

  • operationは、起動されるWebサービス操作の名前を定義します。actioninvokeの場合、この値はnullです。


注意:

OSBプロキシ・サービスでWebサービス・セキュリティを使用する場合、OSBはトランスポート・レイヤーとメッセージ・レイヤーでセキュリティ・チェックを実行します。OSBは、トランスポート・レイヤーではユーザーがプロキシ・サービスへのアクセスを許可されているかどうかを確認し、メッセージ・レイヤーではユーザーが指定されたプロキシ・サービス操作の実行を許可されているかどうかを確認します。したがって、トランスポート・レイヤーにユーザー情報が渡されない場合は、匿名ロールにアクセス権限を付与するポリシーを追加する必要があります。


OSBリソースのOracle Entitlements Serverポリシー・オブジェクトへのマッピングは、選択されたセキュアまたは非セキュアなアクションに応じて異なります。詳細は、9.3.2項「セキュアなOSBリソースのOracle Entitlements Serverへのマッピング」9.3.3項「非セキュアなOSBリソースのOracle Entitlements Serverへのマッピング」を参照してください。

9.3.2 セキュアなOSBリソースのOracle Entitlements Serverへのマッピング

OSBリソース・オブジェクトでwss-invokeアクションが定義されている場合、適用可能なOSBプロキシ・サービスではOSB Webサービス・セキュリティが使用されます。SampleProxyServiceという名前のOSBプロキシ・サービスが、SampleProjectという名前のOSBプロジェクトに関連付けられ、OSB Webサービス・セキュリティを使用するように構成されていると仮定します。このサービス・リソースは、Mortgage/ProxyServiceフォルダにあります。したがって、KEYS値は次のようになります。

  • path: SampleProject/Mortgage/ProxyService

  • proxy: SampleProxyService

  • action: wss-invoke

  • operation: sayHello (Webサービス・アクションがsayHelloであるとします)

これらのKEYS値に基づいて、Oracle Entitlements Serverオブジェクト値は次のようになります。

  • アプリケーション - OSBリソースの保護に使用するアプリケーションの名前はalsbProxyServicesにする必要があります。

  • リソース・タイプ - この値は常にOSBオブジェクト・タイプalsb-proxy-serviceである必要があります。また、「リソース階層のサポート」パラメータの値としてyesを選択します。


    注意:

    リソース・タイプalsb-proxy-serviceのアクションとしてwss-invokeを追加する必要はありません。ポリシーの操作のみ選択します。


  • リソース - SampleProject/Mortgage/ProxyService/SampleProxyService/sayHello (OSBリソース・オブジェクトのpath/proxyの各KEYS値の値に等しい値を使用します)

  • アクション - access (Oracle Entitlements Serverのデフォルト権限accessが常に使用されます)

9.3.3 非セキュアなOSBリソースのOracle Entitlements Serverへのマッピング

OSBリソース・オブジェクトでinvokeアクションが定義されている場合、適用可能なOSBプロキシ・サービスではOSB Webサービス・セキュリティは使用されません。SampleProxyServiceという名前のOSBプロキシ・サービス・リソースが、SampleProjectという名前のOSBプロジェクトに関連付けられていると仮定します。このサービス・リソースは、Mortgage/ProxyServiceフォルダにあります。したがって、KEYS値は次のようになります。

  • path: SampleProject/Mortgage/ProxyService

  • proxy: SampleProxyService

  • action: invoke

  • operation: null

これらのKEY値に基づいて、OSB Webサービス・セキュリティで構成されていない場合、Oracle Entitlements Serverオブジェクト値は次のようになります。

  • アプリケーション - alsbProxyServices (OSBリソース・オブジェクトには定義済の値がないので、このデフォルト値が使用されます)

  • リソース・タイプ - この値は常にOSBオブジェクト・タイプalsb-proxy-serviceである必要があります。また、「リソース階層のサポート」パラメータの値としてyesを選択します。

  • リソース - SampleProject/Mortgage/ProxyService/SampleProxyService (OSBリソース・オブジェクトのpath/proxyの各KEYS値の値に等しい値を使用します)

  • アクション - access(operationに値が設定されている場合はその値が使用され、設定されていない場合はOracle Entitlements Serverのデフォルト権限accessが使用されます)

9.3.4 WebLogic Serverプロバイダの有効化

OSBランタイム・リソースを保護するには、Oracle Entitlements Serverプロキシ・プロバイダも有効化する必要があります。これを実現する手順は、9.4.1項「WebLogic Serverとの統合」を参照してください。

9.4 WebLogic Serverリソースの保護

WebLogic Serverセキュリティ・モジュールは、認可リクエストを受信する認可APIを提供するだけでなく、特定のOracle Entitlements Serverの認可プロバイダとロール・マッピング・プロバイダを構成した後にWebLogic Server固有のリソースを保護できます。次の主要な手順では、WebLogic Serverリソースを保護するタスクについて説明します。

  1. 認可プロバイダおよびロール・マッピング・プロバイダを有効化します。

    9.4.1項「WebLogic Serverとの統合」を参照してください。

  2. 検出モードを使用して、保護されるリソースを検出します。

    9.4.2項「WebLogic Serverリソースの検出」を参照してください。

  3. WebLogic Server固有のリソースをOracle Entitlements Serverオブジェクトとして定義します。

    9.4.3項「WebLogic Serverリソースの変換」9.4.4項「WebLogic Serverリソースのポリシー・オブジェクトへのマッピング」を参照してください。

  4. 適切な認可ポリシーとロール・マッピング・ポリシーを構成します。

    第4章「ポリシーとポリシー・オブジェクトの管理」を参照してください。

  5. ポリシーをセキュリティ・モジュールに配布します。

    第6章「ポリシー配布の管理」を参照してください。

9.4.1 WebLogic Serverとの統合

1.3.2.2項「PDP/PEPの組合せとしてのセキュリティ・モジュール」で説明しているように、WebLogic Serverは、ロール・マッピングおよび認可プロバイダを有効化した後で、認可リクエストを自動的に捕捉できます。次の手順は、これを行う方法を説明します。ここでは、WebLogic Serverは、$DOMAINドメインの$WLSディレクトリにインストールされていることを前提としています。次の手順を実行する際は、インストールに合わせて値を置き換えてください。

  1. 次のコマンドを使用して、$DOMAINドメインを起動します。

    $DOMAIN/startWeblogic.sh
    
  2. 認可プロキシおよびロール・マッピング・プロバイダを、ドメインを保護するレルムに追加します。

    図9-1は、これを示すWebLogic Serverコンソールのスクリーンショットです。

    図9-1 WebLogic Serverドメインのレルムへのプロバイダの追加

    WLSコンソール
    「図9-1 WebLogic Serverドメインのレルムへのプロバイダの追加」の説明

  3. ドメインを再起動します。

プロバイダを有効化したら、構成パラメータについてA.2.5項「WebLogic Serverセキュリティ・モジュール」を参照してください。

9.4.2 WebLogic Serverリソースの検出

アプリケーションのリソースを保護するポリシーを作成する場合、保護される必要があるすべてのリソースは検出される必要があります。WebLogic Serverセキュリティ・モジュールを検出モードで実行し、(使用状況を追跡するために)1つ以上のユーザー・セッションを開くことによって、アプリケーションのリソースを定義できます。(検出モードは、認可するのではなく、保護されるオブジェクトを検出します。)ユーザー・セッション中に実行されたアクティビティに基づいて、Oracle Entitlements Serverは初期ポリシー・セット(保護されるすべてのリソースが定義されます)が生成されます。生成されたポリシー・セットは、ポリシー・ストアにインポートできます。


注意:

生成されたファイルは、アプリケーションを完全に保護するポリシー・セットを定義する出発点として機能するように作られています。詳細は次のとおりです。

  • 記録されるのはユーザー・セッション中のリクエストに基づくポリシー・データのみであり、使用されないアプリケーションのパーツのポリシー・データは生成されません。

  • アプリケーションのリソースの定義に使用するリソース階層によっては、インポートされたポリシー・セットに実際に必要な数よりも多くのリソースが含まれる可能性があります。


リソース検出は、認可プロバイダおよびロール・マッピング・プロバイダが検出モードで実行されている場合に有効です。このモードでは、これらのプロバイダからユーザー・リクエストの評価結果として常にtrueが返され、それらのリクエストに対する初期ポリシー・セットが生成されます。検出モードでは、アプリケーション、リソース・タイプ(と対応するアクション)、リソース・タイプmatcherClass名およびリソースが検出される可能性があります。次の各項では、詳細を説明します。

9.4.2.1 検出モードの有効化

デフォルトでは、検出モードはオフです。(jps-config.xmlで)oracle.security.jps.discoveryModeプロパティをtrueに設定すると、機能が有効になります。oracle.security.jps.discoveredPolicyDirプロパティのディレクトリ値を追加すると、ポリシー・セットの書込み先が定義されます。


注意:

検出モードでは、階層型リソース・タイプの親リソースは生成されません。検出されるすべてのリソース・タイプが階層型であることを管理者が知っている場合は、オプションのoracle.security.jps.discoveredResourceIsHierarchicalプロパティとoracle.security.jps.discoveredResourceNameDelimiterプロパティに適切な値を追加します。


これらの構成パラメータの詳細は、付録A『インストール・パラメータおよび構成パラメータ』を参照してください。

9.4.2.2 検出したリソースのロード

生成される検出モード・ファイルは、jazn-data.xmlスキーマに基づいた、例9-8に示す標準XMLポリシー・ストア・ファイルです。Oracle Entitlements Server APIを使用して、検出されたオブジェクトを、ポリシー・ストア内の認可ポリシー・オブジェクトとして作成します。詳細は、13.5項「ポリシーの移行」を参照してください。

例9-8 検出されたリソースのサンプル・ファイル

<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
<jazn-data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:noNamespaceSchemaLocation=
  "http://xmlns.oracle.com/oracleas/schema/jazn-data-11_0.xsd"> 
<policy-store>
  <applications>
    <application>
      <name>addConfRes#V2.0</name>
        <resource-types>
          <resource-type>
            <name>FileResourceType</name>
              <matcher-class>oracle.security.jps.JpsPermission</matcher-class>
                 <actions-delimiter>,</actions-delimiter>
                 <actions>delete,write,read</actions>
          </resource-type>
        <resource-type>
            <name>ResType1</name>=
                 <actions-delimiter>,</actions-delimiter>
                 <actions>write,read</actions>
        </resource-type>
       </resource-types>
       <resources>
         <resource>
           <name>EmpInfo</name>
           <type-name-ref>FileResourceType</type-name-ref>
         </resource>
         <resource>
           <name>resource1</name>
           <type-name-ref>ResType1</type-name-ref>
         </resource>
       </resources>
      </application>
    </applications>
  </policy-store>    
</jazn-data>

9.4.3 WebLogic Serverリソースの変換

この項では、WebLogic Serverによってサポートされている様々なリソース・タイプをOracle Entitlements Serverで変換する方法およびOracle Entitlements Server管理コンソールでそれらを表す方法について説明します。WebLogic Serverリソースは、WebLogicセキュリティ・サービスが基礎となるWebLogic Serverエンティティを表すために作成するオブジェクトであり、誰がエンティティにアクセスできるのかを決定するために使用されます。

認可ポリシーでは、オブジェクトの中でも特に、トップレベルのアプリケーション、リソース・タイプおよび保護される実際のリソースが定義されます。このオブジェクトには、表9-4に記載されているオブジェクトが含まれる可能性があります。

表9-4 WebLogic Server認可ポリシー・オブジェクト

ノード 説明

アプリケーション

アプリケーションは、リソースが関連付けられているアプリケーションに対応します。すべてのリソースが特定のアプリケーションに属するわけではありません。たとえば、JDBCリソースはアプリケーションに属していません。このような場合、アプリケーションの名前のかわりにsharedが使用されます。アプリケーション名は、管理コンソールでアプリケーションが作成される際に定義されます(MyEjbApplicationなど)。

リソース・タイプ

リソース・タイプは、9.4.4項で定義されている、サポートされているWebLogic Serverリソース・タイプに対応します。リソース・タイプ名は、管理コンソールでリソース・タイプが作成される際に定義されます(ejbなど)。リソース・タイプは階層型またはフラットとして定義できます。

リソース

リソースは、保護されるリソース・タイプのインスタンスです。リソースは、階層型(すべての内容が保護されるディレクトリとして)または特定のファイルである可能性があります。リソース・インスタンスの作成元のリソース・タイプは、最初は階層型として定義される必要があります。


9.4.4 WebLogic Serverリソースのポリシー・オブジェクトへのマッピング

この項では、Oracle Entitlements Serverポリシー・オブジェクトを、共通の外部リソースに対して定義されたWebLogic Serverリソースにマップする方法について説明します。WebLogic Serverでサポートされるリソース・タイプ値には、admappcomeisejbjdbcjmsjndildsvrurlwebおよびwebservicesがあります。ここでは、次のリソース・タイプについて説明します。

9.4.4.1 Enterprise Java Beanリソース

Enterprise Java Bean (EJB)リソースの保護に使用するポリシーのオブジェクトを定義する場合、ポリシー・オブジェクトには、標準のEJBデプロイメント・ディスクリプタejb-jar.xmlで定義されている値に基づいて名前を付ける必要があります。例9-9は、AccountServiceという名前のEJBを定義する方法を示します。

例9-9 ejb-jar.xmlのEJBリソースの定義

<enterprise-beans>
<!-- Session Beans -->
  <session>
    <display-name>AccountService</display-name>
    <ejb-name>AccountService</ejb-name>
    <home>com.bea.security.examples.ejb.AccountServiceHome</home>
    <remote>com.bea.security.examples.ejb.AccountService</remote>
    <ejb-class>ejb.AccountServiceSession</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Bean</transaction-type>
  </session>
</enterprise-beans>

表9-5では、EJBリソースで使用するポリシー・オブジェクトを定義する際に使用する必要があるマッピングを説明します。

表9-5 EJB定義のポリシー・オブジェクトへのマッピング

ポリシー・オブジェクト名 EJB定義

アプリケーション

EJB名と同じ(この場合はAccountService)

リソース・タイプ

ejbを使用

リソース名

ejb_name/method_name

  • ejb_nameはEJBの名前

  • method_nameは起動されるメソッドの名前

EJBメソッドはリソースURLの一部です。リソース・アクションは常にexecuteです。


次のリストには、認可ポリシーで条件の一部として使用できる、JNDIリソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

  • application: アプリケーションの名前

  • module: モジュールの名前

  • ejb: EJBの名前

  • method: メソッドの名前

  • methodインタフェース: 値としてHome、Remote、LocalHomeまたはLocalを使用します

  • ParamN: メソッドのN番目のパラメータの値(Param1、Param2…など)


注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。


9.4.4.2 Java Naming and Directory Interfaceリソース

Java Naming and Directory Interface (JNDI)ベースのリソースの保護に使用するポリシーのオブジェクトを定義する場合、ポリシー・オブジェクトには、WebLogic固有のデプロイメント・ディスクリプタweblogic-ejb-jar.xmlで定義されている値に基づいて名前を付ける必要があります。例9-10は、AccountServiceという名前のEJBにJNDI名を定義する方法を示します。

例9-10 weblogic-ejb-jar.xmlのJNDIリソースの定義

<weblogic-ejb-jar>
  <weblogic-enterprise-bean>
    <ejb-name>AccountService</ejb-name>
    <stateless-session-descriptor></stateless-session-descriptor>
    <reference-descriptor></reference-descriptor>
    <jndi-name>AccountService</jndi-name>
  </weblogic-enterprise-bean>
</weblogic-ejb-jar>

表9-6では、JNDIベースのリソースで使用するポリシー・オブジェクトを定義する際に使用する必要があるマッピングを説明します。

表9-6 JNDI定義のポリシー・オブジェクトへのマッピング

ポリシー・オブジェクト名 JNDI定義

アプリケーション

shared

リソース・タイプ

jndi

リソース

未使用


JNDIコールのアクションはJNDIアクション名です。次のいずれかの値を使用できます。

  • modifyは、アプリケーションでJNDIツリーになんらかの変更(追加、削除、変更)を行う場合に常に必要です。これには、bind()rebind()createSubContext()destroySubContext()およびunbind()の各メソッドが含まれます。

  • lookupは、アプリケーションでJNDIツリーのオブジェクトをルックアップする場合に常に必要です。これには、lookup()メソッドとlookupLink()メソッドが含まれます。

  • listは、アプリケーションでJNDIのコンテキストのコンテンツをリストする場合に常に必要です。これには、list()メソッドとlistBindings()メソッドが含まれます。

次のリストには、認可ポリシーで条件の一部として使用できる、JNDIリソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

  • application - 常にshared

  • path - JNDIリソース・パス

  • action - JNDIアクション名(modify | lookup | list)


注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。


9.4.4.3 URLリソース

URL (Web)リソースは、Webアプリケーションに関連する特定のWebLogic Serverリソースです。Webアプリケーションを保護するには、Web Application aRchive (WAR)の認可ポリシーまたはWebアプリケーションの個別のコンポーネント(サーブレット、JSPなど)の認可ポリシーを作成します。表9-7は、URLリソースを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでオブジェクトが作成される際に定義されます。

表9-7 Oracle Entitlements ServerオブジェクトにマップされたURLリソース値

OESオブジェクト名 URLリソース値

アプリケーション

値として、リソースである(またはリソースを含む)Webアプリケーション名(WebLogic Server構成ファイルで定義されている)を使用します(bankappなど)。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はurl)。

リソースの親

値として、WebLogic Server構成ファイルで定義されているWebアプリケーションのコンテキスト・パスを使用します。次の例では、コンテキスト・パスが、最初の2つのポリシーでは/currencyExchange、最後の2つのポリシーでは/mybrokerとそれぞれ定義されています。

リソース

値としてコンテキスト・パスの後のリソースURIを使用します。この場合はcurrentRates.jspです。


URLリソースの認可ポリシーの作成方法を示すために、複数の銀行関連JSPからアクセス可能なWebリソースを保護する必要があると仮定します。WebLogic Server構成ファイルでは、Webアプリケーション名のbankappおよびコンテキスト・パスの/currencyExchange(最初の2つのポリシーの場合)と/mybroker(最後の2つのポリシーの場合)が参照されます。URLリソースの場合、アクション名はHTTPリクエスト・メソッド名(GET、POST、PUT、HEAD、DELETE、TRACE、CONNECTなど)にマップされます。

最初の認可ポリシーの例では、セキュア接続(HTTPS)経由でページがアクセスされている場合、任意の認可されていないユーザー(匿名)に現在の通貨交換レート(currentRates.jsp)を表示する権限が付与されます。管理コンソールを使用して次のオブジェクトを作成します。

  • アプリケーション = bankapp

  • リソース・タイプ = url

  • リソース = currencyExchange/currentRates.jsp

  • アクション = GET

  • ユーザー = anonymous (unauthorized)

  • 条件 = if issecure=yes

GETアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。

2番目の認可ポリシーの例では、Managerロールの任意のメンバーがローカル・マシンからデータを更新する場合は、新しい通貨交換レートをポスト(postNewRates.jsp)する権限が付与されます。管理コンソールを使用して次のオブジェクトを作成します。

  • アプリケーション = bankapp

  • リソース・タイプ = url

  • リソース = currencyExchange/postNewRates.jsp

  • アクション = POST

  • ロール = Manager

  • 条件 = if remotehost="localhost"

POSTアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。

3番目の認可ポリシーの例では、顧客の購買力が正の場合に、buyStocks.jspへのアクセス権が付与されます。顧客の購買力が正ではない場合、ページは表示されません。購入力を解読するために、顧客がbuyStocks.jspリンクをクリックすると、ブラウザによりJavaサーブレットにマップされたHTTPリクエストが送信されます。このリクエストは、サーブレットによってpurchasingPowerという名前のリクエスト属性が設定され、2番目のページに転送されます。このページでは、顧客のすべての口座から残高がフェッチされ、新しい株の購入に使用できる金額(購買力)が計算されて、purchasingPower属性に値が設定されます。管理コンソールを使用して次のオブジェクトを作成します。

  • アプリケーション = bankapp

  • リソース・タイプ = url

  • リソース = mybroker/buyStocks.jsp

  • アクション = GET

  • ロール = Client

  • 条件 = if purchasingPower>0

GETアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。

4番目の認可ポリシーでは、(チェック・ボックスを選択することによって)取引契約に同意した場合にのみ顧客が口座を開くことが許可されます。openAccount.jspリンクをクリックした後、最初に表示されるページには取引契約が表示され、顧客に同意を求めます。チェック・ボックスは、customerAgreedという名前のHTMLフォーム・パラメータにリンクされています。顧客が取引契約に同意した場合、HTMLフォームがポストされたときに、このパラメータがtrueに設定されます。ポリシーでは、この値をcustomerAgreed HTTPリクエスト・パラメータで確認します。管理コンソールを使用して次のオブジェクトを作成します。

  • アプリケーション = bankapp

  • リソース・タイプ = url

  • リソース = mybroker/openAccount.jsp

  • アクション = POST

  • ロール = Client

  • 条件 = if Not customerAgreed="true"

POSTアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。

表9-8に、認可ポリシーで条件の一部として使用できる、URLリソースでサポートされている動的属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-8 URLリソースによりサポートされている動的属性

属性名 説明

application

Webアプリケーションの名前。

contextpath

Webアプリケーションのコンテキスト・パス。

uri

リソースのURI。

httpmethod

HTTPメソッド(アクションと同じ)。

transporttype

URLリソースにアクセスするために必要なトランスポート保証。デプロイメント・ディスクリプタの対応する<transport-guarantee>要素に表示されます。値はINTEGRALまたはCONFIDENTIALのどちらかです。

authtype

サーブレットの保護に使用する認証スキームの名前。値はBASIC、FORM、CLIENT_CERTまたはDIGESTのいずれかです。

pathInfo

クライアントがリクエストしたときに送信したURLに関連付けられている追加パス情報。

pathtranslated

サーブレットの後から問合せ文字列の前までの追加情報が実際のパスに変換された値。

querystring

リクエストURLのパスの後に含まれる問合せ文字列。

remoteuser

ユーザーが認証済の場合、リクエストしたユーザーのログイン。

requestedsessionid

クライアントが指定したセッションID。

requesturi

このリクエストのURLのHTTPリクエストの1行目のプロトコル名から問合せ文字列までの部分。

requesturl

クライアントがリクエストするために使用するURL。返されるURLには、プロトコル、サーバー名、ポート番号およびサーバー・パスが含まれますが、問合せ文字列パラメータは含まれません。

servletpath

このリクエストのURLのサーブレットをコールする部分。

characterencoding

リクエストの本体で使用される文字エンコーディング。

contenttype

リクエストの本体のMIMEタイプ。

locale

クライアントの優先ロケール。

protocol

プロトコルの名前とバージョン(HTTP/1.1など)。

remoteaddr

クライアントまたは最後にリクエストを送信したプロキシのインターネット・プロトコル・アドレス。

remotehost

クライアントまたは最後にリクエストを送信したプロキシの完全修飾名。

scheme

このリクエストのために使用したスキームの名前(http、httpsまたはftpなど)。

servername

リクエストの送信先のサーバーのホスト名。

serverport

リクエストの送信先のポート番号。

issecure

このリクエストがセキュア・チャネル(HTTPSなど)を使用しているかどうかを示すブール値。



注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。


HTTPリクエストには、サーブレット属性、URL問合せパラメータ、HTTPリクエスト・ヘッダーおよびCookieなどの要素が含まれる可能性があります。これらの要素は名前と値のペアとして使用でき、動的属性にマップできます。


注意:

サーブレット属性、URL問合せパラメータ、HTTPリクエスト・ヘッダーおよびCookieに対応する属性は大/小文字が区別されません。ただし、属性名は大/小文字が区別されると仮定すると、パフォーマンスがわずかですが向上します。


フレームワークが一致する属性を検索する順序は次のとおりです。

  1. URL問合せパラメータ - URLに追加される名前と値のペア。URL問合せ文字列に含まれるパラメータに対応する属性名は、パラメータ名と同じです。名前は文字列として表され、大/小文字は区別されません。属性は、リクエスト内にエンコードされている問合せ文字列変数です。たとえば、URLに?test=endcoded%20charという問合せが含まれる場合、認可ポリシーの条件では"if test= "encoded char"としてパラメータにアクセスできます。

  2. サーブレット属性 - サーブレット・コンテナにより内部的にリクエストに追加できる名前と値のペア。それを実現するには、通常はServletRequestインタフェースのsetAttributeメソッドをコールします。ポリシー属性名はサーブレット属性の名前に一致し、文字列として表され、大/小文字は区別されません。

  3. HTTPリクエスト・ヘッダー - HTTPリクエスト・ヘッダーの属性名はヘッダーの名前に一致します。名前は文字列として返され、大/小文字は区別されません。使用可能なヘッダーの例として、date、if-modified-since、referrerまたはuser-agentがあります。(dateヘッダーは通常は日付タイプですが、文字列として返されます。)

  4. Cookies - HTTPリクエストのCookieに一致する属性名はリクエストのCookie名と同じです。名前は文字列として返され、大/小文字は区別されません。返されるCookieの値はアプリケーション固有であり、さらにデコードする必要がある可能性があります。


注意:

サーブレット属性、URL問合せパラメータ、HTTPリクエスト・ヘッダーまたはCookieの名前が衝突する場合、ポリシーの制約では1つの属性のみ使用可能です。


9.4.4.4 JDBCリソース

Java Database Connectivity (JDBC)リソースは、JDBCに関連するWebLogic Serverリソースです。サービスまたはアプリケーションとしてデプロイされているJDBCリソースを保護できます。JDBCデータベース・アクセスを保護するには、すべてのデータソースに対して集団的、個別のデータソースおよび複数のデータソースに認可ポリシーを作成します。例9-11に、MyJDBCConnectionPoolという名前のJDBCリソースをWebLogic Server構成ファイルconfig.xmlで定義する方法を示します。

例9-11 config.xmlのJDBCリソースの定義

<JDBCConnectionPool DriverName="oracle.jdbc.driver.OracleDriver"
            Name="MyJDBCConnectionPool"
            PasswordEncrypted="{3DES}B2Bl+tp70Eh3D1pT53/anw=="
            Properties="user=wles" Targets="myserver"
            TestTableName="SQL SELECT 1 FROM DUAL"
            URL="jdbc:oracle:thin:@localhost:1521:ASI"/>
<JDBCTxDataSource JNDIName="MyDataSource"
            Name="MyJDBCDataSourceName"
            PoolName="MyJDBCConnectionPool"
            Targets="myserver"/>

表9-9は、JDBCリソースMyJDBCConnectionPoolを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでオブジェクトが作成される際に定義されます。

表9-9 Oracle Entitlements ServerオブジェクトにマップされたJDBC値

OESオブジェクト名 JDBC値

アプリケーション

JDBCリソースは特定のアプリケーションには属しません。このような場合、アプリケーションの名前のかわりにsharedが使用されます。アプリケーションsharedは、管理コンソールでアプリケーションが作成される際に定義されます。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はjdbc)。

リソースの親

値として、モジュール名(存在する場合)とプール・タイプ(ConnectionPoolまたはMultiPool、この場合はConnectionPool)を使用します。

リソース

値として、config.xmlで定義されているJDBC名を使用します。この場合はMyJDBCConnectionPoolです。


Oracle Entitlements Serverを使用するJDBCリソースのポリシー・オブジェクトの作成方法を示すために、ExternalApplicationロールのメンバーにExternalDataPoolという名前の接続プールのJDBC接続をreserveする(開く)権限を付与する必要があると仮定します。管理コンソールを使用して次のオブジェクトを作成します。

  • アプリケーション = shared

  • リソース・タイプ = jdbc

  • リソース = ConnectionPool/ExternalDataPool

  • アクション = reserve


次に示す2番目のオブジェクト・グループは、管理ロールのメンバーに、SystemJdbcPoolという名前のリソースを除く任意のJDBCリソースをシャットダウンする権限を付与するポリシーで使用されます。管理コンソールを使用して次のオブジェクトを作成します。

  • アプリケーション = shared

  • リソース・タイプ = jdbc

  • リソース = ConnectionPool/ExternalDataPool

  • アクション = admin

  • 条件 = if Not resource="SystemJdbcPool"

reserveアクションとadminアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。表9-10では、JDBCリソースに対して実行でき、そのためにリソース・タイプのアクションとして定義する必要がある特定のアクションについて説明します。

表9-10 JDBCリソースのアクション・オプション

アクション名 操作

admin

管理操作(clearStatementCache、suspend、forceSuspend、resume、shutdown、forceShutdown、start、getPropertiesおよびpoolExistsなど)を実行するためのアクション。

reserve

データソースをルックアップしてgetConnectionをコールすることによってデータソースで接続を予約するアクション。

shrink

データソースの接続数を縮小するアクション。

reset

すべての物理データベース接続をシャットダウンして再確立することによって、データソース接続をリセットするアクション。


例9-12は、事前定義済JDBCリソースを使用するサンプル・コードです。データソース・インスタンスのgetConnection()メソッドをコールします。これにより認可の確認が開始され、//app/policy/AppParentNode/shared/jdbc/ConnectionPool/MyJDBCConnectionPoolリソースに対するreserveアクションが確認されます。

例9-12 JDBCリソースに対する認可の開始

javax.naming.InitialContext initialContext = new javax.naming.InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) 
initialContext.lookup("MyDataSource");
java.sql.Connection conn = ds.getConnection();
PreparedStatement statement = 
conn.prepareStatement("SELECT accountName FROM accounts WHERE balance < 0");
ResultSet result = statement.executeQuery();
if (result.next()) {
    String accountName = result.getString(1);
    System.out.println("The first account with negative balance is " + accountName);
}

表9-11に、認可ポリシーで条件の一部として使用できる、JDBCリソースでサポートされている動的属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-11 JDBCリソースによりサポートされている動的属性

属性名 要素

application

リソースをホストするアプリケーションの名前

module

リソースが属するモジュールの名前

category

リソース・タイプ(ConnectionPool | MultiPool)

resource

リソースの名前

action

JDBC操作名(admin | reserve | shrink | reset)



注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。


9.4.4.5 JMSリソース

Java Messaging Service (JMS)リソースは、JMSに関連するWebLogic Serverリソースです。サービスまたはアプリケーションとしてデプロイされているJMSリソースを保護できます。JMS宛先を保護するには、すべての宛先(JMSキューとJMSトピック)に対して集団的または個別(JMSサーバー上の1つのJMSキューまたはJMSトピック)に認可ポリシーを作成します。表9-12は、JMSリソースを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでオブジェクトが作成される際に定義されます。

表9-12 Oracle Entitlements ServerオブジェクトにマップされたJMS値

OESオブジェクト名 JMS値

アプリケーション

JMSリソースは特定のアプリケーションには属しません。このような場合、アプリケーションの名前のかわりにsharedが使用されます。アプリケーションsharedは、管理コンソールでアプリケーションが作成される際に定義されます。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はjms)。

リソースの親

宛先タイプ(topicまたはqueue)

リソース

リソース名


例9-13では、MyJMSQueueという名前のJMSキューをWebLogic Server構成ファイルconfig.xmlで構成します。

例9-13 config.xmlのJMSキュー・リソースの定義

<JMSServer Name="WSStoreForwardInternalJMSServermyserver"
           Store="FileStore" Targets="myserver">
  <JMSQueue CreationTime="1150241964468"
           JNDIName="JMSQueue" Name="MyJMSQueue"/>
</JMSServer>
 
<JMSConnectionFactory JNDIName="JmsConnectionFactory"
          Name="MyJMSConnectionFactory" Targets="myserver"/>

例9-14は、事前宣言済JMSキューを使用するJMSクライアントを示します。クライアントは、MyJMSQueueにテキスト・メッセージを送信します。

例9-14 JMSクライアントの例

//Instantiate the inital context
javax.naming.InitialContext initialContext = new javax.naming.InitialContext();
 
//Look up the JMS connection factory and the message queue
Queue messageQueue = (Queue) initialContext.lookup("JMSQueue");
JMSConnectionFactory factory =
    (JMSConnectionFactory) initialContext.lookup("JmsConnectionFactory");
 
//Create the queue connection and session
QueueConnection queueConnection = factory.createQueueConnection();
QueueSession session =
    queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
 
//Create a text message
TextMessage textMessage = session.createTextMessage();
textMessage.setText("Hello from the client!");
 
//Send message to the queue
QueueSender sender = session.createSender(messageQueue);
sender.send(textMessage);

JMSリソースの認可ポリシーの作成方法を示すために、クライアント・ロールのメンバーにFeedbackQueueという名前のJMSキューにメッセージを送信する権限を付与する必要があると仮定します。管理コンソールを使用して次のオブジェクトを作成します。

  • アプリケーション = shared

  • リソース・タイプ = jms

  • リソース = queue/FeedbackQueue

  • アクション = send

  • ロール = Client

次の2番目の認可ポリシーでは、FeedbackProcessorユーザーにFeedbackQueueという名前のJMSキューからメッセージを受信する権限を付与します。

  • アプリケーション = shared

  • リソース・タイプ = jms

  • リソース = queue/FeedbackQueue

  • アクション = send

  • ユーザー = myusers/FeedbackProcessor

アクション(sendとreceive)は認可ポリシーの一部であることに注意してください。ポリシーの結果は常にGRANTまたはDENYです。表9-13では、JMSリソースに対して実行できる特定のアクションについて説明します。

表9-13 JMSリソースのアクション・オプション

アクション 説明

send

キューまたはトピックにメッセージを送信するために必要です。これには、MessageProducer.send()QueueSender.send()およびTopicPublisher.publish()の各メソッドのコールが含まれます。

receive

キューまたはトピックにコンシューマを作成するために必要です。これには、Session.createConsumer()、Session.createDurableSubscriber()、QueueSession.createReceiver()、TopicSession.createSubscriber()、TopicSession.createDurableSubscriber()、Connection.createConnectionConsumer()、Connection.createDurableConnectionConsumer()、QueueConnection.createConnectionConsumer()、TopicConnection.createConnectionConsumer()およびTopicConnection.createDurableConnectionConsumer()の各メソッドのコールが含まれます。

browse

QueueBrowserインタフェースを使用してキューのメッセージを表示するために必要です。


表9-14に、認可ポリシーで条件の一部として使用できる、JMSリソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-14 JMSリソースによりサポートされている動的属性

属性名 説明

application

リソースをホストするアプリケーションの名前

destinationtype

JMS宛先タイプ(queue | topic)

resource

リソースの名前

action

JDBC操作名(send | receive | browse)



注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。


9.4.4.6 Webサービス・リソース

Webサービス・リソースは、Webサービスに関連するWebLogic Serverリソースです。Webサービスを保護するには、Webサービス・リソース全体、Webサービス・リソース操作のサブセット、Webサービス・リソースを実装しているステートレス・セッションEJB、またはステートレス・セッションEJB内のメソッドのサブセットに対する認可ポリシーを作成します。例9-15に、BasicWS_Componentという名前のWebサービス実装が含まれるBasicWSという名前のWebアプリケーションの構成を示します。

例9-15 Webアプリケーションの構成

<application Name="BasicWS"
             Path="applications/BasicWS.ear"
             StagedTargets="myserver"
<WebServiceComponent Name="BasicWS_Component"
                     Targets="myserver"
                     URI="BasicWS.war"/>
</application>

例9-16に、BasicWS.ear内のapplication.xmlファイルのWebアプリケーション・コンテキストの定義を示します。

例9-16 Webアプリケーション・コンテキストの構成

<module>
  <web>
    <web-uri>basic_javaclass.war</web-uri>
    <context-root>myservices</context-root>
  </web>
</module>

例9-17に、HelloWorldという名前のWebサービスの構成を示します。これは、WebアプリケーションWARファイル内のweb-services.xmlディスクリプタ・ファイルで定義されています。

例9-17 Webサービスの構成

<web-services>
  <web-service useSOAP12="false"
               name="HelloWorld"
               style="rpc"
               uri="/HelloWorld">
   <operations>
    <operation name="sayHello"
        method="sayHello(int,java.lang.String)"/>
   </operations>
  </web-service>
</web-services>

表9-15は、Webリソースを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでオブジェクトが作成される際に定義されます。

表9-15 Oracle Entitlements ServerオブジェクトにマップされたWebサービス値

OESオブジェクト名 Webサービス値

アプリケーション

web-services.xmlファイルで定義されているアプリケーションの名前(この場合はBasicWS)。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はwebservices)。

リソースの親

値として、application.xml構成ファイルの<context-root>要素で定義されているWebサービスのコンテキスト・パスを使用します(この場合はmyservices)。

リソース

web-services.xmlで定義されているWebサービス名。


HelloWorld WebサービスでsayHello()メソッドをコールするには、クライアントにアクションsayHelloが付与されている必要があります。一部のクライアントは、Webサービスを定義するWeb Services Definition Language (WSDL)ファイルへのアクセス権も必要になる可能性があります。WSDLファイルは、URLリソースとして定義されます。例9-18は、sayHello()メソッドをコールする前にクライアントが定義されたURLにあるWSDLファイルにアクセスできるコードです。

例9-18 WSDLにアクセスするクライアント・コード

String wsdlUrl = "http://localhost:7001//HelloWorld?WSDL";
HelloWorld service = new HelloWorld_Impl(wsdlUrl);   
HelloWorldPort port = service.getHelloWorldPort();
String result = port.sayHello(34, "Josh");

このコードを正常に実行するには、クライアントにWSDLファイル(URLリソース)に対するGET権限が付与されている必要があります。(URLの場合、リソース名が小文字であることに注意してください。)また、クライアントにWebサービス・リソースに対するGET権限が付与されている必要があります。(Webサービスの場合、リソース名は先頭文字が大文字であることに注意してください。)管理コンソールを使用してURLリソース認可ポリシーの次のオブジェクトを作成します。

  • アプリケーション = BasicWS

  • リソース・タイプ = url

  • リソース = myservices/helloworld

  • アクション = GET

  • ロール = SomeUser

管理コンソールを使用してWebサービス・リソース認可ポリシーの次のオブジェクトを作成します。

  • アプリケーション = BasicWS

  • リソース・タイプ = webservices

  • リソース = myservices/HelloWorld

  • アクション = sayHello

  • ロール = SomeUser

アクション(GETとsayHello)は認可ポリシーの一部であることに注意してください。ポリシーの結果は常にGRANTまたはDENYです。

表9-16に、認可ポリシーで条件の一部として使用できる、Webサービス・リソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-16 Webサービス・リソースによりサポートされている動的属性

属性名 説明

application

アプリケーション名

contextpath

Webアプリケーションのコンテキスト・パス

webservice

Webサービスの名前

method

コールされるWebサービス操作の名前

ParamN

メソッドのN番目のパラメータの値(Param1、Param2…など)



注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。


9.4.4.7 サーバー・リソース

サーバー・リソースにより、WebLogic Serverインスタンスの状態を制御できるユーザーが決まります。ユーザーがJavaコマンドでweblogic.Serverクラスを起動することによってサーバー・インスタンスを起動する場合、サーバー・リソースに対するポリシーは、実行される唯一のセキュリティ・チェックです。ドメイン内のすべてのWebLogic Serverインスタンスまたは個別のサーバーに適用される認可ポリシーを作成できます。例9-19は、myserverという名前のWebLogic Serverインスタンスの構成例です。

例9-19 WebLogic Serverインスタンスの構成

<Server ListenAddress=""
        ListenPort="7001"
        Machine="mymachine"
        Name="myserver"
        NativeIOEnabled="true"
        ReliableDeliveryPolicy="RMDefaultPolicy"
        ServerVersion="8.1.5.0">
    <SSL Enabled="false" HostnameVerificationIgnored="false"
        IdentityAndTrustLocations="KeyStores" Name="myserver"/>
</Server>

表9-17は、サーバー・リソースを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでエンティティが作成される際に定義されます。

表9-17 Oracle Entitlements Serverオブジェクトにマップされたサーバー・リソース値

OESオブジェクト名 サーバー・リソース値

アプリケーション

サーバー・リソースは特定のアプリケーションには属しません。このような場合、アプリケーションの名前のかわりにsharedが使用されます。アプリケーションsharedは、管理コンソールでアプリケーションが作成される際に定義されます。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はsvr)。

リソース

サーバー・インスタンス名。


サーバー・リソースの認可ポリシーの作成方法を示すために、管理ロールのメンバーにすべてのWebLogic Serverインスタンスをブートする権限を付与する必要があると仮定します。管理コンソールを使用して次のオブジェクトを作成します。

  • アプリケーション = shared

  • リソース・タイプ = svr

  • リソース = /lib/*

  • アクション = boot

  • ロール = Admin

次の2番目の認可ポリシーでは、管理ロールのメンバーにCentralServerという名前のWebLogic Serverインスタンスをシャットダウンまたは一時停止する権限を付与します。ポリシーは、権限が日曜日または他の曜日の午前2時から午前4時までの間のみ付与されるという点で制約されています。

  • アプリケーション = shared

  • リソース・タイプ = svr

  • リソース = CentralServer

  • アクション = shutdown / suspend

  • ロール = Admin

  • 条件 = 日曜日または他の曜日の午前2時から午前4時までの間のみ

アクション(bootとshutdown/suspend)は認可ポリシーの一部であることに注意してください。ポリシーの結果は常にGRANTまたはDENYです。表9-18では、サーバー・リソースに対して実行できる特定のアクションについて説明します。

表9-18 サーバー・リソースのアクション・オプション

アクション 説明

boot

管理サーバーまたは管理対象サーバーのどちらかのWebLogic Serverインスタンスを起動するために必要なアクション

shutdown

管理サーバーまたは管理対象サーバーのどちらかの実行中のWebLogic Serverインスタンスをシャットダウンするために必要なアクション

suspend

管理サーバーまたは管理対象サーバーのどちらかの実行中のWebLogic Serverインスタンスに対する他のログイン(特権管理アクション以外を目的とするログイン)を禁止するために必要なアクション

resume

管理サーバーまたは管理対象サーバーのどちらかの実行中のWebLogic Serverインスタンスへの非特権ログインを再度有効化するために必要なアクション


表9-19に、認可ポリシーで条件の一部として使用できる、サーバー・リソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-19 サーバー・リソースによりサポートされている動的属性

属性名 説明

server

リソースが関連付けられているサーバーの名前

action

サーバー・インスタンスに対して実行される操作の名前(boot | shutdown | suspend | resume)



注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。