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 den 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

Falls die SupportInteractive-Eigenschaft der ClientCredentials-Klasse auf true festgelegt ist, keine lokale Ausstelleradresse angegeben ist und die vom <wsFederationHttpBinding> oder einer anderen Verbundbindung angegebene Ausstelleradresse http:\/\/schemas.xmlsoap.org\/ws\/2005\/05\/identity\/issuer\/self oder lautet bzw. null ist, 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)
    

    DeraddressHeaders-Parameter ist ein Array von AddressHeader-Instanzen, wie hier dargestellt.

    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 mit der LocalIssuerBinding-Eigenschaft 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><issuedToken><clientCredentials>-Elements, das wiederum ein untergeordnetes Element des -Elements in einem Endpunktverhalten darstellt.

  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 <Identität><-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 <Kopfzeilen><-Element als untergeordnetes Element des localIssuer>-Elements fest, und geben Sie zusätzliche Header an, die benötigt werden, um den lokalen Aussteller ordnungsgemäß 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.

Siehe auch

Vorgehensweise: Konfigurieren von Anmeldeinformationen auf einem Verbunddienst
Vorgehensweise: Erstellen eines Verbundclients
Vorgehensweise: Erstellen einer WSFederationHttpBinding