<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 true må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>