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