<wsFederationHttpBinding>
Define um enlace que suporta WS-Federation.
<configuração>
<system.serviceModel>
<enlaces>
<wsFederationHttpBinding>
Sintaxe
<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>
Atributos e Elementos
As secções seguintes descrevem atributos, elementos subordinados e elementos principais.
Atributos
Atributo | Descrição |
---|---|
bypassProxyOnLocal | Um valor booleano que indica se deve ignorar o servidor proxy para endereços locais. A predefinição é false . |
closeTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de fecho. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
hostnameComparisonMode | Especifica o modo de comparação de nomes de anfitrião HTTP utilizado para analisar URIs. Este atributo é do tipo HostNameComparisonMode, que indica se o nome do anfitrião é utilizado para aceder ao serviço quando corresponde ao URI. O valor predefinido é StrongWildcard, que ignora o nome do anfitrião na correspondência. |
maxBufferPoolSize | Um número inteiro que especifica o tamanho máximo do conjunto de memória intermédia para este enlace. A predefinição é 524.288 bytes (512 * 1024). Muitas partes do Windows Communication Foundation (WCF) utilizam memórias intermédias. A criação e destruição de memórias intermédias sempre que são utilizadas é dispendiosa e a libertação da memória intermédia também é dispendiosa. Com os conjuntos de memória intermédia, pode tirar uma memória intermédia do conjunto, utilizá-la e devolvê-la ao conjunto assim que terminar. Assim, evita-se a sobrecarga na criação e destruição de memórias intermédias. |
maxReceivedMessageSize | Um número inteiro positivo que especifica o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que pode ser recebido num canal configurado com este enlace. O remetente de uma mensagem que excede este limite receberá uma falha SOAP. O recetor remove a mensagem e cria uma entrada do evento no registo de rastreio. A predefinição é 65536. |
messageEncoding | Define o codificador utilizado para codificar a mensagem. Os valores válidos incluem o seguinte: - Texto: utilize um codificador de mensagens sms. - Mtom: utilize um codificador MTOM (Message Transmission Organization Mechanism 1.0). A predefinição é Texto. Este atributo é do tipo WSMessageEncoding. |
name | Uma cadeia que contém o nome de configuração do enlace. Este valor deve ser exclusivo porque é utilizado como uma identificação para o enlace. A partir do .NET Framework 4, os enlaces e comportamentos não têm de ter um nome. Para obter mais informações sobre a configuração predefinida e os enlaces e comportamentos sem nome, veja Configuração Simplificada e Configuração Simplificada para os Serviços WCF. |
openTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação aberta. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
privacyNoticeAt | Uma Cadeia que especifica um URI no qual o aviso de privacidade está localizado. |
privacyNoticeVersion | Um número inteiro que especifica a versão do aviso de privacidade atual. |
proxyAddress | Um URI que especifica o endereço do proxy HTTP. Se useDefaultWebProxy for true , esta definição tem de ser null . A predefinição é null . |
receiveTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de receção. Este valor deve ser maior ou igual a Zero. A predefinição é 00:10:00. |
sendTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de envio. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
textEncoding | Define a codificação do conjunto de carateres a utilizar para emitir mensagens no enlace. Os valores válidos incluem o seguinte: - BigEndianUnicode: codificação Unicode BigEndian. - Unicode: codificação de 16 bits. - UTF8: codificação de 8 bits A predefinição é UTF8. Este atributo é do tipo Encoding.. |
transactionFlow | Um valor booleano que especifica se o enlace suporta WS-Transactions em fluxo. A predefinição é false . |
useDefaultWebProxy | Um valor booleano que indica se o proxy HTTP configurado automaticamente do sistema é utilizado. O endereço proxy tem de ser null (ou seja, não definido) se este atributo for true . A predefinição é true . |
Elementos Subordinados
Elemento | Descrição |
---|---|
<segurança> | Define as definições de segurança da mensagem. Este elemento é do tipo WSFederationHttpSecurityElement. |
<readerQuotas> | Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas por pontos finais configurados com este enlace. Este elemento é do tipo XmlDictionaryReaderQuotasElement. |
<reliableSession> | Especifica se são estabelecidas sessões fiáveis entre pontos finais de canal. |
Elementos Principais
Elemento | Descrição |
---|---|
<enlaces> | Este elemento contém uma coleção de enlaces padrão e personalizados. |
Observações
A federação é a capacidade de partilhar identidades em vários sistemas para autenticação e autorização. Estas identidades podem referir-se a utilizadores ou a computadores. O HTTP federado suporta segurança SOAP, bem como segurança de modo misto, mas não suporta exclusivamente a segurança de transporte. Este enlace fornece suporte do Windows Communication Foundation (WCF) para o protocolo WS-Federation. Os serviços configurados com este enlace têm de utilizar o transporte HTTP.
Os enlaces consistem numa pilha de elementos de enlace. A pilha de elementos de enlace no
wsFederationHttpBinding
é o mesmo que o contido em wsHttpBinding
quando <a segurança> está definida para o valor predefinido de Message.
O wsFederationHttpBinding
controla os detalhes das definições de segurança da mensagem na <mensagem>. Tenha em atenção que o <elemento de segurança> fornece acesso apenas porque a segurança utilizada pelo enlace não pode ser alterada depois de o enlace ser criado.
O wsFederationHttpBinding
também fornece um atributo privacyNoticeAt para definir e obter o URI no qual o aviso de privacidade está localizado.
Manter a política segura é especialmente importante em cenários de federação. A recomendação é utilizar alguma forma de segurança, como HTTPS, para proteger a política de utilizadores maliciosos.
Nos cenários de federação que utilizam este enlace, a política de serviço tem potencialmente informações importantes, como a chave a utilizar para encriptar o token (SAML) emitido, o tipo de afirmações a colocar no token, etc. Se esta política for adulterada, um atacante poderá detetar a chave do token emitido que leva a uma maior adulteração, divulgação de informações e outro comportamento malicioso. Para ajudar a evitar esta situação, a política tem de ser obtida de forma segura (por exemplo, com HTTPS) do serviço.
Para obter mais informações sobre este enlace, veja Como: Criar um WSFederationHttpBinding.
Exemplo
<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>