Containerへのデプロイ時にSIPサーブレット・リソースにセキュリティ制約を適用する方法を説明します。内容は次のとおりです。API仕様では、SIPサーブレットの宣言型セキュリティおよびプログラムに基づくセキュリティの提供に使用できるデプロイメント記述子要素のセットを定義します。セキュリティ制約を宣言するための主要な方法は、sip.xmlデプロイメント記述子の中で1つまたは複数のsecurity-constraint要素を定義することです。security-constraint要素は保護対象であるresource-collectionの要素で定義されたSIPサーブレットで実際のリソースを定義します。security-constraintはリソースにアクセスするため公認されたロール名も識別します。security-constraint内で使用されるすべてのロール名は、sip.xmlのsecurity-role要素内の他の場所で定義されます。SIPサーブレットでは、サーブレット・コード内でロール名をプログラム的に参照し、そのハード・コード化されたロール名をデプロイメント時にsip.xmlのsecurity-role-ref要素内で別のロールにマップすることもできます。security-role-ref要素内でハード・コード化された名前にマップしようとするロールは、security-role要素内の他の場所で定義しておく必要があります。(EJB)にセキュリティ・ロールを伝播することもできます。run-as要素内で使用するロールは、sip.xmlの別個のsecurity-role要素内で定義する必要があります。API仕様の第14章には、SIPサーブレットで使用できるセキュリティのタイプに関して、さらに詳しい記述があります。SIPサーブレットのセキュリティ機能は、HTTPサーブレットで使用できるセキュリティ機能に似ています。Containerドキュメントの次の項には、HTTPサーブレットのセキュリティについての情報が記載されています。Securityプログラマーズ・ガイドの「Webアプリケーションのセキュリティ対策」では、サーブレットの宣言によるセキュリティ・モデルとプログラムによるセキュリティ・モデルについて概説されています。(EJB)のセキュリティ対策」のEJBのセキュリティ関連のデプロイメント記述子に関する項には、EJBのセキュリティ関連のデプロイメント記述子の全要素が記述されています。呼出し先のEJBにロールを伝播する際に使用するrun-as要素についても、ここで解説されています。例6-1「sip.xml内の宣言によるセキュリティ制約」に示す、サンプルのsip.xmlの抜粋も参照してください。SIPレスポンス・コードのどちらか適切なSIPレスポンス・コードをトリガーするようコンテナを構成することで、プロキシ・アプリケーションかUASアプリケーションかを識別できます。招待をプロキシする必要がある場合は、407コードが適切です。レジストラ・アプリケーションの場合は、401コードを使用する必要があります。SIPレスポンス・コードで応答するようコンテナを構成するには、セキュリティ制約に<proxy-authentication>要素を追加する必要があります。セキュリティ・レルムの指定sip.xmlファイル内の現在のセキュリティ・レルムの名前を、次のように指定する必要があります。ロール・マッピング機能SIPサーブレットをデプロイするときは、宣言およびプログラムによるセキュリティとして作成したsecurity-role定義を、サーブレット・コンテナで使用できる実際のプリンシパルやロールに割り当てる必要があります。Containerでは実際のプリンシパルやロールにsecurity-role定義をマップする際にweblogic.xmlでsecurity-role-assignment要素を使用します。security-role-assignmentは後でロール割当てを変更する際に必要な柔軟性の程度によって、2通りのセキュリティ・ロールのマップ方法を備えています。security-role-assignment要素では、sip.xml内で定義されたロールにマップするプリンシパル名とロールのリストを定義できます。この方法ではロール割当てをデプロイメント時に定義しますが、柔軟性が犠牲になります。ロールにプリンシパルを追加したり逆に削除したりするには、weblogic.xmlを編集して、SIPサーブレットを再デプロイする必要があります。security-role-assignment内でexternally-defined要素を使用する方法では、管理コンソールからいつでもプリンシパル名とロールをsip.xmlのロールに割り当てることができます。externally-defined要素を使用した場合、プリンシパルとロールをsip.xmlのロールに追加したり削除したりしてもSIPサーブレットを再デプロイする必要はありません。sip.xmlのrun-as要素へのロールの割当てに使用できるXML要素が2つあります。それはrun-as-principal-nameとrun-as-role-assignmentです。これらのロール割当て要素を使用した場合は、security-role-assignment要素よりも優先されます。これについては、「run-asロールの割当て」で説明します。weblogic.xml内でロール・マッピング要素を指定せずに、暗黙的なロール・マッピングを使用することもできます。これについては、「暗黙的なロール割当ての使用」で説明します。Containerのロール割当てについて詳しく説明します。Containerはsip.xml内のsecurity-role名を同名のロールに割り当てます。Containerセキュリティ・レルムで構成する必要があります。暗黙的なロール・マッピングを使用するには、weblogic.xmlでsecurity-role-assignment要素を省略します。run-asロールをマップするためのrun-as-principal-nameおよびrun-as-role-assignment要素も省略します。Containerはsip.xmlのsecurity-role要素を同名のロールに自動的にマップします。暗黙的なロール・マッピングは、sip.xmlで定義されたロール名が実際にセキュリティ・レルムにあるかどうかに関係なく行われます。Containerで暗黙的なロール割当てが使用されるときは常に警告メッセージが表示されます。sip.xmlで「everyone」ロールを使用し、weblogic.xmlでこのロールを明示的に割り当てなかった場合、次のような警告メッセージが表示されます。Containerセキュリティ・レルムで定義してあれば、この警告メッセージは無視できます。weblogic.xmlで明示的なロール・マッピングを定義すれば、このメッセージを無効にできます。暗黙的なロール割当ては、デプロイメント時のロール・マッピングを既知のプリンシパル名にハード・コード化したい場合に使用してください。security-role-assignmentを使用したロールの割当てweblogic.xml内でsecurity-role-assignment要素を使用すると、ロールの割当てをデプロイメント時に行えるほか、管理コンソールでいつでも行えます。次の項で、それぞれのアプローチについて説明します。Containerではweb.xmlデプロイメント記述子内でもsecurity-role要素を定義する必要があります。この要件は純粋なSIPサーブレットをデプロイする場合にも適用されます。Webアプリケーション用に確保されています)。rolename「暗黙的なロール割当ての使用」で説明されているように、sip.xml内で定義されているsecurity-roleが同名のロールに自動的にマップされます。例として、例6-1に、ロールroleadminでセキュリティ制約を定義するsip.xmlデプロイメント記述子の一部を示します。例6-2は、roleadminにプリンシパルとロールを割り当てるために、weblogic.xmlで定義されているsecurity-role-assignment要素を示します。Containerでは、このサーブレットを、roleadminロールも定義するweb.xmlデプロイメント記述子でデプロイする必要があります(例6-3を参照)。Containerは暗黙的なロール割当てを使用し、セキュリティ・レルムでroleadminロールが定義されているものと見なします。その場合、weblogic.xmlで割り当てられたプリンシパルとロールは無視されます。Containerセキュリティ・レルム内で使用できる1つまたは複数のプリンシパルやロールとの間でのマッピングを宣言します。Containerはsecurity-role-assignmentで指定された最初のプリンシパル名またはロール名をrun-asロールに割り当てます。例6-2「weblogic.xml内のsecurity-role-assignmentの例」は、security-role-assignment要素の例を示しています。この例では、例6-3「sip.Xml内の宣言によるセキュリティ制約」で定義されているroleadminロールに3人のユーザーを割り当てています。このロール割当てを変更するには、weblogic.xml記述子を編集し、SIPサーブレットを再デプロイする必要があります。管理コンソールを使用した動的なロールの割当て<principal-name>要素のかわりにexternally-defined要素を使用すると、sip.xmlのrole-name要素で定義したセキュリティ・ロールに、管理コンソールで割り当てるマッピングを適用することを指定できます。externally-defined要素を使用すると、デプロイメント時にセキュリティ・ロールごとに特定のセキュリティ・ロール・マッピングを指定する必要がなくなります。この場合、管理コンソールを使って、いつでもロール割当てを指定したり変更したりできます。この要素を使用するかどうかの選択はSIPサーブレットによって違ってくるはずなので、セキュリティ・レルムに関してデプロイメント記述子のロールとポリシーを無視オプションを選択する必要はありません(このオプションの選択は、管理コンソールの「セキュリティ」>「レルム」>「myrealm」コントロール・パネルの「一般」タブの今後の再デプロイの設定:フィールドで行います)。したがって、同じセキュリティ・レルム内で、セキュリティの指定や変更の手段としてデプロイメント記述子と管理コンソールをアプリケーションに応じて使い分けることができます。注意:セキュリティ・ロール名を指定するときは、次の規約と制限に従ってください。Language)推奨仕様でNmtokenに関して定義されているとおりです(http://www.w3.org/TR/REC-xml#NT-Nmtoken)。}を使用しないでください。セキュリティ・ロール名では大文字と小文字が区別されます。Oracleのネーミング・ルールではセキュリティ・ロール名は単数形です。例6-4は、例6-1「sip.xml内の宣言によるセキュリティ制約」で定義されているroleadminロールでのexternally-defined要素の使用例を示しています。Containerの管理コンソールを使用します。run-asロールの割当て「security-role-assignmentを使用したロールの割当て」で説明したsecurity-role-assignmentは、sip.xml内で定義されたrun-asロールをマップするのにも使用できます。weblogic.xml内で使われる2つの要素はsecurity-role-assignmentよりも優先されます。この2つの要素とは、run-as-principal-nameとrun-as-role-assignmentです。run-as-principal-nameでは、すべてのrun-asロール割当てに適用されるセキュリティ・レルム内の既存のプリンシパルを指定します。weblogic.xmlのservlet-descriptor要素内で定義する場合は、run-as-principal-nameがその他のrun-asロールのロール割当て要素より優先されます。run-as-role-assignmentでは、すべてのrun-asロール割当てに適用されるセキュリティ・レルム内の既存のロールまたはプリンシパルを指定します。この要素はweblogic-web-app要素内で定義します。weblogic.xmlの個々の要素の詳細は、「weblogic.xmlデプロイメント記述子リファレンス」を参照してください。run-asロール・マッピングならびに宣言およびプログラムによるセキュリティのロール・マッピング優先順位については、「SIPサーブレット・ロールのロール割当て優先順位」も参照してください。Containerでは、デプロイメント時にsip.xmlのロールをSIPコンテナ内の実際のロールにマップする方法が何通りかあります。sip.xml内で定義される宣言およびプログラムによるセキュリティに関しては、ロール割当ての優先順位は次のようになります。weblogic.xmlのsecurity-role-assignment要素内でsip.xmlのロールを割り当てた場合は、そのsecurity-role-assignmentが使われます。Containerでsecurity-role-assignmentを使用するには、web.xml内にロール定義が存在する必要があります。「重要な要件」を参照してください。使用できるsecurity-role-assignmentがない場合は(または必要なweb.xmlロール割当てがない場合)、暗黙的なロール割当てが使われます。run-asロール割当てに関しては、ロール割当ての優先順位は次のようになります。weblogic.xmlのservlet-descriptor内で定義したrun-as-principal-name要素内でsip.xmlのrun-asロールを割り当てた場合は、そのrun-as-principal-name割当てが使われます。Containerでrun-as-principal-nameを使用してロールを割り当てるには、web.xml内にロール定義が存在する必要があります。「重要な要件」を参照してください。weblogic.xmlのrun-as-role-assignment要素内でsip.xmlのrun-asロールを割り当てた場合は、そのrun-as-role-assignment要素が使われます。Containerでrun-as-role-assignmentを使用してロールを割り当てるには、web.xml内にロール定義が存在する必要があります。「重要な要件」を参照してください。run-asロールを割り当てる場合は、security-role-assignmentを使用します。Containerでsecurity-role-assignmentを使用するには、web.xml内にロール定義が存在する必要があります。「重要な要件」を参照してください。使用できるsecurity-role-assignmentがない場合は(または必要なweb.xmlロール割当てがない場合)、暗黙的なロール割当てが使われます。startupオプションを指定します。Containerでセキュリティ関連の追加のメッセージが標準出力に表示されるようになります。DTDには、この項で説明したロール・マッピング要素に関する詳細情報が記載されています。reserved.法律上の。