<wsFederationHttpBinding>
Define uma associação que dá suporte a especificação Web Services Federation.
<configuração>
<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>
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai.
Atributos
Atributo | Descrição |
---|---|
bypassProxyOnLocal | Um valor booliano que indica se o servidor proxy deve ser ignorado para endereços locais. O padrão é false . |
closeTimeout | Um valor TimeSpan que especifica o intervalo de tempo para a conclusão de uma operação de fechamento. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00. |
hostnameComparisonMode | Especifica o modo de comparação de nome do host HTTP usado para analisar URIs. Esse atributo é do tipo HostNameComparisonMode, o que indica se o nome do host é usado para acessar o serviço ao fazer correspondência no URI. O valor padrão é StrongWildcard, o que ignora o nome do host na correspondência. |
maxBufferPoolSize | Um inteiro que especifica o tamanho máximo do pool de buffers para essa associação. O padrão é 524.288 bytes (512 * 1024). Muitas partes do WCF (Windows Communication Foundation) usam buffers. Criar e destruir buffers cada vez que eles são usados é caro, e a coleta de lixo para buffers também é cara. Com os pools de buffers, você pode pegar um buffer do pool, usá-lo e devolvê-lo ao pool assim que terminar. Portanto, a sobrecarga na criação e na destruição de buffers é evitada. |
maxReceivedMessageSize | Um inteiro positivo que especifica o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que pode ser recebido em um canal configurado com essa associação. O remetente de uma mensagem que exceder esse limite receberá uma falha SOAP. O receptor remove a mensagem e cria uma entrada do evento no log de rastreamento. O padrão é 65536. |
messageEncoding | Define o codificador usado para codificar a mensagem. Os valores válidos incluem os seguintes: – Texto: use um codificador de mensagens de texto. – Mtom: use um codificador do MTOM (Message Transmission Organization Mechanism) 1.0. O padrão é texto. Esse atributo é do tipo WSMessageEncoding. |
name | Uma cadeia de caracteres que contém o nome de configuração da associação. Esse valor deve ser exclusivo, pois é usado como uma identificação para a associação. A partir do .NET Framework 4, associações e comportamentos não precisam ter um nome. Para obter mais informações sobre a configuração padrão e as associações sem nome, incluindo os comportamentos, confira Configuração Simplificada e Configuração Simplificada para Serviços WCF. |
openTimeout | Um valor TimeSpan que especifica o intervalo de tempo fornecido para a conclusão de uma operação de abertura. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00. |
privacyNoticeAt | Uma cadeia de caracteres que especifica um URI no qual o aviso de privacidade está localizado. |
privacyNoticeVersion | Um 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 , essa configuração precisará ser null . O padrão é null . |
receiveTimeout | Um valor TimeSpan que especifica o intervalo de tempo para a conclusão de uma operação de recebimento. Esse valor deve ser igual ou superior a Zero. O padrão é 00:10:00. |
sendTimeout | Um valor TimeSpan que especifica o intervalo de tempo para a conclusão de uma operação de envio. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00. |
textEncoding | Define a codificação de conjunto de caracteres a ser usada para emitir mensagens na associação. Os valores válidos incluem os seguintes: − BigEndianUnicode: codificação Unicode BigEndian. – Unicode: codificação de 16 bits. − UTF8: codificação de 8 bits O padrão é UTF8. Esse atributo é do tipo Encoding. |
transactionFlow | Um valor booliano que especifica se a associação dá suporte ao fluxo de WS-Transactions. O padrão é false . |
useDefaultWebProxy | Um valor booliano que indica se o proxy HTTP configurado automaticamente do sistema é usado. O endereço proxy deve ser null (ou seja, não definido) se esse atributo for true . O padrão é true . |
Elementos filho
Elemento | Descrição |
---|---|
<security> | Define as configurações de segurança da mensagem. Esse elemento é do tipo WSFederationHttpSecurityElement. |
<readerQuotas> | Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas pelos pontos de extremidade configurados com essa associação. Esse elemento é do tipo XmlDictionaryReaderQuotasElement. |
<reliableSession> | Especifica se sessões as confiáveis são estabelecidas entre pontos de extremidade de canal. |
Elementos pai
Elemento | Descrição |
---|---|
<bindings> | Esse elemento contém uma coleção de associações padrão e personalizadas. |
Comentários
Federação é a capacidade de compartilhar identidades em vário sistemas para autenticação e autorização. Essas identidades podem se referir a usuários ou computadores. O HTTP federado dá suporte à segurança SOAP, bem como à segurança de modo misto, mas não dá suporte exclusivo usando a segurança do transporte. Essa associação fornece suporte ao WCF (Windows Communication Foundation) para o protocolo de especificação Web Services Federation. Os serviços configurados com essa associação precisam usar o transporte HTTP.
As associações consistem em uma pilha de elementos de associação. A pilha dos elementos de associação em
wsFederationHttpBinding
é o mesmo que o contido em wsHttpBinding
quando a <segurança> é definida como o valor padrão de Message.
Os controles wsFederationHttpBinding
dos detalhes das configurações de segurança da mensagem na <mensagem>. Observe que o elemento de <segurança> fornece acesso somente como a segurança usada pela associação não pode ser alterada depois que a associação é criada.
O wsFederationHttpBinding
também fornece um atributo privacyNoticeAt para definir e recuperar o URI no qual o aviso de privacidade está localizado.
Manter a política segura é especialmente importante nos cenários de federação. A recomendação é usar alguma forma de segurança, como HTTPS, para proteger a política contra usuários mal-intencionados.
Em cenários de federação que usam essa associação, a política de serviço potencialmente tem informações importantes, como a chave a ser usada para criptografar o token SAML emitido, o tipo de declarações a serem colocadas no token e assim por diante. Se essa política for adulterada, um invasor poderá descobrir a chave do token emitido, levando a mais violações, divulgação de informações e outros comportamentos mal-intencionados. Para ajudar a evitar isso, a política deve ser obtida de modo seguro (por exemplo, usando HTTPS) do serviço.
Para obter mais informações sobre essa associação, confira 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>