Compartir a través de


Asignación de metadatos

El contenido de un documento de metadatos se asigna a la API de metadatos de las maneras que se explican en las secciones siguientes.

En esta documentación se usan los siguientes prefijos de espacio de nombres:

wsdl   => http://schemas.xmlsoap.org/wsdl/
soap11 => http://schemas.xmlsoap.org/wsdl/soap/
soap12 => http://schemas.xmlsoap.org/wsdl/soap12/
wsa09  => http://schemas.xmlsoap.org/ws/2004/08/addressing
wsa10  => http://www.w3.org/2005/08/addressing
wsa09p => http://schemas.xmlsoap.org/ws/2004/08/addressing/policy
wsa10p => http://www.w3.org/2006/05/addressing/wsdl
binp   => http://schemas.microsoft.com/ws/06/2004/mspolicy/netbinary1
mtomp  => http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization
sp     => http://schemas.xmlsoap.org/ws/2005/07/securitypolicy
wsp    => http://schemas.xmlsoap.org/ws/2004/09/policy
netf   => http://schemas.microsoft.com/ws/2006/05/framing/policy
httpp  => http://schemas.microsoft.com/ws/06/2004/policy/http
wst10  => http://schemas.xmlsoap.org/ws/2005/02/trust
wsi    => http://schemas.xmlsoap.org/ws/2005/05/identity

En las secciones siguientes se describen las construcciones de API junto con las construcciones de metadatos (WSDL o Policy) a las que corresponden.

La familiaridad con las especificaciones de metadatos, como WSDL y Policy, ayudará a comprender esta sección.

Dirección del punto de conexión

La dirección de un punto de conexión (vea WS_ENDPOINT_ADDRESS) se obtiene de un elemento de extensibilidad dentro del elemento wsdl:port del documento WSDL. Se admiten los siguientes elementos de extensibilidad para especificar la dirección:

<wsdl:port...>
    <soap11:address.../>
</wsdl:port>
<wsdl:port...>
    <soap12:address.../>
</wsdl:port>
<wsdl:port...>
    <wsa09:EndpointReference.../>
</wsdl:port>
<wsdl:port...>
    <wsa10:EndpointReference.../>
</wsdl:port>

WS_CHANNEL_BINDING

El enlace de canal (consulte WS_CHANNEL_BINDING) viene determinado por el transporte que usa el enlace soap, como se indica a continuación:

<soap:binding transport=&quot;http://schemas.microsoft.com/soap/tcp&quot;/> => WS_TCP_CHANNEL_BINDING
<soap:binding transport=&quot;http://schemas.xmlsoap.org/soap/http&quot;/> => WS_HTTP_CHANNEL_BINDING

WS_CHANNEL_PROPERTY_ENVELOPE_VERSION

La versión del sobre (consulte WS_CHANNEL_PROPERTY_ENVELOPE_VERSION) viene determinada por qué enlace soap se usa, como se indica a continuación:

<wsdl:binding...>
    <soap11:binding.../> => WS_ENVELOPE_VERSION_SOAP_1_1
</wsdl:binding>
<wsdl:binding...>
    <soap12:binding.../> => WS_ENVELOPE_VERSION_SOAP_1_2
</wsdl:binding>

Versión de direccionamiento

La versión de direccionamiento (consulte WS_CHANNEL_PROPERTY_ADDRESSING_VERSION) viene determinada por las siguientes aserciones en la directiva de punto de conexión:

<wsp:Policy...>
    <wsa09p:UsingAddressing.../> => WS_ADDRESSING_VERSION_0_9
</wsp:Policy>
<wsp:Policy...>
    <wsa10p:UsingAddressing.../> => WS_ADDRESSING_VERSION_1_0
</wsp:Policy>

Si una aserción de direccionamiento no está presente, se supone WS_ADDRESSING_VERSION_TRANSPORT .

Codificación de mensajes

La codificación del mensaje (consulte WS_CHANNEL_PROPERTY_ENCODING) viene determinada por las siguientes aserciones en la directiva de punto de conexión:

<wsp:Policy...>
    <binp:BinaryEncoding.../> => WS_ENCODING_XML_BINARY_SESSION_1, WS_ENCODING_XML_BINARY_1
</wsp:Policy>

Tenga en cuenta que la aserción de directiva de codificación binaria no incluye información sobre si la codificación binaria es con sesión o sin sesión. Esto viene determinado por la restricción de propiedad de codificación (que debe ser adecuada según si el WS_CHANNEL_TYPE que se usa es con sesión o no).

<wsp:Policy...>
    <mtomp:OptimizedMimeSerialization.../> => WS_ENCODING_XML_MTOM_UTF8, WS_ENCODING_XML_MTOM_UTF16LE, WS_ENCODING_XML_MTOM_UTF16BE
</wsp:Policy>

Si ninguna de las aserciones anteriores está presente, se usa una codificación de texto: WS_ENCODING_XML_UTF8, WS_ENCODING_XML_UTF16LE, WS_ENCODING_XML_UTF16BE.

Tenga en cuenta que la directiva no incluye información sobre el juego de caracteres para codificaciones de texto o MTOM (ya sea UTF8, UTF16LE o UTF16BE). El valor real del juego de caracteres utilizado viene determinado por la restricción de propiedad de codificación.

Restricciones con autenticación de encabezado HTTP

Esta sección se aplica cuando se especifica la restricción de enlace de seguridad WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT .

Este enlace de seguridad se indica en la directiva mediante diferentes aserciones que indican que se debe usar la autenticación de encabezado HTTP y que se debe usar un esquema de autenticación determinado. Las aserciones de directiva corresponden a los valores de la WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME de la siguiente manera:

<wsp:Policy...>
    <httpp:BasicAuthentication.../> => WS_HTTP_HEADER_AUTH_SCHEME_BASIC
</wsp:Policy>
<wsp:Policy...>
    <httpp:NegotiateAuthentication.../> => WS_HTTP_HEADER_AUTH_SCHEME_NEGOTIATE
</wsp:Policy>
<wsp:Policy...>
    <httpp:NtlmAuthentication.../> => WS_HTTP_HEADER_AUTH_SCHEME_NTLM
</wsp:Policy>
<wsp:Policy...>
    <httpp:DigestAuthentication.../> => WS_HTTP_HEADER_AUTH_SCHEME_DIGEST
</wsp:Policy>

Restricciones con seguridad de transporte de SLL

Esta sección se aplica cuando se especifica la restricción de enlace de seguridad WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT . En este caso se usan las siguientes aserciones de directiva:

<wsp:Policy...>
    <sp:TransportBinding...>
        <wsp:Policy...>
            <sp:TransportToken...>
                <wsp:Policy...>
                    <sp:HttpsToken.../>
            </wsp:Policy...>
        </wsp:Policy>
    </sp:TransportBinding...>
</wsp:Policy>

Restricciones con seguridad de transporte de SSPI

Esta sección se aplica cuando se especifica la restricción de enlace de seguridad WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT . En este caso se usan las siguientes aserciones de directiva:

<wsp:Policy...>
    <sp:TransportBinding...>
        <wsp:Policy...>
            <sp:TransportToken...>
                <wsp:Policy...>
                    <netf:WindowsTransportSecurity.../>
            </wsp:Policy...>
        </wsp:Policy>
    </sp:TransportBinding...>
</wsp:Policy>

Restricciones con seguridad de transporte

La restricción de propiedad WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL se puede especificar si se especifica alguna de las restricciones de enlace de seguridad:

Restricciones con el enlace de seguridad APREQ de Kerberos

Esta sección se aplica cuando se especifica la restricción de enlace de seguridad WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT . En este caso se usan las siguientes aserciones de directiva:

<sp:EndorsingSupportingTokens...>
    <wsp:Policy>
        <sp:KerberosToken>
            <WssGssKerberosV5ApReqToken11.../>
        </sp:KerberosToken>
    </wsp:Policy>
</sp:EndorsingSupportingTokens>

Restricciones con el enlace de seguridad de mensajes

Esta sección se aplica cuando se especifica la restricción de enlace de seguridad WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT . En este caso se usan las siguientes aserciones de directiva:

<sp:SignedSupportingTokens>
    <wsp:Policy>
        <sp:UsernameToken.../>
    </wsp:Policy>
</sp:SignedSupportingTokens>

WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT

Esta sección se aplica cuando se especifica la restricción de enlace de seguridad WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT . En este caso se usan las siguientes aserciones de directiva:

<sp:EndorsingSupportingTokens>
    <wsp:Policy>
        <sp:X509Token.../>
   </wsp:Policy>
</sp:EndorsingSupportingTokens>

WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT

Esta sección se aplica cuando se especifica la restricción de enlace de seguridad WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT . En este caso se usan las siguientes aserciones de directiva:

<sp:EndorsingSupportingTokens...>
    <wsp:Policy>
        <sp:IssuedToken sp:IncludeToken=&quot;xs:anyURI&quot;? ...=&quot;&quot; >
            <wsp:Issuer>...</wsp:Issuer>?
            <wsp:RequestSecurityTokenTemplate TrustVersion='xs:anyURI&quot;?>
                ...
                <wst10:Claims>
                    <wsi:ClaimType Optional='xs:boolean'?>xs:anyURI<wt:ClaimType>*
                </wst10:Claims>
                ...
            </wsp:RequestSecurityTokenTemplate>
            <wsp:Policy>
                <sp:RequireDerivedKeys/> ?
                <sp:RequireExternalReference/> ?
                <sp:RequireInternalReference/> ?
            </wsp:Policy> ?
        </sp:IssuedToken>
    </wsp:Policy>
</sp:EndorsingSupportingTokens>

A continuación se describe la asignación de campos del WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT a la directiva anterior:

  • El campo claimConstraints se usa para comprobar el conjunto de URI de tipo de notificación que aparecen dentro del elemento wsi:ClaimType anterior.

  • El campo issuerAddress corresponde al elemento wsp:Issuer anterior, que es el WS_ENDPOINT_ADDRESS del servicio que puede emitir el token.

  • El campo requestSecurityTokenTemplate corresponde a los elementos secundarios del elemento wsp:RequestSecurityTokenTemplate.

WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT

Esta sección se aplica cuando se especifica la restricción de enlace de seguridad WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT . En este caso se usan las siguientes aserciones de directiva:

<sp:EndorsingSupportingTokens...>
    <wsp:Policy>
        <sp:SecureConversationToken sp:IncludeToken=&quot;xs:anyURI&quot;? ...=&quot;&quot; >
            <wsp:Issuer>...</wsp:Issuer>?
            <wsp:Policy>
                <sp:RequireDerivedKeys.../>?
                <sp:RequireExternalUriReference.../>?
                <sp:SC10SecurityContextToken.../>? => WS_SECURE_CONVERSATION_VERSION_FEBRUARY_2005
                <sp:BootstrapPolicy... >?
                   <wsp:Policy> ...  </wsp:Policy> => WS_SECURITY_CONSTRAINTS
                </sp:BootstrapPolicy>
            </wsp:Policy>
        </wsp:SecureConversationToken>
    </wsp:Policy>
</sp:EndorsingSupportingTokens>

El modo de entropía viene determinado por la <aserción sp:Trust10> . <sp:RequireClientEntropy/> y <sp:RequireServerEntropy/> =>WS_SECURITY_KEY_ENTROPY_MODE_COMBINED< sp:RequireClientEntropy/> =>WS_SECURITY_KEY_ENTROPY_MODE_CLIENT_ONLY< sp:RequireServerEntropy/> =>WS_SECURITY_KEY_ENTROPY_MODE_SERVER_ONLY

WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION

Esta sección se aplica cuando se especifica la restricción de enlace de seguridad WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT . Las siguientes aserciones de directiva se usan para identificar los WS_TRUST_VERSION y las opciones asociadas.

<sp:Trust10> => WS_TRUST_VERSION_FEBRUARY_2005
    <sp:Policy>
        <sp:MustSupportClientChallenge/> ?
        <sp:MustSupportServerChallenge/> ?
        <sp:RequireClientEntropy/> ?
        <sp:RequireServerEntropy/> ?
        <sp:MustSupportIssuedTokens/> ?
    </sp:Policy>
</sp:Trust10>

La versión de confianza se puede especificar mediante el WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT con un identificador de propiedad de WS_REQUEST_SECURITY_TOKEN_PROPERTY_TRUST_VERSION.

WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION

Esta sección se aplica cuando se usa cualquiera de las siguientes restricciones de enlace:

La versión de seguridad de encabezado (especificada por WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION) viene determinada por una de las siguientes aserciones de directiva:

<wsp:Wss10> ... </wsp:Wss10> => WS_SECURITY_HEADER_VERSION_1_0
<wsp:Wss11> ... </wsp:Wss11> => WS_SECURITY_HEADER_VERSION_1_1

Restricciones con diseño de seguridad de encabezado

Esta sección se aplica cuando se usa cualquiera de las siguientes restricciones de enlace:

El diseño del encabezado de seguridad (especificado por WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT) viene determinado por una de las siguientes aserciones de directiva:

<sp:TransportBinding>
    <wsp:Policy>
        <sp:Layout>
            <sp:Lax.../> => WS_SECURITY_HEADER_LAYOUT_LAX
        </sp:Layout>
    </wsp:Policy>
</sp:TransportBinding>
<sp:TransportBinding>
    <wsp:Policy>
        <sp:Layout>
            <sp:Strict.../> => WS_SECURITY_HEADER_LAYOUT_STRICT
        </sp:Layout>
    </wsp:Policy>
</sp:TransportBinding>
<sp:TransportBinding>
    <wsp:Policy>
        <sp:Layout>
            <sp:LaxTsFirst.../> => WS_SECURITY_HEADER_LAYOUT_LAX_WITH_TIMESTAMP_FIRST
        </sp:Layout>
    </wsp:Policy>
</sp:TransportBinding>
<sp:TransportBinding>
    <wsp:Policy>
        <sp:Layout>
            <sp:LaxTsLast.../> => WS_SECURITY_HEADER_LAYOUT_LAX_WITH_TIMESTAMP_LAST
        </sp:Layout>
    </wsp:Policy>
</sp:TransportBinding>

Restricciones con seguridad de marca de tiempo

Esta sección se aplica cuando se usa cualquiera de las siguientes restricciones de enlace:

Si se incluye o no una marca de tiempo en el encabezado de seguridad (según lo especificado por WS_SECURITY_PROPERTY_TIMESTAMP_USAGE) viene determinada por la presencia de sp:IncludeTimestamp en la siguiente ubicación:

<sp:TransportBinding>
    <wsp:Policy>
        <sp:IncludeTimestamp.../>
    </wsp:Policy>
</sp:TransportBinding>

Si la aserción sp:IncludeTimestamp está presente, el valor de la directiva se WS_SECURITY_TIMESTAMP_USAGE_ALWAYS.

Si la aserción sp:IncludeTimestamp no está presente, el valor de la directiva se WS_SECURITY_TIMESTAMP_USAGE_NEVER.