Partager via


<wsFederationHttpBinding>

Définit une liaison qui prend en charge WS-Federation.

<Configuration>
   <system.serviceModel>
     <Liaisons>
       <wsFederationHttpBinding>

Syntaxe

<wsFederationHttpBinding>
  <binding bypassProxyOnLocal="Boolean"
           closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildcard/Exact/WeakWildcard"
           maxBufferPoolSize="integer"
           maxReceivedMessageSize="integer"
           messageEncoding="Text/Mtom"
           name="string"
           openTimeout="TimeSpan"
           privacyNoticeAt="Uri"
           privacyNoticeVersion="Integer"
           proxyAddress="Uri"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/ Utf8TextEncoding"
           transactionFlow="Boolean"
           useDefaultWebProxy="Boolean">
    <security mode="None/Message/TransportWithMessageCredential">
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               issuedTokenType="string"
               issuedKeyType="SymmetricKey/PublicKey"
               negotiateServiceCredential="Boolean">
        <claimTypeRequirements>
          <add claimType="URI"
               isOptional="Boolean" />
        </claimTypeRequirements>
        <issuer address="Uri" >
          <headers>
            <add name="String"
                 namespace="String" />
          </headers>
          <identity>
            <certificate encodedValue="String" />
            <certificateReference findValue="String"
                                  isChainIncluded="Boolean"
                                  storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
                                  storeLocation="LocalMachine/CurrentUser"
                                  X509FindType="System.Security.Cryptography.X509certificates.X509findtype" />
            <dns value="String" />
            <rsa value="String" />
            <servicePrincipalName value="String" />
            <usePrincipalName value="String" />
          </identity>
        </issuer>
        <issuerMetadata address="String">
          <headers>
            <add name="String"
                 namespace="String" />
          </headers>
          <identity>
            <certificate encodedValue="String" />
            <certificateReference findValue="String"
                                  isChainIncluded="Boolean"
                                  storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
                                  storeLocation="LocalMachine/CurrentUser"
                                  x509FindType="System.Security.Cryptography.X509certificates.X509findtype" />
            <dns value="String" />
            <rsa value="String" />
            <servicePrincipalName value="String" />
            <usePrincipalName value="String" />
          </identity>
        </issuerMetadata>
        <tokenRequestParameters>
          <xmlElement>
          </xmlElement>
        </tokenRequestParameters>
      </message>
    </security>
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan"
                     enabled="Boolean" />
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</wsFederationHttpBinding>

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributes

Caractéristique Descriptif
bypassProxyOnLocal Valeur booléenne qui indique s’il faut contourner le serveur proxy pour les adresses locales. La valeur par défaut est false.
closeTimeout Valeur TimeSpan qui spécifie l’intervalle de temps fourni pour qu’une opération de fermeture se termine. Cette valeur doit être supérieure ou égale à Zero. La valeur par défaut est 00:01:00.
hostnameComparisonMode Spécifie le mode de comparaison de noms d’hôte HTTP utilisé pour analyser les URI. Cet attribut est de type HostNameComparisonMode, qui indique si le nom d’hôte est utilisé pour atteindre le service lors de la correspondance sur l’URI. La valeur par défaut est StrongWildcard, qui ignore le nom d’hôte dans la correspondance.
maxBufferPoolSize Entier qui spécifie la taille maximale du pool de mémoires tampons pour cette liaison. La valeur par défaut est 524 288 octets (512 * 1024). De nombreuses parties de Windows Communication Foundation (WCF) utilisent des mémoires tampons. La création et la destruction de mémoires tampons chaque fois qu’elles sont utilisées est coûteuse et le garbage collection pour les mémoires tampons est également coûteux. Avec les pools de mémoires tampons, vous pouvez prendre une mémoire tampon à partir du pool, l’utiliser et la retourner au pool une fois que vous avez terminé. Ainsi, la surcharge dans la création et la destruction de mémoires tampons est évitée.
maxReceivedMessageSize Entier positif qui spécifie la taille maximale du message, en octets, y compris les en-têtes, qui peuvent être reçus sur un canal configuré avec cette liaison. L’expéditeur d’un message dépassant cette limite reçoit une erreur SOAP. Le destinataire supprime le message et crée une entrée de l’événement dans le journal des traces. La valeur par défaut est 65536.
messageEncoding Définit l’encodeur utilisé pour encoder le message. Les valeurs valides sont les suivantes :

- Texte : utilisez un encodeur de message texte.
- Mtom : Utilisez un encodeur MTOM (Message Transmission Organization Mechanism) 1.0 (MTOM).

La valeur par défaut est Text.

Cet attribut est de type WSMessageEncoding.
nom Chaîne qui contient le nom de configuration de la liaison. Cette valeur doit être unique, car elle est utilisée comme identification pour la liaison. À compter de .NET Framework 4, les liaisons et les comportements ne sont pas nécessaires pour avoir un nom. Pour plus d’informations sur la configuration par défaut et les liaisons sans nom et les comportements, consultez Configuration simplifiée et Configuration simplifiée pour les services WCF.
openTimeout Valeur TimeSpan qui spécifie l’intervalle de temps fourni pour qu’une opération ouverte se termine. Cette valeur doit être supérieure ou égale à Zero. La valeur par défaut est 00:01:00.
privacyNoticeAt Chaîne qui spécifie un URI auquel se trouve la notification de confidentialité.
privacyNoticeVersion Entier qui spécifie la version de la notification de confidentialité actuelle.
proxyAddress URI qui spécifie l’adresse du proxy HTTP. Si useDefaultWebProxy c’est truele cas, ce paramètre doit être null. La valeur par défaut est null.
receiveTimeout Valeur TimeSpan qui spécifie l’intervalle de temps fourni pour qu’une opération de réception se termine. Cette valeur doit être supérieure ou égale à Zero. La valeur par défaut est 00:10:00.
sendTimeout Valeur TimeSpan qui spécifie l’intervalle de temps fourni pour qu’une opération d’envoi se termine. Cette valeur doit être supérieure ou égale à Zero. La valeur par défaut est 00:01:00.
textEncoding Définit l’encodage du jeu de caractères à utiliser pour émettre des messages sur la liaison. Les valeurs valides sont les suivantes :

- BigEndianUnicode : encodage BigEndian Unicode.
- Unicode : encodage 16 bits.
- UTF8 : encodage 8 bits

La valeur par défaut est UTF8. Cet attribut est de type Encoding..
transactionFlow Valeur booléenne qui spécifie si la liaison prend en charge le flux WS-Transactions. La valeur par défaut est false.
useDefaultWebProxy Valeur booléenne qui indique si le proxy HTTP configuré automatiquement par le système est utilisé. L’adresse du proxy doit être null (autrement dit, pas définie) si cet attribut est true. La valeur par défaut est true.

Éléments enfants

Élément Descriptif
<sécurité> Définit les paramètres de sécurité du message. Cet élément est de type WSFederationHttpSecurityElement.
<readerQuotas> Définit les contraintes relatives à la complexité des messages SOAP qui peuvent être traités par les points de terminaison configurés avec cette liaison. Cet élément est de type XmlDictionaryReaderQuotasElement.
<reliableSession> Spécifie si des sessions fiables sont établies entre les points de terminaison de canal.

Éléments parents

Élément Descriptif
<Liaisons> Cet élément contient une collection de liaisons standard et personnalisées.

Remarques

La fédération est la possibilité de partager des identités entre plusieurs systèmes pour l’authentification et l’autorisation. Ces identités peuvent faire référence à des utilisateurs ou à des ordinateurs. Le protocole HTTP fédéré prend en charge la sécurité SOAP ainsi que la sécurité en mode mixte, mais il ne prend pas en charge exclusivement l’utilisation de la sécurité de transport. Cette liaison fournit la prise en charge de Windows Communication Foundation (WCF) pour le protocole WS-Federation. Les services configurés avec cette liaison doivent utiliser le transport HTTP.

Les liaisons se composent d’une pile d’éléments de liaison. Pile d’éléments de liaison dans

wsFederationHttpBinding est identique à celui contenu dans wsHttpBinding

lorsque <la sécurité> est définie sur la valeur par défaut de Message.

Le wsFederationHttpBinding contrôle les détails des paramètres de sécurité des messages dans <le message>. Notez que l’élément <de sécurité> fournit un accès uniquement car la sécurité utilisée par la liaison ne peut pas être modifiée une fois la liaison créée.

Il wsFederationHttpBinding fournit également un attribut privacyNoticeAt à définir et récupérer l’URI auquel se trouve la notification de confidentialité.

La sécurisation de la stratégie est particulièrement importante dans les scénarios de fédération. La recommandation est d’utiliser une certaine forme de sécurité, telle que HTTPS, pour protéger la stratégie contre les utilisateurs malveillants.

Dans les scénarios de fédération utilisant cette liaison, la stratégie de service a potentiellement des informations importantes telles que la clé à utiliser pour chiffrer le jeton SAML émis, le type de revendications à placer dans le jeton, etc. Si cette stratégie est falsifiée, un attaquant peut découvrir la clé du jeton émis, ce qui entraîne une falsification supplémentaire, la divulgation d’informations et d’autres comportements malveillants. Pour éviter cela, la stratégie doit être obtenue en toute sécurité (par exemple à l’aide de HTTPS) à partir du service.

Pour plus d’informations sur cette liaison, consultez How to : Create a WSFederationHttpBinding.

Example

<configuration>
  <system.ServiceModel>
    <bindings>
      <wsFederationHttpBinding>
        <binding bypassProxyOnLocal="false"
                 transactionFlow="false"
                 hostNameComparisonMode="WeakWildcard"
                 maxReceivedMessageSize="1000"
                 messageEncoding="Mtom"
                 proxyAddress="http://foo/bar"
                 textEncoding="Utf16TextEncoding"
                 useDefaultWebProxy="false">
          <reliableSession ordered="false"
                           inactivityTimeout="00:02:00"
                           enabled="true" />
          <security mode="None">
            <message negotiateServiceCredential="false"
                     algorithmSuite="Aes128"
                     issuedTokenType="saml"
                     issuedKeyType="PublicKey">
              <issuer address="http://localhost/Sts" />
            </message>
          </security>
        </binding>
      </wsFederationHttpBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

Voir aussi