<wsFederationHttpBinding>
Definiuje powiązanie, które obsługuje usługę WS-Federation.
<Konfiguracji>
<System.servicemodel>
<Powiązania>
<wsFederationHttpBinding>
Składnia
<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>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Atrybuty
Atrybut | Opis |
---|---|
Bypassproxyonlocal | Wartość logiczna wskazująca, czy pominąć serwer proxy dla adresów lokalnych. Wartość domyślna to false . |
closeTimeout | TimeSpan Wartość określająca interwał czasu podany dla operacji zamknięcia do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00. |
Hostnamecomparisonmode | Określa tryb porównania nazwy hosta HTTP używany do analizowania identyfikatorów URI. Ten atrybut jest typu HostNameComparisonMode, który wskazuje, czy nazwa hosta jest używana do dotarcia do usługi podczas dopasowywania identyfikatora URI. Wartość domyślna to StrongWildcard, która ignoruje nazwę hosta w dopasowaniu. |
Maxbufferpoolsize | Liczba całkowita określająca maksymalny rozmiar puli buforów dla tego powiązania. Wartość domyślna to 524 288 bajtów (512 * 1024). Wiele części programu Windows Communication Foundation (WCF) używa buforów. Tworzenie i niszczenie buforów za każdym razem, gdy są używane, jest kosztowne, a odzyskiwanie pamięci dla buforów jest również kosztowne. W przypadku pul buforów można pobrać bufor z puli, użyć jej i powrócić do puli po zakończeniu. W związku z tym unika się obciążeń związanych z tworzeniem i niszczeniem buforów. |
Maxreceivedmessagesize | Dodatnia liczba całkowita określająca maksymalny rozmiar komunikatu w bajtach, w tym nagłówki, które można odebrać w kanale skonfigurowanym za pomocą tego powiązania. Nadawca komunikatu przekraczającego ten limit otrzyma błąd protokołu SOAP. Odbiorca odrzuca komunikat i tworzy wpis zdarzenia w dzienniku śledzenia. Wartość domyślna to 65536. |
messageEncoding | Definiuje koder używany do kodowania komunikatu. Prawidłowe wartości obejmują następujące wartości: - Tekst: użyj kodera wiadomości SMS. - Mtom: Użyj kodera mechanizmu organizacji transmisji komunikatów 1.0 (MTOM). Wartość domyślna to Text. Ten atrybut jest typu WSMessageEncoding. |
name | Ciąg zawierający nazwę konfiguracji powiązania. Ta wartość powinna być unikatowa, ponieważ jest używana jako identyfikacja powiązania. Począwszy od .NET Framework 4, powiązania i zachowania nie muszą mieć nazwy. Aby uzyskać więcej informacji na temat domyślnej konfiguracji i bez nazw powiązań i zachowań, zobacz Uproszczona konfiguracja i Uproszczona konfiguracja dla usług WCF. |
openTimeout | TimeSpan Wartość określająca interwał czasu podany dla operacji otwierania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00. |
privacyNoticeAt | Ciąg określający identyfikator URI, w którym znajduje się powiadomienie o ochronie prywatności. |
privacyNoticeVersion | Liczba całkowita określająca wersję bieżącego powiadomienia o ochronie prywatności. |
Proxyaddress | Identyfikator URI określający adres serwera proxy HTTP. Jeśli useDefaultWebProxy ma true wartość , to ustawienie musi mieć wartość null . Wartość domyślna to null . |
Receivetimeout | TimeSpan Wartość określająca interwał czasu podany dla operacji odbierania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:10:00. |
sendTimeout | TimeSpan Wartość określająca interwał czasu podany dla operacji wysyłania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00. |
textEncoding | Ustawia kodowanie zestawu znaków, które ma być używane do emitowania komunikatów w powiązaniu. Prawidłowe wartości obejmują następujące wartości: - BigEndianUnicode: kodowanie Unicode BigEndian. - Unicode: kodowanie 16-bitowe. - UTF8: kodowanie 8-bitowe Wartość domyślna to UTF8. Ten atrybut jest typu Encoding.. |
transactionFlow | Wartość logiczna określająca, czy powiązanie obsługuje przepływ transakcji WS-Transactions. Wartość domyślna to false . |
useDefaultWebProxy | Wartość logiczna wskazująca, czy jest używany automatycznie skonfigurowany serwer proxy HTTP systemu. Adres serwera proxy musi być null (tj. nie ustawiony), jeśli ten atrybut to true . Wartość domyślna to true . |
Elementy podrzędne
Element | Opis |
---|---|
<Zabezpieczeń> | Definiuje ustawienia zabezpieczeń komunikatu. Ten element jest typu WSFederationHttpSecurityElement. |
<Readerquotas> | Definiuje ograniczenia dotyczące złożoności komunikatów protokołu SOAP, które mogą być przetwarzane przez punkty końcowe skonfigurowane za pomocą tego powiązania. Ten element jest typu XmlDictionaryReaderQuotasElement. |
<reliableSession> | Określa, czy sesje niezawodne są ustanawiane między punktami końcowymi kanału. |
Elementy nadrzędne
Element | Opis |
---|---|
<Powiązania> | Ten element zawiera kolekcję powiązań standardowych i niestandardowych. |
Uwagi
Federacja to możliwość udostępniania tożsamości w wielu systemach na potrzeby uwierzytelniania i autoryzacji. Te tożsamości mogą odwoływać się do użytkowników lub maszyn. Federacyjny protokół HTTP obsługuje zabezpieczenia protokołu SOAP oraz zabezpieczenia w trybie mieszanym, ale nie obsługuje wyłącznie zabezpieczeń transportu. To powiązanie zapewnia obsługę programu Windows Communication Foundation (WCF) dla protokołu WS-Federation. Usługi skonfigurowane za pomocą tego powiązania muszą używać transportu HTTP.
Powiązania składają się z stosu elementów powiązania. Stos elementów powiązania w programie
wsFederationHttpBinding
jest taka sama, jak ta zawarta w wsHttpBinding
gdy <zabezpieczenia> są ustawione na wartość domyślną .Message
Kontrolka wsFederationHttpBinding
steruje szczegółami ustawień zabezpieczeń komunikatów w< komunikacie>. Należy pamiętać, że element zabezpieczeń> zapewnia dostęp tylko wtedy,< gdy nie można zmienić zabezpieczeń używanych przez powiązanie po utworzeniu powiązania.
Ponadto wsFederationHttpBinding
zapewnia atrybut privacyNoticeAt do ustawiania i pobierania identyfikatora URI, w którym znajduje się powiadomienie o ochronie prywatności.
Zapewnienie bezpieczeństwa zasad jest szczególnie ważne w scenariuszach federacyjnych. Zaleceniem jest użycie jakiejś formy zabezpieczeń, takich jak HTTPS, w celu ochrony zasad przed złośliwymi użytkownikami.
W scenariuszach federacyjnych korzystających z tego powiązania zasady usługi mogą potencjalnie zawierać ważne informacje, takie jak klucz używany do szyfrowania wystawionego tokenu (SAML), typ oświadczeń do umieszczenia w tokenie itd. Jeśli te zasady zostaną naruszone, osoba atakująca może odnaleźć klucz wystawionego tokenu, co prowadzi do dalszego manipulowania, ujawniania informacji i innego złośliwego zachowania. Aby zapobiec temu, należy bezpiecznie uzyskać zasady (na przykład przy użyciu protokołu HTTPS) z usługi.
Aby uzyskać więcej informacji na temat tego powiązania, zobacz How to: Create a WSFederationHttpBinding (Instrukcje: tworzenie federacji WSFederationHttpBinding).
Przykład
<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>