Delen via


<wsFederationHttpBinding>

Definieert een binding die ondersteuning biedt voor WS-Federation.

<Configuratie>
  <system.serviceModel>
    <Bindings>
      <wsFederationHttpBinding>

Syntax

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

Kenmerken en elementen

In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven.

Kenmerken

Kenmerk Beschrijving
bypassProxyOnLocal Een Booleaanse waarde die aangeeft of de proxyserver voor lokale adressen moet worden overgeslagen. De standaardwaarde is false.
closeTimeout Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een close-bewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00.
hostnaamComparisonMode Hiermee geeft u de http-hostnaamvergelijkingsmodus op die wordt gebruikt voor het parseren van URI's. Dit kenmerk is van het type HostNameComparisonMode, dat aangeeft of de hostnaam wordt gebruikt om de service te bereiken bij het vergelijken op de URI. De standaardwaarde is StrongWildcard, waarmee de hostnaam in de overeenkomst wordt genegeerd.
maxBufferPoolSize Een geheel getal dat de maximale grootte van de buffergroep voor deze binding aangeeft. De standaardwaarde is 524.288 bytes (512 * 1024). Veel onderdelen van Windows Communication Foundation (WCF) maken gebruik van buffers. Het maken en vernietigen van buffers elke keer dat ze worden gebruikt, is duur en garbagecollection voor buffers is ook duur. Met bufferpools kunt u een buffer uit de pool nemen, deze gebruiken en teruggaan naar de pool wanneer u klaar bent. Zo wordt de overhead bij het maken en vernietigen van buffers vermeden.
maxReceivedMessageSize Een positief geheel getal dat de maximale berichtgrootte aangeeft, in bytes, inclusief headers, die kunnen worden ontvangen op een kanaal dat is geconfigureerd met deze binding. De afzender van een bericht dat deze limiet overschrijdt, ontvangt een SOAP-fout. De ontvanger verwijdert het bericht en maakt een vermelding van de gebeurtenis in het traceringslogboek. De standaardwaarde is 65536.
messageEncoding Definieert de encoder die wordt gebruikt om het bericht te coderen. Geldige waarden zijn onder andere:

- Tekst: gebruik een coderingsprogramma voor tekstberichten.
- Mtom: gebruik een Message Transmission Organization Mechanism 1.0-encoder (MTOM).

De standaardwaarde is de tekst.

Dit kenmerk is van het type WSMessageEncoding.
naam Een tekenreeks die de configuratienaam van de binding bevat. Deze waarde moet uniek zijn omdat deze wordt gebruikt als identificatie voor de binding. Vanaf .NET Framework 4 zijn bindingen en gedrag niet vereist om een naam te hebben. Zie Vereenvoudigde configuratie en Vereenvoudigde configuratie voor WCF-services voor meer informatie over standaardconfiguratie en naamloze bindingen en gedrag.
openTimeout Een TimeSpan waarde die het tijdsinterval aangeeft dat een open bewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00.
privacyNoticeAt Een tekenreeks die een URI aangeeft waarop de privacyverklaring zich bevindt.
privacyNoticeVersion Een geheel getal dat de versie van de huidige privacyverklaring aangeeft.
proxyAddress Een URI die het adres van de HTTP-proxy aangeeft. Als useDefaultWebProxy is true, moet deze instelling zijn null. De standaardwaarde is null.
receiveTimeout Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een ontvangstbewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:10:00.
sendTimeout Een TimeSpan waarde die het tijdsinterval aangeeft dat een verzendbewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00.
Textencoding Hiermee stelt u de tekensetcodering in die moet worden gebruikt voor het verzenden van berichten op de binding. Geldige waarden zijn onder andere:

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

De standaardwaarde is UTF8. Dit kenmerk is van het type Encoding..
transactionFlow Een Booleaanse waarde die aangeeft of de binding stromende WS-transactions ondersteunt. De standaardwaarde is false.
useDefaultWebProxy Een Booleaanse waarde die aangeeft of de automatisch geconfigureerde HTTP-proxy van het systeem wordt gebruikt. Het proxyadres moet (dus niet ingesteld) zijn null als dit kenmerk is true. De standaardwaarde is true.

Onderliggende elementen

Element Beschrijving
<Veiligheid> Definieert de beveiligingsinstellingen voor het bericht. Dit element is van het type WSFederationHttpSecurityElement.
<lezerQuota's> Definieert de beperkingen voor de complexiteit van SOAP-berichten die kunnen worden verwerkt door eindpunten die met deze binding zijn geconfigureerd. Dit element is van het type XmlDictionaryReaderQuotasElement.
<reliableSession> Hiermee geeft u op of er betrouwbare sessies tot stand worden gebracht tussen kanaaleindpunten.

Bovenliggende elementen

Element Beschrijving
<Bindings> Dit element bevat een verzameling standaard- en aangepaste bindingen.

Opmerkingen

Federatie is de mogelijkheid om identiteiten te delen tussen meerdere systemen voor verificatie en autorisatie. Deze identiteiten kunnen verwijzen naar gebruikers of naar computers. Federatieve HTTP ondersteunt SOAP-beveiliging en beveiliging in gemengde modus, maar biedt geen ondersteuning voor uitsluitend het gebruik van transportbeveiliging. Deze binding biedt WCF-ondersteuning (Windows Communication Foundation) voor het WS-Federation-protocol. Services die zijn geconfigureerd met deze binding, moeten gebruikmaken van het HTTP-transport.

Bindingen bestaan uit een stapel bindingselementen. De stapel bindingselementen in

wsFederationHttpBinding is hetzelfde als die in wsHttpBinding

wanneer <beveiliging> is ingesteld op de standaardwaarde van Message.

De wsFederationHttpBinding bepaalt de details van de beveiligingsinstellingen voor berichten in <het bericht>. Houd er rekening mee dat het <beveiligingselement> alleen toegang krijgt omdat de beveiliging die door de binding wordt gebruikt, niet kan worden gewijzigd nadat de binding is gemaakt.

De wsFederationHttpBinding biedt ook een privacyNoticeAt-kenmerk om de URI in te stellen en op te halen waarop de privacyverklaring zich bevindt.

Het veilig houden van beleid is met name belangrijk in federatiescenario's. Het wordt aanbevolen om een vorm van beveiliging te gebruiken, zoals HTTPS, om het beleid te beschermen tegen kwaadwillende gebruikers.

In federatiescenario's die gebruikmaken van deze binding, bevat het servicebeleid mogelijk belangrijke informatie, zoals de sleutel die moet worden gebruikt om het uitgegeven SAML-token te versleutelen, het type claims dat in het token moet worden geplaatst, enzovoort. Als er met dit beleid wordt geknoeid, kan een aanvaller de sleutel van het uitgegeven token detecteren, wat leidt tot verdere manipulatie, openbaarmaking van informatie en ander schadelijk gedrag. Om dit te voorkomen, moet het beleid veilig worden verkregen (bijvoorbeeld met behulp van HTTPS) van de service.

Zie Procedure: Een WSFederationHttpBinding maken voor meer informatie over deze binding.

Voorbeeld

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

Zie ook