Dela via


<wsFederationHttpBinding>

Definierar en bindning som stöder WS-Federation.

<Konfiguration>
  <system.serviceModel>
    <Bindningar>
      <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>

Attribut och element

I följande avsnitt beskrivs attribut, underordnade element och överordnade element.

Attribut

Attribut Beskrivning
bypassProxyOnLocal Ett booleskt värde som anger om proxyservern ska kringgås för lokala adresser. Standardvärdet är false.
closeTimeout Ett TimeSpan värde som anger tidsintervallet för en stängningsåtgärd som ska slutföras. Det här värdet ska vara större än eller lika med Zero. Standardvärdet är 00:01:00.
hostnameComparisonMode Anger det HTTP-värdnamnsjämförelseläge som används för att parsa URI:er. Det här attributet är av typen HostNameComparisonMode, vilket anger om värdnamnet används för att nå tjänsten vid matchning på URI:n. Standardvärdet är StrongWildcard, som ignorerar värdnamnet i matchningen.
maxBufferPoolSize Ett heltal som anger den maximala buffertpoolstorleken för den här bindningen. Standardvärdet är 524 288 byte (512 * 1024). Många delar av Windows Communication Foundation (WCF) använder buffertar. Att skapa och förstöra buffertar varje gång de används är dyrt, och skräpinsamling för buffertar är också dyrt. Med buffertpooler kan du ta en buffert från poolen, använda den och returnera den till poolen när du är klar. Därmed undviks kostnaden för att skapa och förstöra buffertar.
maxReceivedMessageSize Ett positivt heltal som anger den maximala meddelandestorleken i byte, inklusive rubriker, som kan tas emot på en kanal som konfigurerats med den här bindningen. Avsändaren av ett meddelande som överskrider den här gränsen får ett SOAP-fel. Mottagaren släpper meddelandet och skapar en post för händelsen i spårningsloggen. Standardvärdet är 65536.
messageEncoding Definierar kodaren som används för att koda meddelandet. Giltiga värden omfattar följande:

- Text: Använd en textmeddelandekodare.
– Mtom: Använd en MTOM-kodare (Message Transmission Organization Mechanism 1.0).

Standardvärdet är Text.

Det här attributet är av typen WSMessageEncoding.
name En sträng som innehåller bindningens konfigurationsnamn. Det här värdet bör vara unikt eftersom det används som identifiering för bindningen. Från och med .NET Framework 4 krävs inte bindningar och beteenden för att ha ett namn. Mer information om standardkonfiguration och namnlösa bindningar och beteenden finns i Förenklad konfiguration och förenklad konfiguration för WCF-tjänster.
openTimeout Ett TimeSpan värde som anger hur länge en öppen åtgärd ska slutföras. Det här värdet ska vara större än eller lika med Zero. Standardvärdet är 00:01:00.
privacyNoticeAt En sträng som anger en URI där sekretessmeddelandet finns.
privacyNoticeVersion Ett heltal som anger versionen av det aktuella sekretessmeddelandet.
proxyAddress En URI som anger adressen till HTTP-proxyn. Om useDefaultWebProxy är truemåste den här inställningen vara null. Standardvärdet är null.
receiveTimeout Ett TimeSpan värde som anger hur länge en mottagningsåtgärd ska slutföras. Det här värdet ska vara större än eller lika med Zero. Standardvärdet är 00:10:00.
sendTimeout Ett TimeSpan värde som anger hur länge en sändningsåtgärd ska slutföras. Det här värdet ska vara större än eller lika med Zero. Standardvärdet är 00:01:00.
textKodning Anger teckenuppsättningskodningen som ska användas för att generera meddelanden på bindningen. Giltiga värden omfattar följande:

- BigEndianUnicode: Unicode BigEndian-kodning.
- Unicode: 16-bitars kodning.
- UTF8: 8-bitars kodning

Standardvärdet är UTF8. Det här attributet är av typen Encoding..
transactionFlow Ett booleskt värde som anger om bindningen stöder flödande WS-transaktioner. Standardvärdet är false.
useDefaultWebProxy Ett booleskt värde som anger om systemets automatiskt konfigurerade HTTP-proxy används. Proxyadressen måste vara null (dvs. inte inställd) om det här attributet är true. Standardvärdet är true.

Underordnade element

Element Beskrivning
<Säkerhet> Definierar säkerhetsinställningarna för meddelandet. Det här elementet är av typen WSFederationHttpSecurityElement.
<readerQuotas> Definierar begränsningarna för komplexiteten i SOAP-meddelanden som kan bearbetas av slutpunkter som konfigurerats med den här bindningen. Det här elementet är av typen XmlDictionaryReaderQuotasElement.
<reliableSession> Anger om tillförlitliga sessioner upprättas mellan kanalslutpunkter.

Överordnade element

Element Beskrivning
<Bindningar> Det här elementet innehåller en samling standard- och anpassade bindningar.

Kommentarer

Federation är möjligheten att dela identiteter över flera system för autentisering och auktorisering. Dessa identiteter kan referera till användare eller datorer. Federerad HTTP stöder SOAP-säkerhet och säkerhet i blandat läge, men det stöder inte enbart transportsäkerhet. Den här bindningen ger stöd för Windows Communication Foundation (WCF) för WS-Federation-protokollet. Tjänster som konfigurerats med den här bindningen måste använda HTTP-transporten.

Bindningar består av en stack med bindningselement. Stacken med bindningselement i

wsFederationHttpBinding är samma som den som finns i wsHttpBinding

när <säkerhet> är inställt på standardvärdet Messageför .

Styr wsFederationHttpBinding information om meddelandesäkerhetsinställningarna i <meddelandet>. Observera att säkerhetselementet<> endast ger åtkomst eftersom säkerheten som används av bindningen inte kan ändras när bindningen har skapats.

Innehåller wsFederationHttpBinding även attributet privacyNoticeAt för att ange och hämta den URI där sekretessmeddelandet finns.

Att skydda principen är särskilt viktigt i federationsscenarier. Rekommendationen är att använda någon form av säkerhet, till exempel HTTPS, för att skydda principen mot skadliga användare.

I federationsscenarier med den här bindningen har tjänstprincipen potentiellt viktig information, till exempel nyckeln som ska användas för att kryptera den utfärdade (SAML)-token, typen av anspråk som ska placeras i token och så vidare. Om den här principen manipuleras kan en angripare identifiera nyckeln för den utfärdade token som leder till ytterligare manipulering, avslöjande av information och annat skadligt beteende. För att förhindra detta måste principen hämtas på ett säkert sätt (till exempel med HTTPS) från tjänsten.

Mer information om den här bindningen finns i Så här skapar du en WSFederationHttpBinding.

Exempel

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

Se även