Compartir a través de


<<wsFederationHttpBinding>>

Define un enlace que admite WS-Federation.

Jerarquía del esquema

<<system.serviceModel>>
  <enlaces>
    <<wsFederationHttpBinding>>

Sintaxis

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

Atributos y elementos

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

Atributos

Atributo Descripción

bypassProxyOnLocal

Valor de tipo booleano que indica si se omitirá el servidor proxy para las direcciones locales. El valor predeterminado es false.

closeTimeout

Un valor TimeSpan que especifica el intervalo de tiempo del que dispone una operación de cierre para completarse. 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 utilizado para analizar los URI. Este atributo es del tipo HostnameComparisonMode, que indica si se va a utilizar el nombre del host para llegar al servicio cuando coincida en el URI. El valor predeterminado es StrongWildcard, que omite el nombre del 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 (512x1024). En muchas partes de Windows Communication Foundation (WCF) se utilizan búferes. Crear y destruir búferes cada vez que se usan es caro, y la recolección de elementos no utilizados para los búferes también es cara. Con grupos de búferes, puede tomar un búfer del grupo, usarlo y devolverlo al grupo una vez haya terminado. Así se evitan los gastos generales al crear y destruir búferes.

maxReceivedMessageSize

Entero positivo que especifica el tamaño máximo del mensaje, en bytes, incluidos los encabezados, que se puede 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 utilizado para codificar el mensaje. Los valores válidos son los siguientes:

  • Text: utiliza un codificador de mensajes de texto.

  • Mtom: utiliza un codificador de Mecanismo de optimización de transmisión del mensaje 1.0 (MTOM).

El valor predeterminado es Text.

Este atributo es del tipo WSMessageEncoding.

name

Cadena que contiene el nombre de la configuración del enlace. Este valor debe ser único porque se usa como identificación del enlace. A partir de .NET Framework 4, no es necesario que los enlaces y los comportamientos tengan nombre. Para obtener más información sobre la configuración predeterminada, así como sobre enlaces y comportamientos sin nombre, vea Simplified Configuration y Simplified Configuration for WCF Services.

openTimeout

Valor de la estructura TimeSpan que especifica el intervalo de tiempo del que dispone una operación de apertura para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00.

privactyNoticeAt

Una cadena que especifica un URI en el que el aviso de privacidad se encuentra.

privactyNoticeVersion

Un entero que especifica la versión del aviso de privacidad actual.

proxyAddress

Un URI que especifica la dirección del proxy HTTP. Si useDefaultWebProxy es true, este valor debe ser null. El valor predeterminado es null.

receiveTimeout

Un valor TimeSpan que especifica el intervalo de tiempo del que dispone una operación de recepción para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:10:00.

sendTimeout

Un valor TimeSpan que especifica el intervalo de tiempo del que dispone una operación de envío para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00.

textEncoding

Establece el codificador del juego de caracteres que se va a usar para emitir los mensajes en el enlace. Los valores válidos son los siguientes:

  • BigEndianUnicode: codificación Unicode BigEndian.

  • Codificación de 16 bits Unicode.

  • Codificación de 8 bits UTF8

El valor predeterminado es UTF8. Este atributo es del tipo Encoding.

transactionFlow

Valor booleano que especifica si el enlace admite las transacciones WS del flujo. El valor predeterminado es false.

useDefaultWebProxy

Valor de tipo booleano que indica si se utiliza el proxy HTTP del sistema configurado automáticamente. La dirección de proxy debe ser null (es decir, sin establecer) si este atributo es true. El valor predeterminado es true.

Elementos secundarios

Elemento Descripción

Elemento <security> de <wsFederationHttpBinding>

Define la configuración de seguridad del mensaje. Este elemento es del tipo WSFederationHttpSecurityElement.

<readerQuotas>

Define restricciones en la complejidad de los mensajes SOAP que pueden ser procesados por los extremos configurados con este enlace. Este elemento es del tipo XmlDictionaryReaderQuotasElement.

reliableSession

Especifica si se establecen sesiones confiables entre los extremos del canal.

Elementos primarios

Elemento Descripción

<enlaces>

Este elemento contiene una colección de enlaces estándar y personalizados.

Notas

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 equipos. El HTTP federado admite la seguridad de SOAP así como la seguridad de modo mixto, pero no permite utilizar únicamente la seguridad de transporte. Este enlace proporciona a Windows Communication Foundation (WCF) compatibilidad para el protocolo de WS-Federation. Los servicios configurados con este enlace deben utilizar el transporte de HTTP.

Los enlaces están compuestos de una pila de elementos de enlace. La pila de elementos de enlace en

wsFederationHttpBindinges la misma que la que contiene wsHttpBinding

cuando Elemento <security> de <wsFederationHttpBinding> se establece con el valor predeterminado de Message.

wsFederationHttpBinding controla los detalles de la configuración de seguridad de mensajes en Elemento <message> de <wsFederationHttpBinding>. Observe que el elemento Elemento <security> de <wsFederationHttpBinding> proporciona acceso sólo cuando no se puede cambiar la seguridad utilizada por el enlace una vez creado éste último.

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

Mantener la directiva protegida es especialmente importante en escenarios de federación. Se recomienda utilizar algún formulario de seguridad, como HTTPS, para proteger la directiva de los usuarios malintencionados.

En los escenarios de federación que utilizan este enlace, la directiva del servicio tiene potencialmente información importante como la clave para utilizar para cifrar el token emitido (SAML), el tipo de demandas para introducir el token, etc. Si esta directiva se manipula, un atacante podría detectar la clave del token emitido que conduce a una modificación posterior, divulgación de información y otros comportamientos malintencionados. Para ayudar a evitar esto, la directiva se debe obtener firmemente (utilizando HTTPS, por ejemplo) del servicio.

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

Ejemplo

<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="https://localhost/Sts" />
           </message>
        </security>
    </binding>
</wsFederationBinding>
</bindings>
</system.ServiceModel>
</configuration>

Vea también

Referencia

WSFederationHttpBinding
WSFederationHttpBindingElement

Conceptos

<binding>

Otros recursos

How to: Create a WSFederationHttpBinding
Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients