Vorgehensweise: Einrichten einer SignaturbestätigungHow to: Set Up a Signature Confirmation

Signaturbestätigung ist ein Mechanismus für einen nachrichteninitiator, um sicherzustellen, dass eine empfangene Antwort als Antwort auf die ursprüngliche Nachricht des Absenders generiert wurde.Signature confirmation is a mechanism for a message initiator to ensure that a received reply was generated in response to the sender's original message. Die Signaturbestätigung wird in der WS-Sicherheit 1.1-Spezifikation definiert.Signature confirmation is defined in the WS-Security 1.1 specification. Wenn ein Endpunkt WS-Sicherheit 1.0 unterstützt, können Sie keine Signaturbestätigung verwenden.If an endpoint supports WS-Security 1.0, you cannot use signature confirmation.

In den folgenden Verfahren wird beschrieben, wie die Signaturbestätigung mit AsymmetricSecurityBindingElement aktiviert wird.The following procedures specify how to enable signature confirmation using an AsymmetricSecurityBindingElement. Sie können das gleiche Verfahren mit SymmetricSecurityBindingElement verwenden.You can use the same procedure with a SymmetricSecurityBindingElement. Die Prozedur basiert, auf die grundlegenden Schritte, die im gefunden Vorgehensweise: Erstellen einer benutzerdefinierten Bindung mit dem SecurityBindingElement.The procedure builds upon the basic steps found in How to: Create a Custom Binding Using the SecurityBindingElement.

So aktivieren Sie die Signaturbestätigung in CodeTo enable signature confirmation in code

  1. Erstellen Sie eine Instanz der BindingElementCollection-Klasse.Create an instance of the BindingElementCollection class.

  2. Erstellen Sie eine Instanz von der SymmetricSecurityBindingElement Klasse.Create an instance of the SymmetricSecurityBindingElement class.

  3. Legen Sie RequireSignatureConfirmation auf true festSet the RequireSignatureConfirmation to true.

  4. Fügen Sie der Bindungsauflistung das Sicherheitselement hinzu.Add the security element to the binding collection.

  5. Erstellen Sie eine benutzerdefinierte Bindung gemäß Vorgehensweise: Erstellen einer benutzerdefinierten Bindung mit dem SecurityBindingElement.Create a custom binding, as specified in How to: Create a Custom Binding Using the SecurityBindingElement.

So aktivieren Sie die Signaturbestätigung in der KonfigurationTo enable signature confirmation in configuration

  1. Fügen Sie dem <customBinding>``<bindings>-Abschnitt der Konfigurationsdatei ein -Element hinzu.Add a <customBinding> element to the <bindings> section of the configuration file.

  2. Fügen Sie ein <binding>-Element hinzu, und legen Sie das Namensattribut auf einen passenden Wert fest.Add a <binding> element and set the name attribute to an appropriate value.

  3. Fügen Sie ein entsprechendes Codierungselement hinzu.Add an appropriate encoding element. Im folgenden Beispiel wird ein <TextMessageEncoding>-Element hinzugefügt.The following example adds a <TextMessageEncoding> element.

  4. Hinzufügen einer <security> untergeordnete Element, und legen die requireSignatureConfirmation -Attribut true.Add a <security> child element and set the requireSignatureConfirmation attribute to true.

  5. Dies ist optional.Optional. Um während der Bootstrap-signaturbestätigung zu aktivieren, fügen einen <SecureConversationBootstrap > untergeordnete Element, und legen die equireSignatureConfirmation -Attribut auf true.To enable signature confirmation during the bootstrap, add a <secureConversationBootstrap> child element and set the equireSignatureConfirmation attribute to true.

  6. Fügen Sie ein entsprechendes Transportelement hinzu.Add an appropriate transport element. Im folgenden Beispiel wird ein <HttpTransport >:The following example adds an <httpTransport>:

    <bindings>  
      <customBinding>  
        <binding name="SignatureConfirmationBinding">  
          <security requireSignatureConfirmation="true">  
            <secureConversationBootstrap requireSignatureConfirmation="true" />  
              </security>  
           <textMessageEncoding />  
             <httpTransport />  
        </binding>  
      </customBinding>  
    </bindings>  
    

BeispielExample

Der folgende Code erstellt eine Instanz von SymmetricSecurityBindingElement und legt die RequireSignatureConfirmation-Eigenschaft auf true fest.The following code creates an instance of the SymmetricSecurityBindingElement and sets the RequireSignatureConfirmation property to true. Beachten Sie, dass in diesem Beispiel das im vorangehenden Beispiel gezeigte <secureConversationBootstrap>-Element nicht verwendet wird.Note that this example does not use the <secureConversationBootstrap> element shown in the preceding example. In diesem Beispiel wird die Signaturbestätigung veranschaulicht, wenn ein Windows-(Kerberos-Protokoll)-Token verwendet wird.This example demonstrates signature confirmation when using a Windows (Kerberos protocol) token. In diesem Fall wird die Signatur des Clients in allen Antworten vom Dienst zurückgegeben und vom Client bestätigt.In this case, the signature of the client is returned in all responses from the service and is confirmed by the client.

private Binding CreateBinding()
{
    BindingElementCollection bindings = new BindingElementCollection();
    KerberosSecurityTokenParameters tokens = new KerberosSecurityTokenParameters();
    SymmetricSecurityBindingElement security = 
      new SymmetricSecurityBindingElement(tokens);

    // Require that every request and return be correlated.
    security.RequireSignatureConfirmation = true;

    bindings.Add(security);
    TextMessageEncodingBindingElement encoding = new TextMessageEncodingBindingElement();
    bindings.Add(encoding );
    HttpTransportBindingElement transport = new HttpTransportBindingElement();
    bindings.Add(transport);
    CustomBinding myBinding = new CustomBinding(bindings);
    return myBinding;
}
Private Function CreateBinding() As Binding 
    Dim bindings As New BindingElementCollection()
    Dim tokens As New KerberosSecurityTokenParameters()
    
    Dim security As New SymmetricSecurityBindingElement(tokens)
    
    ' Require that every request and return be correlated.
    security.RequireSignatureConfirmation = True
    
    bindings.Add(security)
    Dim encoding As New TextMessageEncodingBindingElement()
    bindings.Add(encoding)
    Dim transport As New HttpTransportBindingElement()
    bindings.Add(transport)
    Dim myBinding As New CustomBinding(bindings)
    Return myBinding    
End Function     

Siehe auchSee Also

SymmetricSecurityBindingElement
AsymmetricSecurityBindingElement
CreateMutualCertificateBindingElement
Vorgehensweise: Erstellen einer benutzerdefinierten Bindung mit dem SecurityBindingElementHow to: Create a Custom Binding Using the SecurityBindingElement
Vorgehensweise: Erstellen eines SecurityBindingElement für einen angegebenen AuthentifizierungsmodusHow to: Create a SecurityBindingElement for a Specified Authentication Mode