Ejecutar el ejemplo de Propagación de identidad de seguridad
Para ejecutar el ejemplo de Propagación de identidad de
seguridad, pase cada uno de los mensajes de ejemplo a través del nodo de
entrada de transporte adecuado del flujo de mensajes principal de
Propagación de identidad de seguridad.
Puede ejecutar el
ejemplo para saber qué sucede en las siguientes situaciones:
- El mensaje de entrada de WebSphere MQ contiene una señal de identidad de usuario en la cabecera MQMD del mensaje.
- El mensaje de entrada de WebSphere MQ contiene un conjunto de credenciales de identidad de usuario en el cuerpo del mensaje.
- El mensaje de entrada de WebSphere MQ contiene un elemento Request que
el nodo Compute del flujo principal utiliza para establecer las
credenciales de identidad correlacionada.
Las credenciales de identidad
correlacionada se basan en la señal de identidad de usuario, presente en la
cabecera MQMD del mensaje de entrada.
- El mensaje de petición de entrada de HTTP contiene una señal
de identidad de usuario y contraseña.
La señal de identidad de usuario y
contraseña está presente en la cabecera de Autenticación básica HTTP.
Para obtener más información, consulte
Acerca del ejemplo de Propagación de identidad
de seguridad.
Si encuentra cualquier tipo de problema al ejecutar el ejemplo, consulte Resolución de problemas cuando se ejecutan ejemplos en la documentación de WebSphere Message Broker.
Ejecutar el ejemplo con un mensaje WebSphere MQ que contiene una señal de identidad de usuario en la cabecera MQMD del mensaje
La cabecera de mensaje MQMD de los mensajes de WebSphere MQ
proporciona la siguiente información al sistema de seguridad del
intermediario:
- La serie "nombre de usuario" del campo ID de usuario.
- La serie "emitida por" del campo Nombre de aplicación de transferencia.
Para ejecutar el ejemplo con el mensaje WebSphere MQ que contiene una señal de
identidad de usuario en la cabecera MQMD:
- En la vista Desarrollo de intermediario, expanda el proyecto
SecurityIdentitySampleFlowProject. Expanda el directorio Pruebas de
flujo y efectúe una doble pulsación en
Security_Identity_MQ_ID.mbtest para abrir el archivo
en el Cliente de prueba.
- Pulse Colocar en cola en la barra de herramientas de
sucesos de prueba de flujo de mensajes.
Observe que el
mensaje XML no contiene ningún elemento en el cuerpo del mensaje.
- Expanda Cabecera en la sección Propiedades detalladas.
Observe que la Cabecera de mensaje seleccionada es
Enviar identidad.
Si cambia al separador Configuración del Cliente de prueba y
selecciona Cabecera de mensaje MQ "Enviar
identidad", puede ver los detalles de la cabecera.
Estos detalles incluyen mqmdUID como
ID de usuario y cliente de prueba como Nombre de aplicación de transferencia.
- En el separador Sucesos, pulse Enviar mensaje.
El mensaje se
coloca en la cola SECURITYIDFROMMQIN.
- Fíjese en los resultados:
- Obtenga el mensaje resultante de la cola SECURITYIDFROMMQOUT.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje.
El mensaje de salida se visualiza en Mensaje.
- Puede ver nuevos elementos bajo PropagatedIdentityReport, que
informan de los detalles de identidad propagados que se pasaron al flujo
de mensajes SecurityIdentityReportFlow desde el mensaje de entrada.
- Observe que la identidad presentada en el mensaje de salida
es el nombre de usuario mqmdUID.
Puesto que no hay ningún campo para la contraseña en el MQMD, el campo Contraseña está en blanco en el mensaje.
El Emisor se establece en el valor arbitrario HTTP porque el intermediario no establece la propiedad de cabecera UserAgent de HTTP.
Ejecutar el ejemplo con un mensaje WebSphere MQ que contiene credenciales
de identidad en el cuerpo del mensaje
Para superar la restricción de que el MQMD de WebSphere MQ sólo puede
proporcionar el emisor y la señal de identidad de usuario, se ha
proporcionado un nodo MQInput adicional.
Este nodo está configurado para
extraer un conjunto completo de credenciales de seguridad de campos del
cuerpo del mensaje.
Para ejecutar el ejemplo con el mensaje WebSphere MQ que contiene una señal de
identidad de usuario en el cuerpo del mensaje:
- En la vista Desarrollo de intermediario, expanda el proyecto
SecurityIdentitySampleFlowProject. Expanda el directorio Pruebas de
flujo y efectúe una doble pulsación en
Security_Identity_MSG_ID.mbtest para abrir el archivo
en el Cliente de prueba.
- Pulse Colocar en cola.
Observe que el
mensaje contiene elementos en la carpeta Body.MessageIdentity, que define
las siguientes credenciales de identidad:
- Username: IdInMsg
- Password: PwdInMsg
- IssuedBy: InMsgIssuer
- Expanda Cabecera en la sección Propiedades detalladas.
Observe que la Cabecera de mensaje seleccionada es Cabecera predeterminada.
Si va a la pestaña Configuración en el Cliente de prueba y selecciona Cabeceras de mensajes MQ"Cabecera predeterminada", puede ver los detalles de la cabecera. El ID de usuario y el Nombre de aplicación de transferencia están en blanco.
- En el separador Sucesos, pulse Enviar mensaje.
El mensaje se
coloca en la cola SECURITYIDFROMMSGIN.
- Fíjese en los resultados:
- Obtenga el mensaje resultante de la cola SECURITYIDFROMMSGOUT.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje. El mensaje de salida se visualiza en Mensaje.
- Puede ver los elementos body que se han creado en el flujo de
mensajes SecurityIdentityReportFlow a partir del mensaje de entrada.
- Observe que la identidad presentada en el mensaje de salida coincide
con los detalles de los elementos MessageIdentity del mensaje de entrada.
El emisor está establecido en el valor arbitrario HTTP porque el emisor no se propaga.
Ejecutar el ejemplo con un mensaje WebSphere MQ que solicita que esté
establecida una identidad correlacionada
Al trabajar con mensajes de WebSphere MQ que sólo contienen el nombre de
usuario y el emisor, a menudo es necesario invocar una correlación de
identidad federada en las credenciales.
Las credenciales pueden
correlacionarse luego en un formato que sea adecuado para invocar una
petición de servicio, por ejemplo, que requiere un nombre de usuario y
contraseña.
Normalmente se invoca un gestor de identidad federada externo
para realizar esta operación.
Este ejemplo ofrece una solución sencilla en
la que se utiliza un nodo Compute para correlacionar la identidad
entrante, para que se creen las credenciales de seguridad siguientes:
- El tipo de señal es nombre de usuario y contraseña.
- El nombre de usuario se crea como "minúsculas(id recibido)" + "@company.com".
- La contraseña se crea como "p_" + "minúsculas(id recibido)" + "año(indicación de fecha y hora actual)".
Para ejecutar el ejemplo con el mensaje de entrada de WebSphere MQ que
contiene una petición para establecer la identidad correlacionada
basándose en el nombre de usuario que se pasa en el MQMD del mensaje:
- En la vista Desarrollo de intermediario, expanda el proyecto
SecurityIdentitySampleFlowProject. Expanda el directorio
Pruebas de flujo y efectúe una doble pulsación en
Security_Identity_Mapped.mbtest para abrir el archivo
en el Cliente de prueba.
- Pulse Colocar en cola.
Observe que
el mensaje contiene el elemento Body.MapIdentity.
La presencia de este
elemento en el mensaje hace que el ESQL del flujo de mensajes
SecurityIdentitySampleFlow establezca las credenciales de identidad
correlacionada tal como se ha descrito antes.
- Expanda Cabecera en la sección Propiedades detalladas.
Observe que la Cabecera de mensaje seleccionada es
Enviar identidad.
Si cambia al separador Configuración del Cliente de prueba y
selecciona Cabecera de mensaje MQ "Enviar
identidad", puede ver los detalles de la cabecera. Estos detalles incluyen TESTUSER como ID de usuario y BRKTSTCLNT como Nombre de aplicación de transferencia.
- En el separador Sucesos, pulse Enviar mensaje.
El mensaje se
coloca en la cola SECURITYIDFROMMQIN.
- Fíjese en los resultados:
-
Obtenga el mensaje resultante de la cola SECURITYIDFROMMQOUT:
- En el Cliente de prueba, pulse Extraer de la cola
-
Pulse Obtener mensaje. El mensaje de salida se visualiza en Mensaje.
Puede ver los elementos body que se han creado en el flujo de
mensajes SecurityIdentityReportFlow a partir del mensaje de entrada.
Observe que la identidad presentada en el mensaje de salida se ha
creado a partir de la correlación del nombre de usuario enviado en el MQMD
del mensaje de entrada:
- Señal: "testuser@company.com"
- Contraseña: "p_testuser2011"
El emisor está establecido en el valor arbitrario HTTP porque el emisor no se propaga.
Ejecutar el ejemplo con un mensaje de petición HTTP
El transporte HTTP permite pasar credenciales de seguridad, tales como
nombre de usuario y contraseña, en la cabecera HTTP.
Se ha proporcionado una aplicación Java para ejecutar el ejemplo con un mensaje de petición HTTP que contiene una señal de identidad y contraseña de usuario en la cabecera de autenticación básica HTTP.
La aplicación Java
le permite someter el contenido de un archivo de texto, que
incluye un nombre de usuario y contraseña, al nodo HTTPInput del flujo de
mensajes de ejemplo.
El programa de ejemplo tiene los siguientes argumentos:
java BasicAuthHttpPost
<HostURL> <PuertoURL> <SufijoVíaAccesoURL> <Archivo XML>
[<IdUsuario> <Contraseña> ]
Donde los argumentos son:
- <HostURL> - Nombre de host al que enviar la petición HTTP; se establece en localhost.
- <PuertoURL> - Puerto de servicio HTTP, es el valor predeterminado del intermediario de 7080
- <SufijoVíaAccesoURL> - Sufijo de URL de HTTP; es /Security/IdentityFromHttp.
- <Archivo XML> - Vía de acceso al archivo que contiene los datos a
enviar como el cuerpo de la petición HTTP.
Este archivo es Messages\Simple.xml porque el archivo de datos del mensaje de ejemplo Simple.xml está situado en el mismo proyecto que el código fuente Java en el paquete Message.
- <IdUsuario> - ID de usuario en texto sin formato a enviar en
la cabecera de petición HTTP.
- <Contraseña> - Contraseña en texto sin formato a enviar en la
cabecera de petición HTTP.
Para ejecutar el ejemplo con un mensaje de petición HTTP:
- En WebSphere Message Broker Toolkit, conmute a la perspectiva Java.
- En la vista Explorador de paquetes, expanda el paquete
com.ibm.wmb.sample.httpClient expandiendo el
proyecto SecurityIdentitySampleApplicationProject.
- Pulse con el botón derecho del ratón HttpPostFileWithBAuth.java en com.ibm.wmb.sample.httpClient y seleccione Ejecutar como > Ejecutar configuraciones para que se abra el asistente Ejecutar configuraciones.
- Efectúe una doble pulsación en Aplicación Java en la vista de árbol de la izquierda y seleccione la configuración denominada HttpPostFileWithBAuth.
- En el separador Principal, asegúrese de que
Proyecto esté establecido en
SecurityIdentitySampleApplicationProject.
- Asegúrese de que Clase principal esté
establecida en com.ibm.wmb.sample.httpClient.HttpPostFileWithBAuth.
- Cambie al separador Argumentos del
asistente Ejecutar y entre lo siguiente en Argumentos del programa:
En Windows:
localhost 7080 /Security/IdentityFromHttp
Messages\Simple.xml HttpUserName HttpPassword
En Linux o Unix:
localhost 7080 /Security/IdentityFromHttp
Messages/Simple.xml HttpUserName HttpPassword
- Ha creado la configuración de ejecución.
Inicie la aplicación para enviar la petición HTTP al ejemplo
pulsando Ejecutar.
Fíjese en los resultados:
- La salida de la aplicación Java HttpPostFileWithBAuth se muestra en
la vista Consola. La vista Consola muestra la respuesta
HTTP recibida o detalla los errores de la acción de enviar o recibir.
- El mensaje de respuesta HTTP que se visualiza
tiene elementos en la carpeta Body que se crearon en el flujo de mensajes
SecurityIdentityReportFlow.
- La identidad presentada en el mensaje de salida es HttpUserName y
HttpPassword.
Estos son los valores que se pasaron como argumentos a la
aplicación de prueba y se enviaron en la cabecera de mensaje de petición
HTTP.
La presencia de estos valores demuestra que la identidad se ha
propagado mediante la petición HTTP desde el intermediario.
Volver a la página inicial del ejemplo