![]() ![]() ![]() ![]() |
以下の節では、SALT WS-SecurityPolicy (WSSP) 1.0 アサーションのリファレンス情報を示します。
Oracle SALT では、着信サービスに対して WS-Security プロトコル バージョン 1.0 の一部を実装しています。UsernameToken と X509v3Token による認証がサポートされています。WSDL 定義では、認証方法を説明するには WS-SecurityPolicy 1.0 アサーションが使用されます。Oracle WebLogic 9.x との相互運用性のために、WS-SecuirtyPolicy1.0 仕様 (2002) がサポートされています。
Oracle SALT のサポート対象 WS-SecurityPolicy 1.0 アサーションを以下に示します。
WebLogic 9.x でいくつかの拡張アサーションが使用され、SALT はそれらのサブセットのみ実装します。認証のために X509v3 トークンを使用する場合、整合性アサーションのみ使用されます。署名は、SOAP 本文のメッセージ部にのみ指定できます。
図 E-1 に、WS-Policy ファイルでの Oracle SALT のサポート対象 WS-SecurityPolicy 1.0 アサーションの形式のグラフィカル表現を示します。
コード リスト E-1 に、WSSP 1.0 アサーションによるユーザ名トークン認証を適用する方法を示します。
<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/WLS/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssp:Identity>
<wssp:SupportedTokens>
<wssp:SecurityToken TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken">
<wssp:Claims>
<wssp:UsePassword>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText</wssp:UsePassword>
</wssp:Claims>
</wssp:SecurityToken>
</wssp:SupportedTokens>
</wssp:Identity>
</wsp:Policy>
Oracle SALT には、代表的 Web サービス アプリケーションに使用できるいくつかの WS-SecurityPolicy 1.0 テンプレート ファイルが用意されています。これらのポリシー ファイルは TUXDIR/udataobj/salt/policy ディレクトリにあります。
これらのテンプレート ファイルは以下の場所値の形式で WSDF ファイルで直接参照することができます。
たとえば、signbody をコンフィグレーションする場合は、WSDF ファイルに次の signbody を指定することができます。
<Policy location=”salt:wssp1.0-signbody.xml” />
Oracle SALT では、WebLogic 9.x/10 WS-SecurityPolicy 1.0 アサーションの一部を実装します。WebLogic でサポートされる WSSP 1.0 アサーションのすべての一覧については、http://edocs.bea.com/wls/docs100/webserv_ref/sec_assert.html を参照してください。
デジタルで署名される SOAP メッセージ要素を標準化するのに使用されるアルゴリズムを指定します。
特定のセキュリティ トークンの型に関連付けられている追加のメタデータ情報を指定します。セキュリティ トークンの型によって、次の子要素を指定する必要があります。
SOAP メッセージの指定された部分をデジタルで署名する時に使用されたダイジェスト アルゴリズムを指定します。デジタルで署名する SOAP メッセージの部分を指定するには、<MessageParts> 兄弟要素を使用します。
認証のためにサポートされているセキュリティ トークンの型 (ユーザ名または X.509) を指定します。
デジタルで署名しなければならない SOAP メッセージ全体またはその一部ならびに SOAP メッセージを署名するために使用されたアルゴリズムとキーを指定します。
たとえば、Web サービスでは、SOAP メッセージ全体がデジタルで署名され、SHA1 を使用したアルゴリズムと RSA キーが受け付けられている必要がある可能性があります。
Integrity > の <SecurityToken> 子要素を使用して指定したセキュリティ トークンもデジタルで署名する必要があるかどうかを指定する。
|
署名しなければならない SOAP メッセージの部分を指定します。SALT では、特定のあらかじめ定義されたメッセージ部分の関数、wsp:Body()、つまりデジタルで署名する全体の SOAP 本文のみサポートします。
MessageParts アサーションは常に <Target> アサーションの子です。<Target> アサーションは、整合性アサーションの子である可能性があります (SOAP メッセージのデジタルで署名する方法を指定するために)。
署名しなければならない SOAP メッセージの部分を指定する方法については、「MessageParts の使用」を参照してください。
親要素によって、認証またはデジタル署名に対してサポートされているセキュリティ トークンを指定します。
この要素を <Identity> 親要素に定義すると、クライアント アプリケーションにおいて、Web サービスを呼び出す時に SOAP リクエストにセキュリティ トークンを添付する必要があります。たとえば、Web サービスでは、Web サービスによって Tuxedo サービスにアクセスできるようにクライアント アプリケーションがユーザ名トークンを提示する必要がある可能性があります。この要素は <Integrity> の一部である場合、デジタル署名に対して使用するトークンを指定します。
特定のセキュリティ トークンの型は、TokenType 属性の値と親要素によって決まります。
|
||
デジタル署名を計算するために使用された暗号書記法のアルゴリズムを指定します。
親要素によって、認証またはデジタル署名に対して使用できるサポートされているセキュリティ トークンのリストを指定します。
SOAP メッセージの署名するターゲットについての情報をカプセル化します。<Integrity> で使用する場合は <DigestAlgorithm>、<Transform>、および <MessageParts> 子要素を指定することができます。
理想的に、1 つまたは複数のターゲットが含めることができます。ただし、SALT にはデジタル署名に対してコンフィグレーションする SOAP 全体のみをサポートしているので、最大で 1 つのターゲットが必要となります。
署名された SOAP メッセージの部分に適用する変換アルゴリズムの URI を指定します。<Integrity> 要素の子要素のみで存在できます。
<Target> 親要素に表れた順序で実行した 0 または複数の変換を指定することができます。
|
WS-Policy ファイル内で <Integrity> アサーションを使用すると、デジタルで署名する SOAP メッセージのターゲットを指定するにはターゲット子アサーションも使用する必要があります。<Target> アサーションでは、デジタルで署名しなければならない SOAP メッセージの実際の部分を指定するために <MessageParts> 子アサーションを使用する必要があります。SOAP メッセージの部分を識別するために使用された方言を指定するには <MessageParts> の Dialect
属性を使用することができます。Oracle SALT Web サービスのセキュリティ モジュールでは、次の方言のみがサポートされています。
クライアントが message-secured Web サービスを呼び出すように SOAP メッセージ内に実際に存在しているメッセージ部分を指定するようにします。Web サービスのセキュリティ モジュールは、WS-Policy ファイルによりる署名または暗号化される必要がある部分を含まれていない着信 SOAP メッセージを受信すると、そのモジュールはエラーを返し、メッセージを呼び出すことに失敗します。
この節では、メッセージ部分を選択するために「http://schemas.xmlsoap.org/2002/12/wsse#part」方言で使用された SALT のサポート対象関数を示します。
署名する SOAP 全体のみ指定することができます。このためには wsp:Body()
関数をあらかじめ定義した方言を使用することをお勧めします。
コード リスト E-2 に、wsp:Body()
関数の例を示します。
<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>
![]() ![]() ![]() |