Señal de nombre de usuario

Puede utilizar el elemento <UsernameToken> para propagar un nombre de usuario y, opcionalmente, información de contraseña. Asimismo, puede utilizar este tipo de señal para incluir información de autenticación básica. Se utilizan un nombre de usuario y una contraseña para autenticar el mensaje SOAP.

OASIS: Web Services Security UsernameToken Profile 1.0

En la aserción de identidad se utiliza un UsernameToken que contiene el nombre de usuario. La aserción de identidad establece la identidad del usuario según la relación de confianza.

El siguiente ejemplo muestra la sintaxis del elemento <UsernameToken> :

<wsse:UsernameToken wsu:Id="Example-1">
   <wsse:Username> 
   ... 
   </wsse:Username>
   <wsse:Password Type="..."> 
   ... 
   </wsse:Password>
   <wsse:Nonce EncodingType="..."> 
   ... 
   </wsse:Nonce>
   <wsu:Created> 
   ... 
   </wsu:Created>
</wsse:UsernameToken>

La especificación Web Services Security define los siguientes tipos de contraseña:

http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText (valor predeterminado)
Este tipo es la contraseña real del nombre de usuario.
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest
El tipo es el resumen de la contraseña del nombre de usuario. El valor es un valor hash SHA1 codificado en base 64 de la contraseña codificada en UTF8.

WebSphere® Application Server da soporte al tipo PasswordText predeterminado. No obstante, no da soporte al resumen de contraseña ya que la mayoría de políticas de seguridad de registros de usuarios no exponen la contraseña al software de la aplicación.

El siguiente ejemplo ilustra el uso del elemento <UsernameToken> :
<S:Envelope 
       xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <S:Header>
            ...
        <wsse:Security>
            <wsse:UsernameToken>
                <wsse:Username>Joe</wsse:Username>
                <wsse:Password>ILoveJava</wsse:Password>
            </wsse:UsernameToken>
        </wsse:Security>
    </S:Header>
</S:Envelope>

OASIS: Web Services Security UsernameToken Profile 1.1

WebSphere Application Server da soporte a los estándares Username Token Profile 1.0 y Versión 1.1 .

WebSphere Application Server no da soporte a las funciones siguientes:

  • En ambas versiones de la especificación de perfiles de señal Username, el tipo de contraseña de conversión no está soportado
  • En ambas versiones de la especificación de perfiles de señal Username, la derivación de clave basada en una contraseña no está soportada.

Puede utilizar conjuntos de políticas para configurar UsernameToken utilizando la consola administrativa. Asimismo, puede utilizar las API Web Services Security para conectar la señal Username al mensaje SOAP. La figura siguiente describe la creación y validación de la señal Username para los modelos programación JAX-RPC y JAX-WS.

Creación y validación del token de nombre de usuario utilizando el módulo de inicio de sesión JAAS y el JAAS CallbackHandler en JAX- RPC
Creación y validación del token de nombre de usuario utilizando el módulo de inicio de sesión JAAS y el JAAS CallbackHandler en JAX- RPC
Creación y validación de la señal Username utilizando el módulo de inicio de sesión JAAS y el CallbackHandler JAAS en JAX-WS
Creación y validación de la señal Username utilizando el módulo de inicio de sesión JAAS y el CallbackHandler JAAS en JAX-WS
Nota: La API de WSS sólo está disponible cuando se utiliza el modelo de programación JAX-WS (API de Java™ para servicios web basados en XML).

En el lado del generador, la señal Username se crea utilizando el LoginModule JAAS y el CallbackHandler JAAS para pasar los datos de autenticación. El LoginModule JAAS crea el objeto UsernameToken y lo pasa al tiempo de ejecución de Web Services Security.

En el lado del consumidor, el formato XML de la señal Username se pasa al LoginModule JAAS para la validación o la autenticación, y el CallbackHandler JAAS se utiliza para pasar los datos de autenticación desde el tiempo de ejecución de Web Services Security al LoginModule JAAS. Una vez autenticada la señal, se crea un objeto UsernameToken y se pasa al tiempo de ejecución de Web Services Security.

En el siguiente ejemplo se proporciona un código de ejemplo para crear señales Username:

WSSFactory factory = WSSFactory.getInstance();
   WSSGenerationContext gencont = factory.newWSSGenerationContext();
	
// Attach the username token to the message.
   UNTGenerationCallbackHandler ugCallbackHandler = 
      newUNTGenerationCallbackHandler("alice", "ecila");
   SecurityToken ut = factory.newSecurityToken(ugCallbackHandler, 
                                               UsernameToken.class);
   gencont.add(ut);

// Generate the WS-Security header
gencont.process(msgctx);