WebSphere Application Server admite dos opciones de configuración de enlace
de emisor de conjunto de políticas para establecer un contexto de seguridad del cliente mediante señales de seguridad
SAML en los mensajes de solicitud SOAP de los servicios web. Las dos opciones de configuración son la correlación de señales SAML
con entradas de usuario de un repositorio de usuarios local y la aserción de señales SAML basándose en una relación de confianza.
Antes de empezar
En esta tarea se supone que está familiarizado con la tecnología SAML de
WebSphere Application Server.
Acerca de esta tarea
En esta tarea se describe el establecimiento de la opción de configuración del enlace de emisor
de conjunto de políticas de
WebSphere Application Server para establecer
un contexto de seguridad del cliente mediante señales de seguridad SAML en los mensajes de solicitud
SOAP de los servicios web. Puede correlacionar las señales SAML con una entrada de usuario en un repositorio
de usuarios local o confirmar las señales SAML basándose en una relación de confianza.
La segunda opción de configuración no necesita acceder al repositorio de usuarios local.
En su lugar, el entorno de ejecución de WS-Security llenará el contexto de seguridad del
cliente por completo utilizando el contenido de las señales de seguridad de SAML. Este
proceso se basa en una relación de confianza con el emisor de señales SAML. Si una señal SAML especifica el método de confirmación de sujeto de autorización del remitente. El proceso se basa en una relación de confianza con el remitente del mensaje.
Procedimiento
- Configure un enlace de interlocutor del conjunto de políticas y seleccione el tipo de señal SAML para representar una solicitud de cliente de servicios web.
- Pulse .
- Pulse Nuevo para crear la configuración del llamante.
- Especifique un Nombre, como llamante.
- Especifique un valor para Nombre local de identidad del llamante. Por ejemplo,
http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0, que debe
coincidir con la parte local del elemento CustomToken en la política WS-Security conectada.
- Pulse Aplicar y Guardar.
- Opcional: Correlacione las señales de seguridad SAML con una entrada de usuario
en un repositorio de usuarios local. La correlación con una entrada de usuario es el comportamiento predeterminado al
configurar un enlace de llamante sin especificar una opción de configuración.
De forma alternativa y opcional, puede seleccionar esta opción de configuración explícitamente con estos pasos:
- En la página de configuración de enlace de llamante, añada un manejador de devolución de llamada:
com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler.
- Añada una propiedad personalizada de manejador de devolución de llamada, crossDomainIdAssertion,
y establezca su valor en false.
- Opcional: Confirme las señales de seguridad SAML en función de la relación de confianza.
- En la página de configuración de enlace de llamante, añada un manejador de devolución de llamada:
com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler.
- Añada una propiedad personalizada de manejador de devolución de llamada, crossDomainIdAssertion,
y establezca su valor en true.
En WebSphere Application Server Versión
7.0 Fixpack 7 y releases posteriores, el entorno de ejecución de WS-Security adopta un
nombre de emisor de señal SAML para representar el nombre de dominio de seguridad
exterior. WS-Security adopta el elemento NameIDen el caso de señales de seguridad SAML 2.0
o el elemento NameIdentifier en el caso de señales de seguridad SAML 1.1 para representar el
nombre de seguridad del usuario. Como alternativa, puede especificar explícitamente qué atributo de señal SAML
va a utilizar para representar el nombre de seguridad del usuario. Por otra parte, también puede especificar qué
atributo de señal SAML va a utilizar para representar la pertenencia a grupos de usuarios. Consulte información sobre aserciones
SAML en los dominios de seguridad de WebSphere Application Server para obtener
una descripción detallada del modelo de confianza de aserción de señales SAML y la configuración de enlace.
La versión 8.x puede propagar el contenido de com.ibm.websphere.security.cred.WSCredential en una señal SAML. Debe establecer
una propiedad personalizada tokenRequest con un valor de propiedad issueByWSCredential
en la configuración de enlace de WS-Security del cliente de servicios web. Consulte
la propagación de señales SAML para obtener una descripción detallada de esta opción
de enlace. Si la propiedad crossDomainIdAssertion está establecida
en true en la Versión 8.x, WS-Security comprueba si una señal SAML
contiene un atributo UniqueSecurityName SAML con un elemento
NameFormat con un valor de com.ibm.websphere.security.cred.WSCredential.
Si se encuentra, WS-Security utiliza el valor del atributo NameQualifier del elemento
NameID o NameIdentifier para representar el nombre de reino
de seguridad del usuario. WS-Security utiliza también los valores de los atributos UniqueSecurityName
y GroupIds para representar un nombre de usuario exclusivo y la pertenencia a grupos. Este comportamiento
predeterminado es distinto entre la Versión 7 y la Versión 8.x del producto. Puede añadir una propiedad CallbackHandler,
IssuerNameForRealm y establecer su valor en true con el fin de configurar la Versión 8.x
para conservar el comportamiento de la Versión 7. Como alternativa, puede añadir una propiedad CallbackHandler,
NameQualifierForRealm y establecer su valor en true con el fin de configurar la Versión 8.x
para que se utilice siempre el atributo NameQualifier para representar el nombre de reino de seguridad del usuario.
- Habilite y configure la seguridad global de WebSphere Application Server.
Puede utilizar el asistente de configuración de seguridad para habilitar la seguridad administrativa. También debe habilitar la seguridad de
aplicaciones para que la aplicación de ejemplo pueda utilizar el sujeto de usuario autenticado en el contexto de seguridad para crear una señal SAML. Este
paso implica configurar el tercer punto de verificación de relación de confianza en el lado del proveedor de servicios web. Este paso es necesario
para utilizar
el servidor de aplicaciones para simular el proveedor de servicios web del dominio de seguridad. El subsistema de autenticación de
WebSphere Application Server V8.0 admite la aserción de la identidad de usuario con un nombre de reino foráneo, y comprueba el nombre
del reino foráneo
con respecto a la lista de reinos de autenticación de confianza de entrada. Tras completar este paso de configuración, WebSphere Application Server puede
crear un sujeto de interlocutor de cliente con una identidad de usuario en un dominio de seguridad foráneo.
- Configure dominios de seguridad de confianza.
- En el panel Seguridad global, pulse el botón Configurar situado junto a Definiciones de reino
disponibles.
- Pulse el enlace Reinos de autenticación de confianza - entrada.
- Seleccione la opción Confiar en reinos según se indica a continuación.
- Pulse el botón Añadir reino externo.
- Añada el nombre del emisor de aserción SAML a Nombre de reino externo.
El nombre del emisor de aserción SAML proporciona información sobre el emisor de la aserción SAML, que puede ser dentro del elemento Issuer de la
aserción SAML 2.0 o es el atributo Issuer de la aserción SAML.
Resultados
Ha configurado un servicio web para establecer un contexto de seguridad del cliente utilizando la señal de seguridad SAML
en los mensajes de solicitud SOAP de los servicios web.
Ejemplo
En el ejemplo siguiente se muestran los elementos
NameIdentifier y
Attribute
de una aserción SAML 1.1 autoemitida basándose en
WSCredential:
<saml:AttributeStatement>
<saml:Subject>
<saml:NameIdentifier NameQualifier="ldap.example.com:9080">uid=alice,dc=example,dc=com</saml:NameIdentifier>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Attribute AttributeName="UniqueSecurityName" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
<saml:AttributeValue>uid=alice,dc=example,dc=com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute AttributeName="GroupIds" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
<saml:AttributeValue>cn=development,dc=example,dc=com</saml:AttributeValue>
<saml:AttributeValue>cn=deployment,dc=example,dc=com</saml:AttributeValue>
<saml:AttributeValue>cn=test,dc=example,dc=com</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
En el ejemplo siguiente se muestran los elementos
NameID y
Attribute
de una aserción SAML 2.0 autoemitida basándose en
WSCredential:
<saml2:AttributeStatement>
<saml2:Attribute Name="UniqueSecurityName" NameFormat="com.ibm.websphere.security.cred.WSCredential" />
<saml2:AttributeValue>uid=alice,dc=example,dc=com</saml2:AttributeValue>
<saml2:Attribute>
<saml2:Attribute AttributeName="GroupIds" NameFormat="com.ibm.websphere.security.cred.WSCredential" />
<saml2:AttributeValue>cn=development,dc=example,dc=com</saml2:AttributeValue>
<saml2:AttributeValue>cn=deployment,dc=example,dc=com</saml2:AttributeValue>
<saml2:AttributeValue>cn=test,dc=example,dc=com</saml2:AttributeValue>
</saml2:Attribute>
<saml2:AttributeStatement>
<saml2:NameID NameQualifier="ldap.example.com:9060">alice</saml2:NameID>