Comment : configurer un émetteur local

Cette rubrique décrit comment configurer un client afin d'utiliser un émetteur local pour les jetons émis.

Lorsqu'un client communique avec un service fédéré, il arrive souvent que le service spécifie l'adresse du service d'émission de jeton de sécurité qui est attendue pour émettre le jeton que le client utilisera pour s'authentifier auprès du service fédéré. Dans certains cas, le client peut être configuré pour utiliser un émetteur local.

Windows Communication Foundation (WCF) utilise un émetteur local dans les cas où l'adresse de l'émetteur d'une liaison fédérée est https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous ou Null. Dans ce cas, vous devez configurer ClientCredentials avec l'adresse de l'émetteur local et la liaison à utiliser pour communiquer avec celui-ci.

Aa347715.note(fr-fr,VS.100).gifRemarque :
Si la propriété SupportInteractive de la classe ClientCredentials a la valeur true, qu'une adresse d'émetteur local n'est pas spécifiée, et que l'adresse d'émetteur spécifiée par wsFederationHttpBinding element ou une autre liaison fédérée est https://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self, https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous ou Null, alors l'émetteur CardSpace Windows est utilisé.

Pour configurer l'émetteur local dans le code

  1. Créez une variable de type IssuedTokenClientCredential

  2. Affectez à la variable la valeur de l'instance retournée par la propriété IssuedToken de la classe ClientCredentials. Cette instance est retournée par la propriété ClientCredentials du client (héritée de ClientBase) ou la propriété Credentials de ChannelFactory :

    Dim itcc As IssuedTokenClientCredential = client.ClientCredentials.IssuedToken
    
    IssuedTokenClientCredential itcc = client.ClientCredentials.IssuedToken;
    
  3. Affectez une nouvelle instance de EndpointAddress à la propriété LocalIssuerAddress, avec l'adresse de l'émetteur local comme argument au constructeur.

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

    Ou bien, créez une instance Uri comme argument au constructeur.

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

    Le paramètre addressHeaders est un tableau d'instances AddressHeader, tel qu'indiqué ci-après.

    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. Définissez la liaison de l'émetteur local à l'aide de la propriété LocalIssuerBinding.

    itcc.LocalIssuerBinding = New WSHttpBinding("LocalIssuerBinding")
    
    itcc.LocalIssuerBinding = new WSHttpBinding("LocalIssuerBinding");
    
  5. Facultatif. Ajoutez des comportements de point de terminaison configurés pour l'émetteur local en ajoutant ces comportements à la collection retournée par la propriété LocalIssuerChannelBehaviors.

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

Pour configurer l'émetteur local dans la configuration

  1. Créez un élément <localIssuer> en tant qu'enfant de l'élément <issuedToken> lui-même enfant de l'élément <clientCredentials> dans un comportement de point de terminaison.

  2. Affectez à l'attribut address l'adresse de l'émetteur local qui acceptera des demandes de jeton.

  3. Affectez aux attributs binding et bindingConfiguration des valeurs référençant la liaison appropriée à utiliser lors de la communication avec le point de terminaison de l'émetteur local.

  4. Facultatif. Définissez l'élément <identity> en tant qu'enfant de l'élément <localIssuer> et spécifiez les informations d'identité de l'émetteur local.

  5. Facultatif. Définissez l'élément <headers> en tant qu'enfant de l'élément <localIssuer> et spécifiez les en-têtes supplémentaires requis pour adresser correctement l'émetteur local.

Sécurité

Notez que si une liaison et une adresse d'émetteur sont spécifiées pour une liaison donnée, l'émetteur local n'est pas utilisé pour les points de terminaison qui utilisent cette liaison. Les clients qui prévoient d'utiliser systématiquement l'émetteur local doivent s'assurer de ne pas utiliser de liaison de ce type ou de modifier la liaison afin que l'adresse de l'émetteur soit Null.

Voir aussi

Tâches

Comment : configurer des informations d'identification sur un service FS (Federation Service)
Comment : créer un client fédéré
Comment : créer une liaison WSFederationHttpBinding