Vorgehensweise: Erstellen eines VerbundclientsHow to: Create a Federated Client

In Windows Communication Foundation (WCF) erstellt einen Client für eine Verbunddienst besteht aus drei Hauptschritte:In Windows Communication Foundation (WCF), creating a client for a federated service consists of three main steps:

  1. Konfigurieren einer <WsFederationHttpBinding > oder einer ähnlichen benutzerdefinierten Bindung.Configure a <wsFederationHttpBinding> or similar custom binding. Weitere Informationen zum Erstellen einer geeigneten Bindung finden Sie unter Vorgehensweise: Erstellen einer WSFederationHttpBinding.For more information about creating an appropriate binding, see How to: Create a WSFederationHttpBinding. Führen Sie alternativ die ServiceModel Metadata Utility Tool (Svcutil.exe) anhand der Metadaten-Endpunkt der Verbunddienst, eine Konfigurationsdatei für die Kommunikation mit dem Verbunddienst und eine oder mehrere generieren die Sicherheitstokendienste.Alternatively, run the ServiceModel Metadata Utility Tool (Svcutil.exe) against the metadata endpoint of the federated service to generate a configuration file for communicating with the federated service and one or more security token services.

  2. Legen Sie die Eigenschaften der IssuedTokenClientCredential-Instanz fest, die verschiedene Aspekte der Interaktion des Clients mit einem Sicherheitstokendienst steuert.Set the properties of the IssuedTokenClientCredential that controls various aspects of a client's interaction with a security token service.

  3. Legen Sie die Eigenschaften der X509CertificateRecipientClientCredential-Instanz fest, die Zertifikate zulässt, welche für die sichere Kommunikation mit gegebenen Endpunkten, z. B. Sicherheitstokendienste, erforderlich sind.Set the properties of the X509CertificateRecipientClientCredential, which allows certificates needed to communicate securely with given endpoints, such as security token services.

Hinweis

Es kann eine CryptographicException ausgelöst werden, wenn ein Client die Anmeldeinformationen eines anderen Benutzers, dessen Identität er angenommen hat, die WSFederationHttpBinding-Bindung oder ein benutzerdefiniert ausgestelltes Token und asymmetrische Schlüssel verwendet.A CryptographicException might be thrown when a client uses impersonated credentials, the WSFederationHttpBinding binding or a custom-issued token, and asymmetric keys. Asymmetrische Schlüssel werden in Verbindung mit der WSFederationHttpBinding-Bindung und benutzerdefiniert ausgestellten Token verwendet, wenn die IssuedKeyType-Eigenschaft bzw. die KeyType-Eigenschaft auf AsymmetricKey festgelegt ist.Asymmetric keys are used with the WSFederationHttpBinding binding and custom-issued tokens when the IssuedKeyType and KeyType properties, respectively, are set to AsymmetricKey. Die CryptographicException-Ausnahme wird ausgelöst, wenn der Client versucht, eine Nachricht zu senden, und kein Benutzerprofil für die Identität vorhanden ist, die der Client angenommen hat.The CryptographicException is thrown when the client attempts to send a message and a user profile doesn’t exist for the identity that the client is impersonating. Um dieses Problem zu minimieren, melden Sie sich am Clientcomputer an, oder rufen Sie LoadUserProfile vor dem Senden der Nachricht auf.To mitigate this issue, log on to the client computer or call LoadUserProfile before sending the message.

Dieses Thema enthält detaillierte Informationen zu diesen Verfahren.This topic provides detailed information about these procedures. Weitere Informationen zum Erstellen einer geeigneten Bindung finden Sie unter Vorgehensweise: Erstellen einer WSFederationHttpBinding.For more information about creating an appropriate binding, see How to: Create a WSFederationHttpBinding. Weitere Informationen zur Funktionsweise von eines Verbunddiensts finden Sie unter Verbund.For more information about how a federated service works, see Federation.

So generieren und untersuchen Sie die Konfiguration für einen VerbunddienstTo generate and examine the configuration for a federated service

  1. Führen Sie die ServiceModel Metadata Utility Tool (Svcutil.exe) mit der Adresse der Metadaten-URL des Diensts als Befehlszeilenparameter.Run the ServiceModel Metadata Utility Tool (Svcutil.exe) with the address of the metadata URL of the service as a command-line parameter.

  2. Öffnen Sie die generierte Konfigurationsdatei in einem geeigneten Editor.Open the generated configuration file in an appropriate editor.

  3. Überprüfen Sie die Attribute und Inhalt der generierten <Aussteller > und <IssuerMetadata > Elemente.Examine the attributes and content of any generated <issuer> and <issuerMetadata> elements. Diese Dateien befinden sich innerhalb der <Sicherheit > Elemente für die <WsFederationHttpBinding > oder benutzerdefinierte Bindungen Elemente.These are located within the <security> elements for the <wsFederationHttpBinding> or custom bindings elements. Stellen Sie sicher, dass die Adressen die erwarteten Domänenamen oder andere Adressinformationen enthalten.Ensure that the addresses contain the expected domain names or other address information. Sie müssen diese Informationen unbedingt überprüfen, weil sich der Client gegenüber diesen Adressen authentifiziert und Informationen wie Benutzername-/Kennwort-Paare offen legt.It is important to check this information because the client authenticates to these addresses and may disclose information such as user name/password pairs. Wenn es sich bei der Adresse nicht um die erwartete Adresse handelt, könnten Informationen für einen anderen als den vorgesehenen Empfänger zugänglich werden.If the address is not the expected address, this could result in information disclosure to an unintended recipient.

  4. Überprüfen Sie alle weiteren <IssuedTokenParameters > Elemente innerhalb der kommentierten out <alternativeIssuedTokenParameters> Element.Examine any additional <issuedTokenParameters> elements inside the commented out <alternativeIssuedTokenParameters> element. Wenn mit dem Tool Svcutil.exe eine Konfiguration für einen Verbunddienst generiert wird und der Verbunddienst oder einer der zwischengeschalteten Sicherheitstokendienste keine Ausstelleradresse, sondern eine Metadatenadresse für einen Sicherheitstokendienst angeben, der mehrere Endpunkte verfügbar macht, dann verweist die resultierende Konfigurationsdatei auf den ersten Endpunkt.When using the Svcutil.exe tool to generate configuration for a federated service, if the federated service or any intermediate security token services do not specify an issuer address, but rather specify a metadata address for a security token service that exposes multiple endpoints, the resulting configuration file refers to the first endpoint. Zusätzliche Endpunkte werden in der Konfigurationsdatei als auskommentierten <alternativeIssuedTokenParameters> Elemente.Additional endpoints are in the configuration file as commented-out <alternativeIssuedTokenParameters> elements.

    Bestimmen, ob eine der folgenden <issuedTokenParameters> vorzuziehen, die bereits in der Konfiguration vorhanden ist.Determine whether one of these <issuedTokenParameters> is preferable to the one already present in the configuration. Beispielsweise kann es der Client vorziehen, sich mit einem Windows CardSpaceCardSpace-Token statt einem Benutzer-/Kennwort-Paar gegenüber einem Sicherheitstokendienst zu authentifizieren.For example, the client may prefer to authenticate to a security token service using a Windows CardSpaceCardSpace token rather than a user name/password pair.

    Hinweis

    Wenn mehrere Sicherheitstokendienste durchlaufen werden müssen, bevor mit dem Dienst kommuniziert wird, ist es möglich, dass ein zwischengelagerter Sicherheitstokendienst den Client an einen falschen Sicherheitstokendienst weiterleitet.Where multiple security token services must be traversed before communicating with the service, it is possible for an intermediate security token service to direct the client to an incorrect security token service. Aus diesem Grund sicher, dass den Endpunkt für den Sicherheitstokendienst in der <IssuedTokenParameters > ist der erwartete Sicherheitstokendienst und keine unbekannte Sicherheitstokendienst.Therefore, ensure that the endpoint for the security token service in the <issuedTokenParameters> is the expected security token service and not an unknown security token service.

So konfigurieren Sie IssuedTokenClientCredential im CodeTo configure an IssuedTokenClientCredential in code

  1. Greifen Sie auf die IssuedTokenClientCredential zu und zwar über die IssuedToken-Eigenschaft der ClientCredentials-Klasse (die von der ClientCredentials-Eigenschaft der ClientBase<TChannel>-Klasse oder über die ChannelFactory-Klasse zurückgegeben wird), wie im folgenden Beispielcode gezeigt.Access the IssuedTokenClientCredential through the IssuedToken property of the ClientCredentials class (returned by the ClientCredentials property of the ClientBase<TChannel> class, or through the ChannelFactory class), as shown in the following example code.

    IssuedTokenClientCredential itcc = client.ClientCredentials.IssuedToken;
    
    Dim itcc As IssuedTokenClientCredential = client.ClientCredentials.IssuedToken
    
  2. Falls die Token nicht zwischengespeichert werden müssen, legen Sie die CacheIssuedTokens-Eigenschaft auf false fest.If token caching is not required, set the CacheIssuedTokens property to false. Die CacheIssuedTokens-Eigenschaft steuert, ob solche Token von einem Sicherheitstokendienst zwischengespeichert werden.The CacheIssuedTokens property controls whether such tokens from a security token service are cached. Wenn diese Eigenschaft auf false festgelegt wird, fordert der Client, sobald er sich gegenüber dem Verbunddienst authentifizieren muss, auch dann ein neues Token vom Sicherheitstokendienst an, wenn ein vorheriges Token noch gültig ist.If this property is set to false, the client requests a new token from the security token service whenever it must re-authenticate itself to the federated service, regardless of whether a previous token is still valid. Wenn diese Eigenschaft auf true festgelegt wird, verwendet der Client ein vorhandenes Token erneut, sobald er sich gegenüber dem Verbunddienst authentifizieren muss (solange das Token nicht ungültig geworden ist).If this property is set to true, the client reuses an existing token whenever it must re-authenticate itself to the federated service (as long as the token has not expired). Die Standardeinstellung ist true.The default is true.

  3. Wenn ein Zeitlimit für zwischengespeicherte Token erforderlich ist, legen Sie die MaxIssuedTokenCachingTime-Eigenschaft auf einen TimeSpan-Wert fest.If a time limit is required on cached tokens, set the MaxIssuedTokenCachingTime property to a TimeSpan value. Die Eigenschaft gibt an, wie lange ein Token zwischengespeichert werden kann.The property specifies how long a token can be cached. Nachdem die angegebene Zeitspanne verstrichen ist, wird das Token aus dem Clientcache entfernt.After the specified time span has elapsed, the token is removed from the client cache. Standardmäßig werden Token unendlich lange zwischengespeichert.By default, tokens are cached indefinitely. Im folgenden Beispiel wird die Zeitspanne auf 10 Minuten eingestellt.The following example sets the time span to 10 minutes.

    itcc.MaxIssuedTokenCachingTime = new TimeSpan(0, 10, 0);
    
    itcc.MaxIssuedTokenCachingTime = New TimeSpan(0, 10, 0)
    
  4. Dies ist optional.Optional. Legen Sie die IssuedTokenRenewalThresholdPercentage-Eigenschaft auf einen Prozentwert fest.Set the IssuedTokenRenewalThresholdPercentage to a percentage. Der Standardwert lautet 60 (Prozent).The default is 60 (percent). Die Eigenschaft gibt einen Prozentwert der Gültigkeitsdauer des Tokens an.The property specifies a percentage of the token's validity period. Wenn das ausgestellte Token beispielsweise 10 Stunden lang gültig ist und IssuedTokenRenewalThresholdPercentage auf 80 festgelegt wird, dann wird das Token nach acht Stunden erneuert.For example, if the issued token is valid for 10 hours and IssuedTokenRenewalThresholdPercentage is set to 80, then the token is renewed after eight hours. Im folgenden Beispiel wird als Wert 80 Prozent festgelegt.The following example sets the value to 80 percent.

    itcc.IssuedTokenRenewalThresholdPercentage = 80;
    
    itcc.IssuedTokenRenewalThresholdPercentage = 80
    

    Das Erneuerungsintervall, das durch die Gültigkeitsdauer des Tokens und den IssuedTokenRenewalThresholdPercentage-Wert bestimmt wird, wird durch den MaxIssuedTokenCachingTime-Wert außer Kraft gesetzt, wenn die Zwischenspeicherungsdauer kürzer als die durch den Erneuerungsschwellenwert festgelegte Zeitspanne ist.The renewal interval determined by the token validity period and the IssuedTokenRenewalThresholdPercentage value is overridden by the MaxIssuedTokenCachingTime value in cases where the caching time is shorter than the renewal threshold time. Wenn beispielsweise das Produkt aus IssuedTokenRenewalThresholdPercentage und der Gültigkeitsdauer des Tokens acht Stunden beträgt und der MaxIssuedTokenCachingTime-Wert gleich 10 Minuten ist, dann fordert der Client alle 10 Minuten vom Sicherheitstokendienst ein aktualisiertes Token an.For example, if the product of IssuedTokenRenewalThresholdPercentage and the token's duration is eight hours, and the MaxIssuedTokenCachingTime value is 10 minutes, the client contacts the security token service for an updated token every 10 minutes.

  5. Wenn ein anderer Schlüsselentropiemodus als CombinedEntropy für eine Bindung erforderlich ist, bei der nicht Nachrichtensicherheit oder Transportsicherheit mit Nachrichtenanmeldeinformationen verwendet wird (beispielsweiseIf a key entropy mode other than CombinedEntropy is needed on a binding that does not use message security or transport security with message credentials (for example. eine Bindung, die über kein SecurityBindingElement verfügt), legen Sie die DefaultKeyEntropyMode-Eigenschaft auf einen geeigneten Wert fest.the binding does not have a SecurityBindingElement), set the DefaultKeyEntropyMode property to an appropriate value. Die Entropie Modus bestimmt, ob der symmetrische Schlüssel gesteuert werden können, mithilfe der DefaultKeyEntropyMode Eigenschaft.The entropy mode determines whether symmetric keys can be controlled using the DefaultKeyEntropyMode property. Diese Standardeinstellung lautet CombinedEntropy, wobei sowohl der Client als auch der Tokenaussteller Daten bereitstellen, durch deren Kombination der tatsächliche Schlüssel erzeugt wird.This default is CombinedEntropy, where both the client and the token issuer provide data that is combined to produce the actual key. Andere Werte lauten ClientEntropy und ServerEntropy, womit festgelegt wird, dass der gesamte Schlüssel vom Client bzw. vom Server angegeben wird.Other values are ClientEntropy and ServerEntropy, which means the entire key is specified by the client or the server, respectively. Im folgenden Beispiel wird die Eigenschaft so festgelegt, dass nur die Serverdaten für den Schlüssel verwendet werden.The following example sets the property to use only the server data for the key.

    itcc.DefaultKeyEntropyMode = SecurityKeyEntropyMode.ServerEntropy;
    
    itcc.DefaultKeyEntropyMode = SecurityKeyEntropyMode.ServerEntropy
    

    Hinweis

    Wenn in einem Sicherheitstokendienst oder einer Dienstbindung ein SecurityBindingElement vorhanden ist, wird der auf DefaultKeyEntropyMode festgelegte IssuedTokenClientCredential durch die KeyEntropyMode-Eigenschaft von SecurityBindingElement überschrieben.If a SecurityBindingElement is present in a security token service or service binding, the DefaultKeyEntropyMode set on IssuedTokenClientCredential is overridden by the KeyEntropyMode property of the SecurityBindingElement.

  6. Konfigurieren Sie ausstellerspezifische Endpunktverhalten, indem Sie diese Verhalten der Auflistung hinzufügen, die von der IssuerChannelBehaviors-Eigenschaft zurückgegeben wird.Configure any issuer-specific endpoint behaviors by adding them to the collection returned by the IssuerChannelBehaviors property.

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

So konfigurieren Sie IssuedTokenClientCredential in der KonfigurationTo configure the IssuedTokenClientCredential in configuration

  1. Erstellen einer <IssuedToken > Element als untergeordnetes Element von der <IssuedToken > Element in ein Endpunktverhalten.Create an <issuedToken> element as a child of the <issuedToken> element in an endpoint behavior.

  2. Wenn das Zwischenspeichern von token nicht erforderlich ist, legen Sie die cacheIssuedTokens Attribut (von der <issuedToken> Element) auf false.If token caching is not required, set the cacheIssuedTokens attribute (of the <issuedToken> element) to false.

  3. Wenn ein Zeitlimit für zwischengespeicherte Token erforderlich ist, legen Sie die maxIssuedTokenCachingTime -Attribut der <issuedToken> Element auf einen geeigneten Wert.If a time limit is required on cached tokens, set the maxIssuedTokenCachingTime attribute on the <issuedToken> element to an appropriate value. Zum Beispiel:For example:
    <issuedToken maxIssuedTokenCachingTime='00:10:00' />

  4. Wenn ein anderer Wert als den Standardwert gewünscht wird, legen Sie die issuedTokenRenewalThresholdPercentage -Attribut der <issuedToken> Element auf einen geeigneten Wert, z. B.:If a value other than the default is preferred, set the issuedTokenRenewalThresholdPercentage attribute on the <issuedToken> element to an appropriate value, for example:

    <issuedToken issuedTokenRenewalThresholdPercentage = "80" />  
    
  5. Wenn ein anderer Schlüsselentropiemodus als CombinedEntropy für eine Bindung erforderlich ist, bei der nicht Nachrichtensicherheit oder Transportsicherheit mit Nachrichtenanmeldeinformationen verwendet wird (beispielsweise eine Bindung, die über kein SecurityBindingElement verfügt), dann legen Sie das defaultKeyEntropyMode-Attribut für das <issuedToken>ServerEntropy-Element je nach Bedarf aufServerEntropyoderClientEntropy fest.If a key entropy mode other than CombinedEntropy is on a binding that does not use message security or transport security with message credentials (for example, the binding does not have a SecurityBindingElement), set the defaultKeyEntropyMode attribute on the <issuedToken> element to a either ServerEntropy or ClientEntropy as required.

    <issuedToken defaultKeyEntropyMode = "ServerEntropy" />  
    
  6. Dies ist optional.Optional. Konfigurieren Sie alle ausstellerspezifische benutzerdefiniertes Endpunktverhalten, indem Sie erstellen eine <issuerChannelBehaviors>-Element als untergeordnetes Element des der <issuedToken> Element.Configure any issuer-specific custom endpoint behavior by creating an <issuerChannelBehaviors> element as a child of the <issuedToken> element. Für jedes Verhalten erstellen eine <add>-Element als untergeordnetes Element von der <issuerChannelBehaviors> Element.For each behavior, create an <add> element as a child of the <issuerChannelBehaviors> element. Geben Sie die Ausstelleradresse das Verhalten durch Festlegen der issuerAddress -Attribut der <add> Element.Specify the issuer address of the behavior by setting the issuerAddress attribute on the <add> element. Geben Sie das Verhalten selbst durch Festlegen der behaviorConfiguration -Attribut der <add> Element.Specify the behavior itself by setting the behaviorConfiguration attribute on the <add> element.

    <issuerChannelBehaviors>  
    <add issuerAddress="http://fabrikam.org/sts" behaviorConfiguration="FabrikamSTS" />  
    </issuerChannelBehaviors>  
    

So konfigurieren Sie X509CertificateRecipientClientCredential im CodeTo configure an X509CertificateRecipientClientCredential in code

  1. Greifen Sie über die X509CertificateRecipientClientCredential-Eigenschaft der ServiceCertificate-Eigenschaft der ClientCredentials-Klasse oder die ClientBase<TChannel>-Eigenschaft auf ChannelFactory zu.Access the X509CertificateRecipientClientCredential through the ServiceCertificate property of the ClientCredentials property of the ClientBase<TChannel> class or the ChannelFactory property.

    X509CertificateRecipientClientCredential rcc =
        client.ClientCredentials.ServiceCertificate;
    
    Dim rcc As X509CertificateRecipientClientCredential = _
    client.ClientCredentials.ServiceCertificate
    
  2. Wenn eine X509Certificate2-Instanz für das Zertifikat eines gegebenen Endpunkts verfügbar ist, verwenden Sie die Add-Methode der Auflistung, die von der ScopedCertificates-Eigenschaft zurückgegeben wird.If an X509Certificate2 instance is available for the certificate for a given endpoint, use the Add method of the collection returned by the ScopedCertificates property.

    rcc.ScopedCertificates.Add(new Uri("http://fabrikam.com/sts"), cert);
    
    rcc.ScopedCertificates.Add(New Uri("http://fabrikam.com/sts"), cert)
    
  3. Wenn keine X509Certificate2-Instanz verfügbar ist, verwenden Sie die SetScopedCertificate-Methode der X509CertificateRecipientClientCredential-Klasse, wie im folgenden Beispiel gezeigt.If an X509Certificate2 instance is not available, use the SetScopedCertificate method of the X509CertificateRecipientClientCredential class as shown in the following example.

    public void snippet20(CalculatorClient client)
    {
        X509CertificateRecipientClientCredential rcc = client.ClientCredentials.ServiceCertificate;
        rcc.SetScopedCertificate(StoreLocation.CurrentUser,
                                 StoreName.TrustedPeople,
                                 X509FindType.FindBySubjectName,
                                 "FabrikamSTS",
                                 new Uri("http://fabrikam.com/sts"));
    }
    
    rcc.SetScopedCertificate(StoreLocation.CurrentUser, _
                StoreName.TrustedPeople, _
                X509FindType.FindBySubjectName, _
                "FabrikamSTS", _
                New Uri("http://fabrikam.com/sts"))
    

So konfigurieren Sie X509CertificateRecipientClientCredential in der KonfigurationTo configure an X509CertificateRecipientClientCredential in configuration

  1. Erstellen einer <ScopedCertificates > Element als untergeordnetes Element von der <ServiceCertificate > Element, das sich selbst untergeordnet ist die < ClientCredentials > Element in ein Endpunktverhalten.Create a <scopedCertificates> element as a child of the <serviceCertificate> element that is itself a child of the <clientCredentials> element in an endpoint behavior.

  2. Erstellen Sie ein <add>-Element als untergeordnetes Element des <scopedCertificates>-Elements.Create an <add> element as a child of the <scopedCertificates> element. Geben Sie Werte für die Attribute storeLocation, storeName, x509FindType und findValue an, um auf das geeignete Zertifikat zu verweisen.Specify values for the storeLocation, storeName, x509FindType, and findValue attributes to refer to the appropriate certificate. Legen Sie das targetUri-Attribut auf einen Wert fest, der die Adresse des Endpunkts angibt, für den das Zertifikat verwendet werden soll. Dies wird im folgenden Beispiel gezeigt.Set the targetUri attribute to a value that provides the address of the endpoint that the certificate is to be used for, as shown in the following example.

    <scopedCertificates>  
     <add targetUri="http://fabrikam.com/sts"   
          storeLocation="CurrentUser"  
          storeName="TrustedPeople"  
          x509FindType="FindBySubjectName"  
          findValue="FabrikamSTS" />  
    </scopedCertificates>  
    

BeispielExample

Im nächsten Codebeispiel wird eine Instanz der IssuedTokenClientCredential-Klasse im Code konfiguriert.The following code sample configures an instance of the IssuedTokenClientCredential class in code.

// This method configures the IssuedToken property of the Credentials property of a proxy/channel factory
public static void ConfigureIssuedTokenClientCredentials(ChannelFactory cf, bool cacheTokens,
                                                          TimeSpan tokenCacheTime, int renewalPercentage,
                                                          SecurityKeyEntropyMode entropyMode
                                                          )
{
    if (cf == null)
    {
        throw new ArgumentNullException("ChannelFactory");
    }
    // Set the CacheIssuedTokens property
    cf.Credentials.IssuedToken.CacheIssuedTokens = cacheTokens;

    // Set the MaxIssuedTokenCachingTime property
    cf.Credentials.IssuedToken.MaxIssuedTokenCachingTime = tokenCacheTime;

    // Set the IssuedTokenRenewalThresholdPercentage property
    cf.Credentials.IssuedToken.IssuedTokenRenewalThresholdPercentage = renewalPercentage;

    // Set the DefaulyKeyEntropyMode property
    cf.Credentials.IssuedToken.DefaultKeyEntropyMode = entropyMode;
}

' This method configures the IssuedToken property of the Credentials property of a proxy/channel factory
Public Shared Sub ConfigureIssuedTokenClientCredentials(ByVal cf As ChannelFactory, _
                                                        ByVal cacheTokens As Boolean, _
                                                        ByVal tokenCacheTime As TimeSpan, _
                                                        ByVal renewalPercentage As Integer, _
                                                        ByVal entropyMode As SecurityKeyEntropyMode)
    If cf Is Nothing Then
        Throw New ArgumentNullException("ChannelFactory")
    End If
    ' Set the CacheIssuedTokens property
    With cf.Credentials.IssuedToken
        .CacheIssuedTokens = cacheTokens

        ' Set the MaxIssuedTokenCachingTime property
        .MaxIssuedTokenCachingTime = tokenCacheTime

        ' Set the IssuedTokenRenewalThresholdPercentage property
        .IssuedTokenRenewalThresholdPercentage = renewalPercentage

        ' Set the DefaulyKeyEntropyMode property
        .DefaultKeyEntropyMode = entropyMode
    End With
End Sub

.NET Framework-Sicherheit.NET Framework Security

Um einer möglichen Enthüllung von Informationen vorzubeugen, sollten Clients, die mit dem Tool Svcutil.exe Metadaten von Verbundendpunkten verarbeiten, sicherstellen, dass es sich bei den resultierenden Sicherheitstokendienst-Adressen auch tatsächlich um die erwarteten Adressen handelt.To prevent possible information disclosure, clients that are running the Svcutil.exe tool to process metadata from federated endpoints should ensure that the resulting security token service addresses are what they expect. Dies ist insbesondere wichtig, wenn ein Sicherheitstokendienst mehrere Endpunkte verfügbar macht, weil das Tool Svcutil.exe die Konfigurationsdatei generiert, die mit einem solchen Endpunkt verwendet werden soll. Sie müssen überprüfen, ob die Konfigurationsdatei für den richtigen Endpunkt erzeugt wurde.This is especially important when a security token service exposes multiple endpoints, because the Svcutil.exe tool generates the resulting configuration file to use the first such endpoint, which may not be the one the client should be using.

LocalIssuer erforderlichLocalIssuer Required

Wenn erwartet wird, dass Clients immer einen lokalen Aussteller verwenden, ist Folgendes zu beachten: Die Standardausgabe von Svcutil.exe resultiert darin, dass der lokale Aussteller nicht verwendet wird, wenn der vorletzte Sicherheitstokendienst in der Kette eine Ausstelleradresse oder eine Ausstellermetaadresse angibt.If clients are expected to always use a local issuer, note the following: the default output of Svcutil.exe results in the local issuer not being used if the second-to-last security token service in the chain specifies an issuer address or issuer metadata address.

Weitere Informationen zum Einrichten der LocalIssuerAddress, LocalIssuerBinding, und LocalIssuerChannelBehaviors Eigenschaften der IssuedTokenClientCredential Klasse, finden Sie unter wie: Konfigurieren eines lokalen Ausstellers.For more information about setting the LocalIssuerAddress, LocalIssuerBinding, and LocalIssuerChannelBehaviors properties of the IssuedTokenClientCredential class, see How to: Configure a Local Issuer.

Zertifikate mit GültigkeitsbereichScoped Certificates

Wenn zur Kommunikation mit einem Sicherheitstokendienst Dienstzertifikate angegeben werden müssen, weil keine Zertifikatsaushandlung verwendet wird, können diese mit der ScopedCertificates-Eigenschaft der X509CertificateRecipientClientCredential-Klasse angegeben werden.If service certificates must be specified for communicating with any of the security token services, typically because certificate negotiation is not being used, they can be specified using the ScopedCertificates property of the X509CertificateRecipientClientCredential class. Die SetDefaultCertificate-Methode akzeptiert die beiden Parameter Uri und X509Certificate2.The SetDefaultCertificate method takes a Uri and an X509Certificate2 as parameters. Das angegebene Zertifikat wird zur Kommunikation mit Endpunkten beim angegebenen URI verwendet.The specified certificate is used when communicating with endpoints at the specified URI. Stattdessen können Sie auch mit der SetScopedCertificate-Methode ein Zertifikat der Auflistung hinzufügen, die von der ScopedCertificates-Eigenschaft zurückgegeben wird.Alternatively, you can use the SetScopedCertificate method to add a certificate to the collection returned by the ScopedCertificates property.

Hinweis

Das Clientkonzept von Zertifikaten, deren Bereich durch einen gegebenen URI festgelegt wird, gilt nur für Anwendungen, die ausgehende Aufrufe an Dienste durchführen, die bei diesen URIs Endpunkte verfügbar machen.The client idea of certificates that are scoped to a given URI applies only to applications that are making outbound calls to services that expose endpoints at those URIs. Es gilt nicht für Zertifikate, die verwendet werden, zum Signieren von ausgestellter Tokens, wie die konfigurierten auf dem Server in der Auflistung zurückgegeben, durch die KnownCertificates von der IssuedTokenServiceCredential Klasse.It does not apply to certificates that are used to sign issued tokens, such as those configured on the server in the collection returned by the KnownCertificates of the IssuedTokenServiceCredential class. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren von Anmeldeinformationen auf einem Verbunddienst.For more information, see How to: Configure Credentials on a Federation Service.

Siehe auchSee Also

VerbundbeispielFederation Sample
Vorgehensweise: Deaktivieren sicherer Sitzungen auf einer WSFederationHttpBindingHow to: Disable Secure Sessions on a WSFederationHttpBinding
Vorgehensweise: Erstellen einer WSFederationHttpBindingHow to: Create a WSFederationHttpBinding
Vorgehensweise: Konfigurieren von Anmeldeinformationen für einen VerbunddienstHow to: Configure Credentials on a Federation Service
Vorgehensweise: Konfigurieren eines lokalen AusstellersHow to: Configure a Local Issuer
Sicherheitsüberlegungen für MetadatenSecurity Considerations with Metadata
Vorgehensweise: Sichere MetadatenendpunkteHow to: Secure Metadata Endpoints