承認トークンを使用した Web サービスの保護
承認トークンは、SOAP メッセージ署名を署名するために使用します。 通常、承認トークンを使用して、<Signature> エレメント全体を署名し、オプションで追加のメッセージ・パーツを署名します。 トランスポート・セキュリティーが使用される場合には、承認トークンを使用して、 SOAP セキュリティー・ヘッダーのタイム・スタンプを署名する必要があります。
承認サポート・トークン・アサーション
- EndorsingSupportingTokens - このトークンは署名および暗号化される必要はありません。
- SignedEndorsingSupportingTokens - このトークンは署名される必要があります。
- EndorsingEncryptedSupportingTokens - このトークンは暗号化される必要があります。
- SignedEndorsingEncryptedSupportingTokens - このトークンは署名される必要があります。
承認トークンとしての X509Token
承認トークンとして X509Token を構成することができます。 承認トークンとしての X509Token の構成は、AssymmetricBinding における InitiatorToken としての X509Token の構成に似ています。 承認トークンとして X509Token を構成するには、 上記のいずれかの承認トークン・アサーションに X509Token が含まれるポリシーと、 server.xml ファイル内の <SignatureProperties> エレメントが必要です。
<sp:EndorsingSupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssX509V3Token10/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:EndorsingSupportingTokens>
承認トークンとして X509Token を構成した後、 server.xml ファイルで <signatureProperties> エレメントを定義して、 鍵ストアと署名鍵を特定する必要があります。<signatureProperties> エレメントの構成は、 メッセージ署名用の X509Token の構成と同じです。 詳しくは、『X.509 トークンを使用した Web サービスの保護』を参照してください。
承認トークンとしての UsernameToken
承認トークンとしての UsernameToken の構成は、ポリシーに HashPassword がない点を除いて、PasswordDigest による UsernameToken の構成と似ています。 承認トークンとして UsernameToken を構成するには、 承認サポート・トークン・アサーションのセクションで説明したいずれかの承認トークン・アサーションに UsernameToken が含まれたポリシーが必要です。
<sp:SignedEndorsingEncryptedSupportingTokens>
<wsp:Policy>
<sp:UsernameToken
sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssUsernameToken10 />
<sp:RequireDerivedKeys />
</wsp:Policy>
</sp:UsernameToken>
</wsp:Policy>
</sp:SignedEndorsingEncryptedSupportingTokens>
このサンプル・ポリシーの断片では、 UsernameToken が残りのメッセージとともに署名および暗号化されます。その後、 UsernameToken からのパスワードから派生した鍵を使用して、メッセージ署名に署名します。
UsernameToken 承認トークンは派生した鍵を使用するため、 プロバイダー・アプリケーションにパスワードの CallbackHandler を実装して構成してください。 詳しくは、『UsernameToken を使用した Web サービス・クライアントの認証』を参照してください。