Validación de la señal del consumidor para proteger la autenticidad del mensaje

La información del consumidor de señales se utiliza en el lado del consumidor para incorporar y validar la señal de seguridad. De forma predeterminada, la señal Username, las señales X509 y LTPA se utilizan para la autenticidad de los mensajes.

Antes de empezar

La arquitectura de señales conectables y del proceso de señales en el tiempo de ejecución de Web Services Security reutiliza la misma interfaz de señales de seguridad y el mismo módulo de inicio de sesión JAAS (Java™ Authentication and Authorization Service) de las WSS API (Web Services Security API). Se puede utilizar las mismas creación y validación de señales para la API de WSS y para la SPI de WSS en el tiempo de ejecución de Web Services Security.

Restricción: La interfaz com.ibm.wsspi.wssecurity.token.TokenConsumingComponent no se utiliza con los servicios web JAX-WS. Si está utilizando servicios web JAX-RPC, esta interfaz sigue siendo válida.

Tenga en cuenta que el elemento de nombre de clave, (KeyName), no está soportado debido a que en la especificación actual del borrador de OASIS Web Services Security no se ha definido una aserción de políticas de KeyName.

Acerca de esta tarea

El manejador de retorno de llamada (CallbackHandler) de JAAS y el módulo de inicio de sesión (LoginModule) de JAAS son responsables de crear la señal de seguridad en el lado del generador y de validar (autenticar) la señal de seguridad en el lado del cliente.

Por ejemplo, en el extremo del generador, el LoginModule de JAAS crea la señal Username y utiliza CallbackHandler de JAAS para pasar los datos de autenticación. LoginModule de JAAS crea el objeto Username SecurityToken y lo pasa al tiempo de ejecución de la seguridad de servicios web.

A continuación, en el lado del consumidor, el formato XML de la señal Username se pasa a LoginModule de JAAS para la validación o autenticación y CallbackHandler de JAAS se utiliza para pasar los datos de autenticación desde el tiempo de ejecución de Web Services Security a LoginModule. Después de autenticar la señal, se crea un objeto Username SecurityToken y se pasa al tiempo de ejecución de Web Services Security.

Nota: WebSphere Application Server no soporta un módulo de inicio de sesión modular con la implementación del módulo de inicio de sesión predeterminado de WebSphere Application Server, lo que significar que se debe añadir el módulo de inicio de sesión antes o después de la implementación del módulo de inicio de sesión de WebSphere Application Server. Si desea organizar por módulos las implementaciones del módulo de inicio de sesión, debe desarrollar los módulos de inicio de sesión necesarios, porque no hay ninguna implementación predeterminada.
El paquete com.ibm.websphere.wssecurity.wssapi.token proporcionado por WebSphere Application Server incluye soporte para estas clases:
  • Señal de seguridad (SecurityTokenImpl)
  • Señal de seguridad binaria (BinarySecurityTokenImpl)
Además, WebSphere Application Server proporciona las siguientes subinterfaces preconfiguradas para las señales de seguridad:
  • Señal de clave derivada
  • Señal de contexto de seguridad (SCT)
  • Señal de nombre de usuario
  • Propagación de señales LTPA
  • Señal LTPA
  • Señal X509PKCS7
  • Señal X509PKIPath
  • Señal X509v3
  • Señal Kerberos v5

La señal Username, las señales X.509 y las señales LTPA se utilizan de manera predeterminada para la autenticidad de mensajes. La señal de clave derivada y las señales X.509 se utilizan de manera predeterminada para la firma y el cifrado.

La API de WSS y la SPI de WSS sólo están soportadas en el cliente. Para especificar el tipo de señal de seguridad en el lado del consumidor, también puede configurar conjuntos de políticas utilizando la consola administrativa. Asimismo, puede utilizar las API de WSS o los conjuntos de políticas para hacer coincidir las señales de seguridad del generador.

Las implementaciones predeterminadas del retorno de llamada y del módulo de inicio de sesión se han diseñado para utilizarse como un par, ambas con el significado de una parte de generador y otra de consumidor. Para utilizar las implementaciones predeterminadas, seleccione el generador apropiado y la señal de seguridad del consumidor en un par. Por ejemplo, seleccione system.wss.generate.x509 en el generador de señales y system.wss.consume.x509 en el consumidor de señales, cuando sea necesaria la señal X.509.

Para configurar la señal de seguridad del lado del consumidor, utilice la interfaz apropiada del consumidor de señales preconfigurado desde las API de WSS para completar los pasos de proceso de configuración de señales siguientes:

Procedimiento

  1. Genere la instancia wssFactory.
  2. Genere la instancia wssConsumingContext.

    La interfaz WSSConsumingContext almacena los componentes para consumir WS-Security (Web Services Security) como, por ejemplo, la verificación, el descifrado, las señales de seguridad y la indicación de fecha y hora. Cuando se llama al método validate(), se validan todos estos componentes.

  3. Cree los componentes del consumidor, como WSSVerification y WSSDecryption.
  4. Especifique una configuración JAAS indicando el nombre de la configuración de inicio de sesión de JAAS. La configuración de JAAS (Java Authentication and Authorization Service) especifica el nombre de la configuración de JAAS. La configuración de JAAS especifica cómo inicia la sesión la señal en el lado del consumidor. No elimine las configuraciones de inicios de sesión de la aplicación o del sistema definidas previamente. No obstante, en estas configuraciones, puede añadir nombres de clases de módulos y especificar el orden en el que WebSphere Application Server carga cada módulo.
  5. Especifique un nombre de clase del consumidor de señales. El nombre de la clase del consumidor de señales especifica la información necesaria para validar SecurityToken. La señal Username, las señales X.509 y las señales LTPA se utilizan de manera predeterminada para la autenticidad de mensajes.
  6. Especifique los valores del manejador de retorno de llamada indicando un nombre de clase de manejador de retorno de llamada. Especifica también las claves del manejador de retorno de llamada. Este nombre de clase es el nombre de la clase de implementación del manejador de retorno de llamada que se utiliza para el plug-in de la infraestructura de la señal de seguridad.
    WebSphere Application Server proporciona las implementaciones de manejador de retorno de llamada siguientes para el lado del consumidor:
    com.ibm.websphere.wssecurity.callbackhandler.PropertyCallback
    Esta clase es un retorno de llamada para el manejo del par nombre-valor en elementos de los archivos XMI de configuración de WS-Security (Web Services Security).
    ccom.ibm.websphere.wssecurity.callbackhandler.UNTConsumeCallbackHandler
    Esta clase es un manejador de retorno de llamada para la señal Username en el lado del consumidor. Esta instancia se utiliza para establecerse en el objeto WSSConsumingContext con objeto de validar una señal Username. Utilice esta implementación sólo para un cliente de aplicación Java Platform, Enterprise Edition (Java EE).
    com.ibm.websphere.wssecurity.callbackhandler.X509ConsumeCallbackHandler
    Esta clase es un manejador de retorno de llamada que se utiliza para validar el certificado X.509 que se inserta en la cabecera de seguridad de los servicios web dentro de un mensaje SOAP, como una señal de seguridad binaria en el lado del consumidor. Esta instancia se utiliza para generar el objeto WSSVerification y los objetos WSSDecryption, establecer los objetos en el objeto WSSConsumingContext para validar las señales de seguridad binarias X.509. Son necesarios un almacén de claves y una definición de clave para este manejador de retorno de llamada. Si utiliza esta implementación, se deben haber proporcionado en el lado del generador una contraseña, una vía de acceso y un tipo de almacén de claves.
    com.ibm.websphere.wssecurity.callbackhandler.LTPAConsumeCallbackHandler
    Esta clase es un manejador de retorno de llamada para las señales LTPA (Lightweight Third Party Authentication) en el lado del consumidor. Esta instancia se utiliza para generar los objetos WSSVerification y WSSDecryption para validar una señal LTPA.

    Este manejador de retorno de llamada se utiliza para validar la señal de seguridad LTPA insertada en la cabecera de seguridad de los servicios web dentro del mensaje SOAP como una señal de seguridad binaria. Sin embargo, si se especifican el nombre de usuario y la contraseña, WebSphere Application Server autentica el nombre de usuario y la contraseña para obtener la señal de seguridad LTPA, en lugar de obtenerla desde el sujeto RunAs. Utilice este manejador de retorno de llamada cuando el servicio web actúe como un cliente en el servidor de aplicaciones. Se le recomienda que no utilice el manejador de retorno de llamada en un cliente de aplicaciones Java EE. Si utiliza esta implementación, se deben haber proporcionado una contraseña y un ID de usuario de autenticación básica en el lado del generador.

    com.ibm.websphere.wssecurity.callbackhandler.KRBTokenConsumeCallbackHandler
    Esta clase es un manejador de retorno de llamada para la señal Kerberos v5 en el lado del consumidor. Esta instancia se utiliza para establecer el objeto WSSConsumingContext para consumir AP-REQ de Kerberos v5 como señal de seguridad binaria. La instancia se utiliza también para generar los objetos WSSVerification y WSSDecryption para utilizar la clave de sesión Kerberos o una clave derivada en el descifrado y la verificación de mensajes SOAP.
  7. Si se especifica una señal X.509, también se especifica información de señal adicional.
    Tabla 1. Información para la señal X.509. Utilice la señal X.509 para autenticar los mensajes.
    Información de señales Descripción
    keyStoreRef El nombre de referencia del almacén de claves que se utiliza para el localizador de claves.
    keyStorePath La vía de acceso del archivo de almacén de claves desde el cual se carga el almacén de claves, si fuera necesario. Se recomienda utilizar ${USER_INSTALL_ROOT} en el nombre de vía de acceso ya que esta variable se amplía hasta la vía de acceso de WebSphere Application Server de la máquina. Esta vía de acceso es necesaria cuando se utilizan las implementaciones del manejador de retorno de llamada de señales X.509.
    keyStorePassword La contraseña se utiliza para comprobar la integridad del almacén de claves, o la contraseña del almacén de claves que se utiliza para desbloquear el almacén de claves y acceder al archivo de almacén de claves. El almacén de claves y su configuración se utilizan para algunas de las implementaciones predeterminadas del manejador de retorno de llamada que son proporcionadas por WebSphere Application Server.
    keyStoreType El tipo de almacén de claves que se utiliza para el localizador de claves. Esta selección indica el formato utilizado por el archivo de almacén de claves. Los valores siguientes están disponibles para su selección:
    JKS
    Utilice esta opción si el almacén de claves utiliza el formato JKS (Java Keystore).
    JCEKS
    Utilice esta opción si se configura Java Cryptography Extension en SDK (Software Development Kit). De forma predeterminada, IBM® JCE está configurado en WebSphere Application Server. Esta opción proporciona una mayor protección para las claves privadas almacenadas utilizando el cifrado Triple DES.
    JCERACFKS
    Utilice JCERACFKS si los certificados se almacenan en un conjunto de claves SAF (sólo z/OS).
    PKCS11KS (PKCS11)
    Utilice este formato si el almacén de claves utiliza el formato de archivo PKCS número 11. Los almacenes de claves que utilizan este formato pueden contener claves RSA en el hardware criptográfico o pueden contener claves de cifrado que utilizan hardware criptográfico para garantizar la protección.
    PKCS12KS (PKCS12)
    Utilice esta opción si el almacén de claves utiliza el formato de archivo PKCS número 12.
    alias El nombre del alias de la clave. El localizador de claves utiliza el alias de clave para buscar la clave dentro del archivo del almacén de claves.
    keyPassword La contraseña de la clave que se utiliza para recuperar la clave. Esta contraseña es necesaria para acceder al objeto de clave en el archivo de almacén de claves.
    keyName El nombre de la clave. Para las firmas digitales, el nombre de la clave es utilizado por la información de firma del generador de solicitudes o del consumidor de respuestas para determinar qué clave se va a utilizar para firmar digitalmente el mensaje. Para el cifrado, se utiliza el nombre de clave para determinar la clave que se utiliza para el cifrado. El nombre de la clave debe ser un nombre distinguido (DN) totalmente cualificado. Por ejemplo, CN=Bob,O=IBM,C=US.
    trustAnchorPath La vía de acceso del archivo desde el cual se carga la ancla de confianza.
    trustAnchorType El tipo de ancla de confianza.
    trustAnchorPassword La contraseña que se utiliza para comprobar la integridad del ancla de confianza o la contraseña utilizada para desbloquear el almacén de claves.
    certStores Una lista de almacenes de certificados. Un almacén de certificados de colecciones incluye una lista de certificados intermediarios que no son de confianza y listas de revocación de certificados (CRL). El almacén de certificados de colecciones se utiliza para validar la vía de acceso del certificado de las señales de seguridad entrantes con formato X.509.
    provider El proveedor de seguridad.

    Se puede especificar lo siguiente para una señal X.509:

    1. Sin ningún almacén de claves.
    2. Con un ancla de confianza. Un ancla de confianza especifica una lista de configuraciones de almacén de claves que contienen certificados raíz de confianza. Estas configuraciones se utilizan para validar la vía de acceso del certificado de las señales de seguridad entrantes con formato X.509. Por ejemplo, cuando selecciona el ancla de confianza o el almacén de certificados de un certificado de confianza, debe configurar el ancla de confianza y el almacén de certificados antes de establecerla vía de acceso del certificado.
    3. Con un almacén de claves que se utiliza para el localizador de claves.

      En primer lugar, debe haber creado el archivo de almacén de claves, utilizando un programa de utilidad de herramienta de claves, por ejemplo. Se utiliza el almacén de claves para recuperar el certificado X.509. Esta entrada especifica la contraseña que se utiliza para acceder al archivo de almacén de claves. Los objetos de almacén de claves de las anclas de confianza contienen los certificados raíz de confianza que utiliza la API CertPath para validar la fiabilidad de una cadena de certificados. Los nombres del ancla de confianza y del almacén de certificados de colecciones se crean en la vía de acceso del certificado en el consumidor de señales.

    4. Con un almacén de claves que se utiliza para el localizador de claves y el ancla de confianza.
    5. Con una correlación que incluye pares clave-valor. Por ejemplo, puede especificar el nombre del tipo de valor y el URI (identificador de recursos uniforme) del tipo de valor. El tipo de valor especifica el URI del espacio de nombres del tipo de valor para la señal del consumidor y representa el tipo de señal de esta clase:
      ValueType: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3
      Especifica una señal de certificado X.509.
      ValueType: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509PKIPathv1
      Especifica certificados X.509 en una vía de acceso PKI (infraestructura de claves públicas). Este manejador de retorno de llamada se utiliza para crear certificados X.509 codificados con el formato PkiPath. El certificado se inserta en la cabecera de Web Services Security en el mensaje SOAP como señal de seguridad binaria. Se necesita un almacén de claves para este manejador de retorno de llamada. El manejador de retorno de llamada no soporta CRL; por lo tanto, no es necesario ni se utiliza el almacén de certificados de colecciones. Si utiliza esta implementación, debe proporcionar una contraseña, una vía de acceso y un tipo de almacén de claves en este panel.
      ValueType: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#PKCS7
      Especifica una lista de certificados X.509 y listas de revocación de certificados en un formato PKCS número 7. El manejador de retorno de llamada se utiliza para crear certificados X.509 codificados con el formato PKCS número 7. El certificado se inserta en la cabecera de seguridad de los servicios web del mensaje SOAP como una señal de seguridad binaria. Se necesita un almacén de claves para este manejador de retorno de llamada. Puede especificar una lista de revocación de certificados (CRL) en el almacén de certificados de colecciones. El CRL se codifica con el certificado X.509 con el formato PKCS número 7. Si utiliza esta implementación, debe proporcionar un tipo, una vía de acceso y una contraseña para el almacén de claves.

      Para algunas señales, WebSphere Application Server proporciona un nombre local predefinido para el tipo de valor. Cuando especifique el nombre local siguiente, no tendrá que especificar un URI del tipo de valor:

      ValueType: http://www.ibm.com/websphere/appserver/tokentype/5.0.2
      Para una señal LTPA, puede utilizar LTPA para el nombre local del tipo de valor. Este nombre local provoca que se especifique http://www.ibm.com/websphere/appserver/tokentype/5.0.2 para el URI (identificador de recursos uniforme) del tipo de valor.
      ValueType: http://www.ibm.com/websphere/appserver/tokentype/5.0.2
      Para la propagación de señales LTPA, puede utilizar LTPA_PROPAGATION para el nombre local del tipo de valor. Este nombre local provoca que se especifique http://www.ibm.com/websphere/appserver/tokentype para el URI (identificador de recursos uniforme) del tipo de valor.
  8. Si se especifica la señal Username como el nombre de la clase del consumidor de señales, se puede especificar la información de señal siguiente:
    1. Si se va a especificar nonce.

      Esta opción indica si se incluye un elemento Nonce para el consumidor de señales. Nonce es un número criptográfico exclusivo que se incorpora en un mensaje para ayudar a detener ataques repetidos no autorizados de señales Username. Nonce sólo es válido cuando el tipo de señal que se valida es una señal Username y sólo está disponible para el enlace del consumidor de respuestas.

    2. Especifica la palabra clave de la indicación de fecha y hora. Esta opción indica si se va a verificar una indicación de fecha y hora en la señal Username. La indicación de fecha y hora sólo es válida cuando el tipo de señal incorporada es una señal Username.
    3. Especifica una correlación que incluye pares clave-valor. Por ejemplo, puede especificar el nombre del tipo de valor y el URI (identificador de recursos uniforme) del tipo de valor. El tipo de valor especifica el URI del espacio de nombres del tipo de valor para la señal del consumidor y representa el tipo de señal de esta clase:
      Tipo de valor del URI: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken
      Especifica una señal Username.
  9. Si se especifica una señal Kerberos v5 como nombre de la clase generadora de señales, se puede especificar la siguiente información de señales:
    Información de señales Descripción Valor por omisión
    tokenValueType Tipo de valor de señal Kerberos en QName definido por la especificación Oasis Kerberos Token Profile v1.1. http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ
    requireDKT Valor booleano para exigir una clave derivada para la protección de mensajes. false
    clabel Etiqueta de cliente para la clave derivada. WS-SecureConversation

    Especifique un valor nulo para utilizar el valor predeterminado.

    slabel Etiqueta de servicio para la clave derivada. WS-SecureConversation

    Especifique un valor nulo para utilizar el valor predeterminado.

    keylen Longitud de la clave derivada. 16

    Especifique cero para utilizar el valor predeterminado

    supportTokenRequireSHA1 Valor booleano para exigir una clave SHA1 que se utiliza en los siguientes mensajes de solicitud cuando se utiliza la señal de Kerberos como señal de soporte. false

    La clave SHA1 se utiliza sólo si la señal Kerberos de soporte está protegida. Si está establecida en true, la clave SHA1 siempre se utiliza.

    decComponent Instancia de WSSDecryption . Establezca decComponent y verComponent en un valor nulo para inicializar esta instancia primero en el componente de descifrado o verificación. A continuación, utilice el componente inicializado sólo en el constructor del manejador de retorno de llamada del segundo componente.
    verComponent Instancia de WSSVerfication. Establezca decComponent y verComponent en un valor nulo para inicializar esta instancia primero en el componente de descifrado o verificación. A continuación, utilice el componente inicializado sólo en el constructor del manejador de retorno de llamada del segundo componente.
    Se definen tipos de valores de señal adicional en la especificación OASIS Kerberos Token Profile v1.1. Especifique el tipo de valor de señal como nombre local. No es necesario especificar el URI de tipo de valor para la señal Kerberos v5.
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ1510
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ1510
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ4120
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ4120
  10. Si se utiliza Secure Conversation para la protección de mensajes, se debe especificar la información siguiente:
    Información Descripción
    EncryptionAlgorithm Determina el tamaño de la clave.
    cLabel Etiqueta de cliente utilizada al crear la clave derivada.
    sLabel Etiqueta de servidor utilizada cuando se crea la clave derivada.
  11. Defina los componentes en el objeto wssConsumingContext.
  12. Invoque el método wssConsumingContext.process().

Resultados

Gracias al uso de las API de WSS, ha configurado el consumidor de señales.

Qué hacer a continuación

Debe especificar una configuración similar de generador de señales, si todavía no se ha completado.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configtokenconjaxws
File name: twbs_configtokenconjaxws.html