Partilhar via


<wsFederationHttpBinding>

Define uma ligação que suporta WS-Federation.

<configuração>
   <system.serviceModel>
     <Encadernações>
       <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 seções a seguir descrevem atributos, elementos filho e elementos pai.

Attributes

Attribute Description
bypassProxyOnLocal Um valor booleano que indica se deve contornar 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 fechamento. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
Modo de Comparação Nome do Host Especifica o modo de comparação de nomes de host HTTP usado para analisar URIs. Este atributo é do tipo HostNameComparisonMode, que indica se o nome de host é usado para aceder ao serviço quando corresponde no URI. O valor padrão é StrongWildcard, que ignora o nome do host na correspondência.
maxBufferPoolSize Um inteiro que especifica o tamanho máximo do buffer pool para esta ligação. O padrão é 524.288 bytes (512 * 1024). Muitas partes do Windows Communication Foundation (WCF) utilizam buffers. Criar e destruir buffers sempre que são usados é caro, e a recolha de lixo para buffers também é dispendiosa. Com os buffer pools, podes pegar num buffer do pool, usá-lo e devolvê-lo ao pool quando terminares. Assim, evita-se a sobrecarga na criação e destruição de tampões.
maxReceivedMessageSize Um inteiro positivo que especifica o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que pode ser recebido num canal configurado com esta ligação. O remetente de uma mensagem que ultrapasse este limite receberá uma falha SOAP. O recetor elimina a mensagem e cria uma entrada do evento no registo 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: Utilizar um codificador Message Transmission Organization Mechanism 1.0 (MTOM).

O padrão é Text.

Este atributo é do tipo WSMessageEncoding.
nome Uma cadeia que contém o nome da configuração da ligação. Este valor deve ser único porque é usado como identificação da ligação. A partir do .NET Framework 4, os bindings e comportamentos não são obrigatórios de ter um nome. Para mais informações sobre configuração padrão e ligações e comportamentos sem nome, consulte Configuração Simplificada e Configuração Simplificada para Serviços WCF.
openTimeout Um TimeSpan valor que especifica o intervalo de tempo previsto para que uma operação aberta seja concluída. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
privacidadeAviso Uma cadeia que especifica um URI onde o aviso de privacidade está localizado.
privacidadeAvisoVersão Um inteiro que especifica a versão do aviso de privacidade atual.
Proxy Address Um URI que especifica o endereço do proxy HTTP. Se useDefaultWebProxy for true, esta definição deve 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. O padrão é 00:10:00.
enviarTempo de espera Um TimeSpan valor que especifica o intervalo de tempo fornecido para que uma operação de envio seja concluída. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
Codificação de texto Define a codificação do conjunto de caracteres para ser usada para emitir mensagens na ligaçã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. Este atributo é do tipo Encoding..
transactionFlow Um valor booleano que especifica se a ligação suporta transações WS em fluxo. A predefinição é false.
useDefaultWebProxy Um valor booleano que indica se o proxy HTTP auto-configurado do sistema é utilizado. O endereço proxy deve ser null (isto é, não definido) se este atributo for true. A predefinição é true.

Elementos filho

Elemento Description
<Segurança> Define as definições de segurança da mensagem. Este elemento é do tipo WSFederationHttpSecurityElement.
<LeitorQuotas> Define as restrições à complexidade das mensagens SOAP que podem ser processadas pelos endpoints configurados com esta ligação. Este elemento é do tipo XmlDictionaryReaderQuotasElement.
<reliableSession> Especifica se são estabelecidas sessões fiáveis entre os pontos finais do canal.

Elementos Principais

Elemento Description
<Encadernações> Este elemento contém uma coleção de encadernações padrão e personalizadas.

Observações

Federação é a capacidade de partilhar identidades entre múltiplos sistemas para autenticação e autorização. Estas identidades podem referir-se a utilizadores ou a máquinas. O HTTP federado suporta a segurança SOAP bem como a segurança em modo misto, mas não suporta exclusivamente a utilização da segurança de transporte. Esta ligação fornece suporte ao Windows Communication Foundation (WCF) para o protocolo WS-Federation. Os serviços configurados com esta ligação devem usar o transporte HTTP.

As ligações consistem numa pilha de elementos de ligação. A pilha de elementos de ligação em

wsFederationHttpBinding é o mesmo que o contido em wsHttpBinding

quando <a segurança> é definida para o valor padrão de Message.

Controla wsFederationHttpBinding os detalhes das definições de segurança das mensagens na <mensagem>. Note-se que o <elemento de segurança> fornece acesso apenas ao obter acesso porque a segurança usada pela ligação não pode ser alterada uma vez criada a vinculação.

Também wsFederationHttpBinding fornece um atributo privacyNoticeAt para definir e recuperar o URI onde o aviso de privacidade está localizado.

Manter a política segura é especialmente importante em cenários de federação. A recomendação é usar algum tipo de segurança, como HTTPS, para proteger a política de utilizadores maliciosos.

Em cenários de federação que utilizam esta ligação, a política de serviço pode ter informações importantes, como a chave a usar para encriptar o token emitido (SAML), o tipo de reivindicações a colocar no token, e assim por diante. Se esta política for adulterada, um atacante pode descobrir a chave do token emitido, levando a mais manipulações, divulgação de informação e outros comportamentos maliciosos. Para ajudar a evitar isto, a apólice deve ser obtida de forma segura (por exemplo, usando HTTPS) do serviço.

Para mais informações sobre esta ligação, veja Como: Criar uma Ligação WSFederationHttp.

Example

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

Consulte também