Vorgehensweise: Konfigurieren eines lokalen Ausstellers

In diesem Thema wird beschrieben, wie Sie einen Client für die Verwendung eines lokalen Ausstellers für ausgestellte Token konfigurieren.

Wenn ein Client mit einem Verbunddienst kommuniziert, wird vom Dienst die Adresse des Sicherheitstokendiensts angegeben, der das Token ausgeben soll, das vom Client für die Authentifizierung am Verbunddienst verwendet werden soll. In bestimmten Situationen kann der Client für die Verwendung eines lokalen Ausstellers konfiguriert werden.

Windows Communication Foundation (WCF) verwendet einen lokalen Aussteller in Fällen, in denen die Ausstelleradresse einer Verbundbindung http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous oder null lautet. In diesem Fall müssen Sie ClientCredentials mit der Adresse des lokalen Ausstellers und der für die Kommunikation mit diesem Aussteller zu verwendenden Bindung konfigurieren.

Hinweis

Wenn die Eigenschaft SupportInteractive der Klasse ClientCredentials auf true festgelegt wurde, keine lokale Ausstelleradresse angegeben wird und die durch <wsFederationHttpBinding> oder eine andere Verbundbindung angegebene Ausstelleradresse http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self, http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous or null lautet, wird der Windows CardSpace-Aussteller verwendet.

So konfigurieren Sie den lokalen Aussteller im Code

  1. Erstellen Sie eine Variable vom Typ IssuedTokenClientCredential.

  2. Legen Sie die Variable der Instanz fest, die von der IssuedToken-Eigenschaft der ClientCredentials-Klasse zurückgegeben wird. Diese Instanz wird von der ClientCredentials-Eigenschaft des Clients (geerbt von ClientBase<TChannel>) oder der Credentials-Eigenschaft der ChannelFactory zurückgegeben:

    IssuedTokenClientCredential itcc = client.ClientCredentials.IssuedToken;
    
    Dim itcc As IssuedTokenClientCredential = client.ClientCredentials.IssuedToken
    
  3. Legen Sie die LocalIssuerAddress-Eigenschaft auf eine neue Instanz der EndpointAddress fest, wobei die Adresse des lokalen Ausstellers als Argument für den Konstruktor verwendet wird.

    itcc.LocalIssuerAddress = new EndpointAddress("http://fabrikam.com/sts");
    
    itcc.LocalIssuerAddress = New EndpointAddress("http://fabrikam.com/sts")
    

    Sie können auch eine neue Uri-Instanz als Argument für den Konstruktor erstellen.

    itcc.LocalIssuerAddress = new EndpointAddress(new Uri("http://fabrikam.com/sts"),
        addressHeaders);
    
    itcc.LocalIssuerAddress = New EndpointAddress( _
    New Uri("http://fabrikam.com/sts"), addressHeaders)
    

    Der-Parameter addressHeaders ist ein Array von AddressHeader-Instanzen, wie hier gezeigt wird.

    itcc.LocalIssuerAddress = new EndpointAddress(
        new Uri("http://fabrikam.com/sts"),
        EndpointIdentity.CreateDnsIdentity("fabrikam.com"),
        addressHeaders);
    
    itcc.LocalIssuerAddress = New EndpointAddress(New Uri("http://fabrikam.com/sts"), _
    EndpointIdentity.CreateDnsIdentity("fabrikam.com"), addressHeaders)
    
  4. Legen Sie die Bindung für den lokalen Aussteller mithilfe der Eigenschaft LocalIssuerBinding fest.

    itcc.LocalIssuerBinding = new WSHttpBinding("LocalIssuerBinding");
    
    itcc.LocalIssuerBinding = New WSHttpBinding("LocalIssuerBinding")
    
  5. Optional. Fügen Sie die konfigurierten Endpunktverhalten für den lokalen Aussteller hinzu, indem Sie solche Verhalten der Auflistung hinzufügen, die von der LocalIssuerChannelBehaviors-Eigenschaft zurückgegeben wird.

    itcc.LocalIssuerChannelBehaviors.Add(myEndpointBehavior);
    
    itcc.LocalIssuerChannelBehaviors.Add(myEndpointBehavior)
    

So konfigurieren Sie den lokalen Aussteller in der Konfiguration

  1. Erstellen Sie ein <localIssuer>-Element als untergeordnetes Element des <issuedToken>-Elements, das wiederum ein untergeordnetes Element des <clientCredentials>-Elements in einem Endpunktverhalten ist.

  2. Legen Sie das address-Attribut auf die Adresse des lokalen Ausstellers fest, der Tokenanforderungen annimmt.

  3. Legen Sie das binding-Attribut und das bindingConfiguration-Attribut auf Werte fest, mit denen die für die Kommunikation mit dem lokalen Ausstellerendpunkt geeignete Bindung referenziert wird.

  4. Optional. Legen Sie das <identity>-Element als untergeordnetes Element des <localIssuer>-Elements fest, und geben Sie die Identitätsinformationen für den lokalen Aussteller an.

  5. Optional. Legen Sie das <headers>-Element als untergeordnetes Element des <localIssuer>-Elements fest, und geben Sie zusätzliche Header an, die erforderlich sind, um den lokalen Aussteller korrekt zu adressieren.

.NET Framework-Sicherheit

Beachten Sie, dass beim Angeben einer Ausstelleradresse und einer Ausstellerbindung für eine bestimmte Bindung nicht der lokale Aussteller für Endpunkte verwendet wird, die diese Bindung verwenden. Clients, die immer den lokalen Aussteller verwenden möchten, sollten sicherstellen, dass keine solche Bindung verwendet wird oder dass die Bindung so geändert wird, dass die Ausstelleradresse null lautet.

Weitere Informationen