方法: 信頼できるセッション内でメッセージをセキュリティで保護する
ここでは、信頼できるセッション内で交換されるメッセージに対して、メッセージ レベルのセキュリティを有効にするために必要な手順について説明します。このとき、信頼できるセッションがオプションでサポートされているシステム指定のバインディングを使用します。 セキュリティで保護された信頼できるセッションを有効にするには、コードを使用して強制的に行うか、構成ファイルで宣言します。 この手順では、クライアントとサービスの構成ファイルを使用して、セキュリティで保護された信頼できるセッションを有効にします。
この手順の主な部分は、次の 3 つのタスクで構成されます。
クライアントとサービスのメッセージ交換は信頼できるセッション内で行うことを指定します。
信頼できるセッション内でメッセージ レベルのセキュリティを要求します。
サービスに対する認証時にクライアントが使用する必要があるクライアント資格情報を指定します。
最初のタスクで重要なのは、エンドポイント構成要素に (この例の場合) MessageSecurity
という名前のバインディング構成を参照する bindingConfiguration
属性が含まれていることです。 <binding> 構成要素は、この名前を参照して、<reliableSession> 要素の enabled
属性を true
に設定することで、信頼できるセッションを有効にします。 信頼できるセッション内で使用できる順序付き配信の保証は、ordered
属性を true
に設定することによって要求できます。
この構成手順のベースであるソース例については、「WS 信頼できるセッション」を参照してください。
2 番目のタスクの必須項目は、クライアントとサービスの <binding> 要素に含まれている <security> 要素の mode
属性を Message
に設定することによって実現されます。
3 番目のタスクの必須項目は、クライアントとサービスの <security> 要素に含まれている <message> 要素の clientCredentialType
属性を Certificate
に設定することによって実現されます。
Note
信頼できるセッションでメッセージ セキュリティを使用するときに、信頼できるメッセージ機能は最初の失敗で例外をスローするのではなく、タイムアウトが発生するまで未認証のクライアントの認証を試みます。
信頼できるセッションを使用するためにサービスを WSHttpBinding で構成する
この手順については、「方法: 信頼されたセッション内のメッセージを変換する」を参照してください。
信頼できるセッションを使用するためにクライアントを WSHttpBinding で構成する
この手順については、「方法: 信頼されたセッション内のメッセージを変換する」を参照してください。
構成でモードと ClientCredentialType を設定する
構成ファイルの <bindings> 要素に適切なバインディング要素を追加します。 次の例では、<wsHttpBinding> 要素を追加しています。
<binding> 要素を追加し、
name
属性を適切な値に設定します。 この例では、MessageSecurity
という名前を使用しています。<security> 要素を追加し、
mode
属性をMessage
を設定します。<security> 要素内に <message> 要素を追加し、
clientCredentialType
属性をCertificate
に設定します。
<wsHttpBinding>
<binding name="MessageSecurity">
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>