Compartir a través de


<wsFederationHttpBinding>

Define un enlace que admite WS-Federation.

<configuración>
   <system.serviceModel>
     <Enlaces>
       <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 y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Attributes

Atributo Description
bypassProxyOnLocal Valor booleano que indica si se debe omitir el servidor proxy para las direcciones locales. El valor predeterminado es false.
closeTimeout Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación de cierre. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00.
hostnameComparisonMode Especifica el modo de comparación de nombres de host HTTP que se usa para analizar los URI. Este atributo es de tipo HostNameComparisonMode, que indica si el nombre de host se usa para llegar al servicio al buscar coincidencias en el URI. El valor predeterminado es StrongWildcard, que omite el nombre de host en la coincidencia.
maxBufferPoolSize Entero que especifica el tamaño máximo del grupo de búferes para este enlace. El valor predeterminado es 524 288 bytes (512 * 1024). Muchas partes de Windows Communication Foundation (WCF) usan búferes. La creación y destrucción de búferes cada vez que se usan es costosa y la recolección de elementos no utilizados para los búferes también es costosa. Con los grupos de búferes, puede tomar un búfer del grupo, usarlo y devolverlo al grupo una vez que haya terminado. Por lo tanto, se evita la sobrecarga en la creación y destrucción de búferes.
maxReceivedMessageSize Entero positivo que especifica el tamaño máximo del mensaje, en bytes, incluidos los encabezados, que se pueden recibir en un canal configurado con este enlace. El remitente de un mensaje que supere este límite recibirá un error soap. El receptor quita el mensaje y crea una entrada del evento en el registro de seguimiento. El valor predeterminado es 65536.
messageEncoding Define el codificador usado para codificar el mensaje. Entre los valores válidos se incluyen los siguientes:

- Texto: use un codificador de mensajes de texto.
- Mtom: use un codificador de organización de transmisión de mensajes 1.0 (MTOM).

El valor predeterminado es texto.

Este atributo es de tipo WSMessageEncoding.
nombre Cadena que contiene el nombre de configuración del enlace. Este valor debe ser único porque se usa como identificación para el enlace. A partir de .NET Framework 4, los enlaces y los comportamientos no son necesarios para tener un nombre. Para obtener más información sobre la configuración predeterminada y los enlaces y comportamientos sin nombre, vea Configuración simplificada y Configuración simplificada para servicios WCF.
openTimeout Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación abierta. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00.
privacyNoticeAt Cadena que especifica un URI en el que se encuentra el aviso de privacidad.
privacyNoticeVersion Entero que especifica la versión del aviso de privacidad actual.
proxyAddress URI que especifica la dirección del proxy HTTP. Si useDefaultWebProxy es true, esta configuración debe ser null. El valor predeterminado es null.
receiveTimeout Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación de recepción. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:10:00.
sendTimeout Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación de envío. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00.
textEncoding Establece la codificación del juego de caracteres que se usará para emitir mensajes en el enlace. Entre los valores válidos se incluyen los siguientes:

- BigEndianUnicode: codificación BigEndian Unicode.
- Unicode: codificación de 16 bits.
- UTF8: codificación de 8 bits

El valor predeterminado es UTF8. Este atributo es de tipo Encoding..
transactionFlow Valor booleano que especifica si el enlace admite el flujo de WS-Transactions. El valor predeterminado es false.
useDefaultWebProxy Valor booleano que indica si se usa el proxy HTTP configurado automáticamente del sistema. La dirección de proxy debe ser null (es decir, no establecida) si este atributo es true. El valor predeterminado es true.

Elementos secundarios

Elemento Description
<seguridad> Define la configuración de seguridad del mensaje. Este elemento es de tipo WSFederationHttpSecurityElement.
<readerQuotas> Define las restricciones sobre la complejidad de los mensajes SOAP que los puntos de conexión configurados con este enlace pueden procesar. Este elemento es de tipo XmlDictionaryReaderQuotasElement.
<reliableSession> Especifica si se establecen sesiones confiables entre puntos de conexión de canal.

Elementos primarios

Elemento Description
<Enlaces> Este elemento contiene una colección de enlaces estándar y personalizados.

Observaciones

La federación es la capacidad de compartir identidades en varios sistemas para la autenticación y autorización. Estas identidades pueden hacer referencia a usuarios o a máquinas. HTTP federado admite la seguridad SOAP, así como la seguridad en modo mixto, pero no admite exclusivamente el uso de la seguridad de transporte. Este enlace proporciona compatibilidad con Windows Communication Foundation (WCF) para el protocolo WS-Federation. Los servicios configurados con este enlace deben usar el transporte HTTP.

Los enlaces constan de una pila de elementos de enlace. Pila de elementos de enlace en

wsFederationHttpBinding es el mismo que el contenido en wsHttpBinding

cuando <la seguridad> se establece en el valor predeterminado de Message.

Controla wsFederationHttpBinding los detalles de la configuración de seguridad del mensaje en <el mensaje>. Tenga en cuenta que el <elemento de seguridad> proporciona acceso solo como la seguridad usada por el enlace no se puede cambiar una vez creado el enlace.

wsFederationHttpBinding También proporciona un atributo privacyNoticeAt para establecer y recuperar el URI en el que se encuentra el aviso de privacidad.

Mantener la directiva segura es especialmente importante en escenarios de federación. La recomendación es usar alguna forma de seguridad, como HTTPS, para proteger la directiva de usuarios malintencionados.

En escenarios de federación que usan este enlace, la directiva de servicio puede tener información importante, como la clave que se va a usar para cifrar el token emitido (SAML), el tipo de notificaciones que se van a colocar en el token, etc. Si esta directiva está manipulada, un atacante podría detectar la clave del token emitido, lo que conduce a más alteraciones, divulgación de información y otro comportamiento malintencionado. Para evitar esto, la directiva debe obtenerse de forma segura (por ejemplo, mediante HTTPS) desde el servicio.

Para obtener más información sobre este enlace, vea How to: Create a WSFederationHttpBinding.

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 también