SALT WS-SecurityPolicyアサーション1.0のリファレンス
以下の項では、SALT WS-SecurityPolicy (WSSP) 1.0アサーションのリファレンス情報を示します。
SALTでは、着信サービスに対してWS-Securityプロトコル・バージョン1.0の一部を実装しています。UsernameTokenとX509v3Tokenによる認証がサポートされています。WSDL定義では、認証方法を説明するにはWS-SecurityPolicy 1.0アサーションが使用されます。Oracle WebLogic 9.xとの相互運用性のために、WS-SecuirtyPolicy1.0仕様(2002)がサポートされています。
次に、SALTのサポート対象WS-SecurityPolicy 1.0アサーションをすべて示します。
•
|
UsernameTokenアサーションとX509Tokenアサーション
|
WebLogic 9.xでいくつかの拡張アサーションが使用され、SALTはそれらのサブセットのみ実装します。認証のためにX509v3トークンを使用する場合、整合性アサーションのみ使用されます。署名は、SOAP本文のメッセージ部にのみ指定できます。
SALT WSSP 1.0ポリシー・アサーションの書式
図F-1には、WS-PolicyファイルでのSALTのサポート対象WS-SecurityPolicy 1.0アサーションの書式のグラフィカルな表現を示します。
SALT WSSP 1.0アサーション・ファイルの例
リストF-1には、WSSP 1.0アサーションによるユーザー名トークン認証を適用する方法を示します。
リストF-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>
SALTには、代表的Webサービス・アプリケーションに使用できるいくつかのWS-SecurityPolicy 1.0テンプレート・ファイルが用意されています。これらのポリシー・ファイルは
TUXDIR/udataobj/salt/policyディレクトリにあります。
SALT WSSP 1.0ポリシーのテンプレート・ファイル
|
|
wssp1.0-UsernameToken-plain-auth.xml
|
ユーザー名トークンとプレーンなテキスト・パスワードが認証リクエストで送信されます。
|
|
X509 V3バイナリ・トークン(証明書)は認証リクエストで送信されます。必要に応じて、リクエストは、リクエスト中のいくつかのメッセージ部で署名されます。
|
|
|
これらのテンプレート・ファイルは以下の場所値の形式でWSDFファイルで直接参照することができます。
salt:<template_file_name>
たとえば、signbodyを構成する場合は、WSDFファイルに次のsignbodyを指定することができます。
<Policy location=”salt:wssp1.0-signbody.xml” />
<CanonicalizationAlgorithm>
デジタルで署名されるSOAPメッセージ要素を標準化するのに使用されるアルゴリズムを指定します。
<CanonicalizationAlgorithm>属性
|
|
|
|
署名されるSOAPメッセージを標準化するために使用されるアルゴリズム。
SALTでは、次の標準化するアルゴリズムのみサポートしています。
|
|
特定のセキュリティ・トークンの型に関連付けられている追加のメタデータ情報を指定します。セキュリティ・トークンの型によって、次の子要素を指定する必要があります。
•
|
ユーザー名トークンについて、ユーザー名を認証するために使用するパスワードの種類を指定するには、 <UsePassword>子要素を指定する必要があります。
|
SOAPメッセージの指定部分にデジタル署名する際に使用するダイジェスト・アルゴリズムを指定します。デジタル署名するSOAPメッセージの一部を指定するには、
<MessageParts>兄弟要素を使用します。
|
|
|
|
SOAPメッセージの指定された部分をデジタルで署名する時に使用されたダイジェスト・アルゴリズム。
SALTでは、次のダイジェスト・アルゴリズムのみサポートしています。
http://www.w3.org/2000/09/xmldsig#sha1
|
|
認証のためにサポートされているセキュリティ・トークンの型(ユーザー名またはX.509)を指定します。
デジタルで署名しなければならないSOAPメッセージ全体またはその一部ならびにSOAPメッセージを署名するために使用されたアルゴリズムとキーを指定します。
たとえば、Webサービスでは、SOAPメッセージ全体がデジタルで署名され、SHA1を使用したアルゴリズムとRSAキーが受け付けられている必要がある可能性があります。
|
|
|
|
SOAPメッセージの指定部分に加え、< Integrity>の <SecurityToken>子要素で指定したセキュリティ・トークンにもデジタル署名するかどうかを指定します。
この属性に対する有効な値はtrueまたはfalseです。デフォルト値はtrueです。
|
|
署名しなければならないSOAPメッセージの部分を指定します。SALTでは、特定のあらかじめ定義されたメッセージ部分の関数、wsp:Body()、つまりデジタルで署名する全体のSOAP本文のみサポートします。
MessagePartsアサーションは常に、
<Target>アサーションの子となります。
<Target>アサーションは、(SOAPメッセージをデジタルで署名する方法を指定するための)整合性アサーションの子である可能性があります。
|
|
|
|
署名しなければならないSOAPメッセージの部分を識別するために使用した方言を指定します。
•
|
http://schemas.xmlsoap.org/2002/12/wsse#part
|
署名しなければならないSOAPメッセージの部分を指定するために使用する便利な方言。
|
|
親要素によって、認証またはデジタル署名に対してサポートされているセキュリティ・トークンを指定します。
この要素を
<Identity>親要素に定義すると、クライアント・アプリケーションにおいて、Webサービスを呼び出すときにSOAPリクエストにセキュリティ・トークンを添付する必要があります。たとえば、Webサービスでは、WebサービスによってTuxedoサービスにアクセスできるようにクライアント・アプリケーションがユーザー名トークンを提示する必要がある可能性があります。この要素が
<Integrity>の一部である場合、デジタル署名に対して使用するトークンを指定します。
特定のセキュリティ・トークンの型は、TokenType属性の値と親要素によって決まります。
|
|
|
|
SOAPメッセージにトークンを含むかどうかを指定します。
<Integrity>アサーションで使用される場合、この属性のデフォルト値はtrueです。
この属性の値は、 <Identity>アサーションで使用する場合は、明示的にfalseに設定したとしても、常にtrueです。
|
|
|
セキュリティ・トークンの型を指定します。有効な値は次のとおりです:
•
|
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3 (バイナリX.509 v3トークンを指定)
|
•
|
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken (ユーザー名トークンの指定用)
|
|
|
デジタル署名を計算するために使用された暗号書記法のアルゴリズムを指定します。
|
|
|
|
署名を計算するために使用された暗号書記法のアルゴリズムを指定します。
注意:
|
企業において使用する証明書と互換性のあるアルゴリズムが指定されていることを確認すること。
|
•
|
http://www.w3.org/2000/09/xmldsig#rsa-sha1
|
•
|
http://www.w3.org/2000/09/xmldsig#dsa-sha1
|
|
|
親要素によって、認証またはデジタル署名に対して使用できるサポートされているセキュリティ・トークンのリストを指定します。
理想的に、1つまたは複数のターゲットが含めることができます。ただし、SALTにはデジタル署名に対して構成するSOAP全体のみをサポートしているので、最大で1つのターゲットが必要となります。
署名されたSOAPメッセージの部分に適用する変換アルゴリズムのURIを指定します。
<Integrity>要素の子要素のみで存在できます。
0個以上の任意の数のトランスフォーメーションを指定できます。指定したトランスフォーメーションは、
<Target>親要素で指定されている順序で実行されます。
|
|
|
|
SALTでは、次の変換アルゴリズムのみサポートしています。
•
|
http://www.w3.org/2000/09/xmldsig#base64 (Base64デコード変換)
|
|
|
SOAPメッセージにパスワードのプレーンなテキストまたはダイジェストを表示するかどうかを指定します。この要素はユーザー名トークンのみに使用されます。SALTでは、プレーンなテキストとして指定する必要があります。
|
|
|
|
パスワードのタイプを指定する。SALTでは、クリア・テキスト・パスワードのみサポートされている。URIの値は次のとおりです。
•
|
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText
|
SOAPメッセージでクリア・テキスト・パスワードを使用する必要があることを指定します。
注意:
|
下位互換性のため、前のURIには最初に「www」を指定することも可能です。例:
|
–
|
http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText
|
|
|
WS-Policyファイル内で
<Integrity>アサーションを使用すると、デジタルで署名するSOAPメッセージのターゲットを指定するには、Targetの子アサーションも使用する必要があります。
<Target>アサーションでは、デジタルで署名する必要があるSOAPメッセージの実際の部分を指定するために
<MessageParts>子アサーションを使用する必要があります。SOAPメッセージの部分を識別するために使用する方言を指定するには、
<MessageParts>の
Dialect属性を使用できます。SALT Webサービスのセキュリティ・モジュールでは、次の言語のみがサポートされています。
クライアントがmessage-secured Webサービスを呼び出すようにSOAPメッセージ内に実際に存在しているメッセージ部分を指定するようにします。Webサービスのセキュリティ・モジュールは、WS-Policyファイルによりる署名または暗号化される必要がある部分を含まれていない着信SOAPメッセージを受信すると、そのモジュールはエラーを返し、メッセージを呼び出すことに失敗します。
この項では、メッセージ部分を選択するために
http://schemas.xmlsoap.org/2002/12/wsse#part方言で使用されたSALTのサポート対象関数を示します。
|
|
|
部分的に選択するSOAPメッセージ全体を指定します。
|
署名するSOAP全体のみ指定することができます。このためには
wsp:Body()関数をあらかじめ定義した方言を使用することをお薦めします。
<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>