Condividi tramite


Procedura: configurare un emittente locale

In questo argomento viene illustrato come configurare un client per utilizzare un emittente locale per i token emessi.

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. In alcune situazioni, è possibile configurare il client per utilizzare un emittente locale.

In Windows Communication Foundation (WCF) viene utilizzato un emittente locale quando l'indirizzo dell'emittente di un'associazione federata è https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous o 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.

Aa347715.note(it-it,VS.100).gifNota:
Se la proprietà SupportInteractive della classe ClientCredentials è impostata su true, l'indirizzo dell'emittente locale non viene specificato e l'indirizzo dell'emittente specificato dall'wsFederationHttpBinding element o da un'altra associazione federata è https://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self, https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous o è null, viene utilizzato l'emittente CardSpace di Windows.

Per configurare l'emittente locale nel codice

  1. Creare una variabile di tipo IssuedTokenClientCredential.

  2. Impostare la variabile sull'istanza restituita dalla proprietà IssuedToken della classe ClientCredentials. L'istanza viene restituita dalla proprietà ClientCredentials del client (ereditata da ClientBase) o dalla proprietà Credentials della classe ChannelFactory:

    Dim itcc As IssuedTokenClientCredential = client.ClientCredentials.IssuedToken
    
    IssuedTokenClientCredential itcc = 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.

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

    In alternativa, creare una nuova istanza Uri come argomento per il costruttore.

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

    Il parametro addressHeaders è una matrice di istanze di AddressHeader, come illustrato.

    itcc.LocalIssuerAddress = New EndpointAddress(New Uri("https://fabrikam.com/sts"), _
    EndpointIdentity.CreateDnsIdentity("fabrikam.com"), addressHeaders)
    
    itcc.LocalIssuerAddress = new EndpointAddress(
        new Uri("https://fabrikam.com/sts"),
        EndpointIdentity.CreateDnsIdentity("fabrikam.com"),
        addressHeaders);
    
  4. Impostare l'associazione per l'emittente locale utilizzando la proprietà LocalIssuerBinding.

    itcc.LocalIssuerBinding = New WSHttpBinding("LocalIssuerBinding")
    
    itcc.LocalIssuerBinding = new WSHttpBinding("LocalIssuerBinding");
    
  5. Facoltativo. Aggiungere i comportamenti dell'endpoint configurati per l'emittente locale aggiungendo tali comportamenti alla raccolta restituita dalla proprietà LocalIssuerChannelBehaviors.

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

Per configurare l'emittente locale nella configurazione

  1. Creare un elemento <localIssuer><issuedToken> come figlio dell'elemento<clientCredentials>, che è a sua volta figlio dell'elemento in un comportamento dell'endpoint.

  2. Impostare l'attributo address sull'indirizzo dell'emittente locale che accetterà richieste del token.

  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.

  4. Facoltativo. Impostare l'elemento <identity>< come figlio dell'elemento localIssuer> e specificare le informazioni di identità per l'emittente locale.

  5. Facoltativo. Impostare l'elemento <headers>< come figlio dell'elemento localIssuer> e specificare le intestazioni aggiuntive necessarie per indirizzare correttamente l'emittente locale.

Sicurezza

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

Vedere anche

Attività

Procedura: configurare le credenziali in un servizio federativo
Procedura: creare un client federato
Procedura: creare una classe WSFederationHttpBinding