Procedura: configurare un emittente localeHow to: Configure a Local Issuer

In questo argomento viene illustrato come configurare un client per utilizzare un emittente locale per i token emessi.This topic describes how to configure a client to use a local issuer for issued tokens.

Spesso, quando un client comunica con un servizio federato, il servizio specifica l'indirizzo del servizio token di sicurezza previsto per l'emissione del token che il client utilizzerà per autenticarsi presso il servizio federato.Often, when a client communicates with a federated service, the service specifies the address of the security token service that is expected to issue the token the client will use to authenticate itself to the federated service. In alcuni casi, il client può essere configurato per utilizzare un emittente locale.In certain situations, the client may be configured to use a local issuer.

Windows Communication Foundation (WCF) viene utilizzato un emittente locale nei casi in cui l'indirizzo dell'emittente di un'associazione federativa http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous o null.Windows Communication Foundation (WCF) uses a local issuer in cases where the issuer address of a federated binding is http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous or null. In tali casi, è necessario configurare la classe ClientCredentials con l'indirizzo dell'emittente locale e con l'associazione da utilizzare per comunicare con tale emittente.In such cases, you must configure the ClientCredentials with the address of the local issuer and the binding to use to communicate with that issuer.

Nota

Se il SupportInteractive proprietà del ClientCredentials (classe) è impostata su true, non è specificato un indirizzo emittente locale e l'indirizzo dell'emittente specificato dal <wsFederationHttpBinding > o altri associazione federata è http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self, http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous, o null, quindi le finestre CardSpaceCardSpace emittente verrà utilizzato.If the SupportInteractive property of the ClientCredentials class is set to true, a local issuer address is not specified, and the issuer address specified by the <wsFederationHttpBinding> or other federated binding is http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self, http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous, or is null, then the Windows CardSpaceCardSpace issuer is used.

Per configurare l'emittente locale nel codiceTo configure the local issuer in code

  1. Creare una variabile di tipo IssuedTokenClientCredential.Create a variable of type IssuedTokenClientCredential

  2. Impostare la variabile sull'istanza restituita dalla proprietà IssuedToken della classe ClientCredentials.Set the variable to the instance returned from the IssuedToken property of the ClientCredentials class. L'istanza viene restituita dalla proprietà ClientCredentials del client (ereditata da ClientBase<TChannel>) o dalla proprietà Credentials della classe ChannelFactory:That instance is returned by the ClientCredentials property of the client (inherited from ClientBase<TChannel>) or the Credentials property of the ChannelFactory:

    IssuedTokenClientCredential itcc = client.ClientCredentials.IssuedToken;
    
    Dim itcc As IssuedTokenClientCredential = client.ClientCredentials.IssuedToken
    
  3. Impostare la proprietà LocalIssuerAddress su una nuova istanza di EndpointAddress, con l'indirizzo dell'emittente locale come argomento per il costruttore.Set the LocalIssuerAddress property to a new instance of the EndpointAddress, with the address of the local issuer as an argument to the constructor.

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

    In alternativa, creare una nuova istanza Uri come argomento per il costruttore.Alternatively, create a new Uri instance as an argument to the constructor.

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

    Il addressHeaders parametro è una matrice di AddressHeader istanze, come illustrato.The addressHeaders parameter is an array of AddressHeader instances, as shown.

    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. Impostare l'associazione per l'emittente locale utilizzando il LocalIssuerBinding proprietà.Set the binding for the local issuer using the LocalIssuerBinding property.

    itcc.LocalIssuerBinding = new WSHttpBinding("LocalIssuerBinding");
    
    itcc.LocalIssuerBinding = New WSHttpBinding("LocalIssuerBinding")
    
  5. Facoltativo.Optional. Aggiungere i comportamenti dell'endpoint configurati per l'emittente locale aggiungendo tali comportamenti alla raccolta restituita dalla proprietà LocalIssuerChannelBehaviors.Add configured endpoint behaviors for the local issuer by adding such behaviors to the collection returned by the LocalIssuerChannelBehaviors property.

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

Per configurare l'emittente locale nella configurazioneTo configure the local issuer in configuration

  1. Creare un <localIssuer > come figlio dell'elemento il <issuedToken > elemento che a sua volta figlio di <clientCredentials > elemento in un comportamento dell'endpoint.Create a <localIssuer> element as a child of the <issuedToken> element that is itself a child of the <clientCredentials> element in an endpoint behavior.

  2. Impostare l'attributo address sull'indirizzo dell'emittente locale che accetterà richieste del token.Set the address attribute to the address of the local issuer that will accept token requests.

  3. Impostare gli attributi binding e bindingConfiguration su valori che fanno riferimento all'associazione appropriata da utilizzare durante la comunicazione con l'endpoint dell'emittente locale.Set the binding and bindingConfiguration attributes to values that reference the appropriate binding to use when communicating with the local issuer endpoint.

  4. Facoltativo.Optional. Impostare il <identità > come figlio dell'elemento di <localIssuer> elemento e specificare le informazioni di identità per l'emittente locale.Set the <identity> element as a child of the <localIssuer> element and specify identity information for the local issuer.

  5. Facoltativo.Optional. Impostare il <intestazioni > come figlio dell'elemento di <localIssuer> elemento e specificare le intestazioni aggiuntive necessarie per indirizzare correttamente l'autorità emittente locale.Set the <headers> element as a child of the <localIssuer> element and specify additional headers that are required in order to correctly address the local issuer.

Sicurezza di .NET Framework.NET Framework Security

Si noti che, se per una determinata associazione vengono specificati l'indirizzo dell'emittente e l'associazione, l'emittente locale non verrà utilizzato per gli endpoint che utilizzano tale associazione.Note that if an issuer address and binding are specified for a given binding, the local issuer is not used for endpoints that use that binding. Per i client che prevedono di utilizzare sempre l'emittente locale, è necessario accertarsi di non utilizzare tale associazione o di modificare l'associazione in modo che l'indirizzo dell'emittente sia null.Clients who expect to always use the local issuer should ensure that they do not use such a binding or that they modify the binding so that the issuer address is null.

Vedere ancheSee Also

Procedura: Configurare le credenziali in un servizio federativoHow to: Configure Credentials on a Federation Service
Procedura: Creare un client federatoHow to: Create a Federated Client
Procedura: Creare una classe WSFederationHttpBindingHow to: Create a WSFederationHttpBinding