Integración con la seguridad de WAS mediante un interceptor personalizado

En esta sección se describe cómo crear un interceptor de SSO para la integración con la seguridad de WebSphere Application Server (WAS).

Antes de empezar

El interceptor de SSO de formulario proporcionado autentica los usuarios con una página de inicio de sesión basada en formulario. A continuación se muestra un ejemplo de cómo crear un interceptor de SSO personalizado. El interceptor personalizado utiliza una clase de interceptor personalizado.

La clase de interceptor accede a WAS para obtener las credenciales de usuario autenticadas. Después de haber obtenido estas credenciales, se almacenan en memoria caché. Los inicios de sesión posteriores utilizan las credenciales almacenadas en memoria caché.

Requisito previo: Un usuario debe configurarse en WAS con credenciales de usuario LDAP.
Nota: Debe convertir el dominio LDAP de Build Forge LDAP que contiene los usuarios de WAS en el servidor LDAP "predeterminado". Para ello, vaya a este dominio LDAP de Build Forge, y seleccione "Convertir en predeterminado".

Protección del servicio de autorización (AuthServlet)

Build Forge ejecuta normalmente sus servicios como aplicación en el servidor de aplicaciones de Apache Tomcat proporcionado.

Acerca de esta tarea

A continuación, se proporcionan instrucciones para configurar Build Forge y utilizar WAS en lugar de Tomcat. Siga las instrucciones de la sección Uso de WebSphere Application Server en lugar de Apache Tomcat, con una excepción: el archivo rbf-services.war contiene un archivo denominado web.xml que se necesita extraer y modificar para añadir una restricción de seguridad. Antes de instalar esta aplicación bajo WAS, el archivo war deberá regenerarse después de ser modificado para que utilice la versión protegida de este archivo.

Para hacer esto, siga estas instrucciones:

Procedimiento

  1. Navegue hasta el directorio que contiene el archivo rbf-services.war (el directorio webapps en el root del servidor Tomcat). Copie este archivo en una ubicación temporal, por ejemplo, C:\rbf.
  2. Expanda el archivo WAR. En la línea de mandatos, ejecute el mandato: %IBM_JAVA_HOME%\jar –xvf rbf-services.war para expandir el contenido del archivo war.
    Nota: Java debe estar disponible y la variable de entorno IBM_JAVA_HOME debe ya haberse creado.
  3. Guarde el archivo rbf-services.war para recuperarlo posteriormente:
    1. Windows: copy rbf-services.war rbf-services.war.bak
    2. UNIX o Linux: cp rbf-services.war rbf-services.war.bak
  4. Busque el archivo web.xml en el directorio WEB-INF (a partir de los archivos expandidos del archivo war). Edite este archivo para añadir un contexto de seguridad. Por ejemplo, añada las siguientes líneas al final del archivo justo antes de la etiqueta </web-app>:
    <security-constraint id="SecurityConstraint_1">
             <web-resource-collection id="WebResourceCollection_1">
                <web-resource-name>/*</web-resource-name>
                <url-pattern>/AuthServlet/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
                <http-method>PUT</http-method>
                <http-method>DELETE</http-method>
             </web-resource-collection>
             <auth-constraint id="AuthConstraint_1">
                <description>myconstraint:+:</description>
                <role-name>User</role-name>
             </auth-constraint>
             <user-data-constraint id="UserDataConstraint_1">
                <transport-guarantee>NONE</transport-guarantee>
             </user-data-constraint>
          </security-constraint>
          <login-config id="LoginConfig_1">
             <auth-method>BASIC</auth-method>
             <realm-name>full-qualified-domain</realm-name>
          </login-config>
          <security-role id="SecurityRole_1">
             <role-name>User</role-name>
          </security-role>
    Nota: El <auth-method> puede ser cualquier método de autenticación J2EE soportado por WAS. El método de autenticación más común es FORM, que requiere parámetros de configuración adicionales. Consulte la documentación de WebSphere para obtener instrucciones sobre cómo configurar FORM en la aplicación.
  5. En la línea de mandatos, vuelva a generar el archivo war (invocado desde el mismo directorio en el que se extrajo) ejecutando el siguiente mandato:
    %IBM_JAVA_HOME%\jar –cvf  rbf-services.war

    Ahora debería tener una nueva versión de rbf-services que se haya modificado para proteger AuthServlet con restricciones J2EE. Complete las instrucciones de instalación para ejecutar con WAS e instalar esta versión de rbf-services.war a través de Aplicaciones->Instalar nueva aplicación. Asegúrese de que Build Forge no esté en ejecución mientras configura WAS.

    Una vez instalado, vaya a Aplicaciones->Aplicaciones empresariales. Pulse en el nombre de aplicación para configurarlo. En Detallar propiedades, pulse en el enlace titulado Correlación de rol de seguridad con usuario/grupo. Seleccione el recuadro de selección Todos autenticados para el usuario. Después de realizar este cambio, asegúrese de guardarlo en la configuración maestra.

    También es necesario habilitar la seguridad de la aplicación en WAS. Para ello, vaya a Seguridad->Administración, aplicaciones e infraestructura seguras. Asegúrese de que está activada la opción Habilitar seguridad de aplicación.

    En este momento, reinicie el servidor de WAS y, a continuación, reinicie el servidor de Build Forge.
    Nota: El rbf-services debería ahora iniciarse como parte del proceso de inicio de WAS, así que WAS deberá iniciarse antes que Build Forge.

Creación de una nueva configuración SSO

Cree una nueva configuración SSO que utilizar con el interceptor.

Procedimiento

  1. En la consola de Build Forge, vaya a Administración->Seguridad->SSO.
  2. Pulse Añadir configuración SSO.
  3. Establezca las propiedades para la configuración.
    • Nombre: especifique un nombre para esta configuración.
    • Clase Java: especifique com.buildforge.services.server.sso.was.WebSphereSSOInterceptor
    • Activa: seleccione Sí.
  4. Pulse Guardar.
  5. Mueva esta configuración para que aparezca primero en la lista. En el menú situado a la izquierda del nombre de configuración, seleccione Mover hasta superior.

Correlación de los usuarios LDAP o de un grupo LDAP a usuarios locales

Correlacione usuarios LDAP o un grupo LDAP a usuarios locales, como por ejemplo el usuario root local.

Acerca de esta tarea

Una vez que cree un interceptor SSO de WebSphere, podrá configurar el interceptor para:
  • Correlacionar usuarios LDAP a usuarios locales, incluido el root
  • Correlacionar un grupo LDAP a un usuario local, como por ejemplo root

Para configurar una correlación, defina un entorno y, a continuación, haga referencia a dicho entorno en el interceptor.

Definición de un entorno

Procedimiento

  1. En la consola de Build Forge, pulse Entornos.
  2. Especifique un nombre para el entorno y pulse Guardar entorno.
  3. Para correlacionar usuarios LDAP a usuarios locales, establezca y guarde las variables siguientes:
    1. Establezca ldap_user_list_mapping en LDAP_user1|local_user1;LDAP_user2|local_user2;LDAP_user3|local_user3
    2. Establezca ldap_realm_name en LDAP_domain_name
    Por ejemplo, suponga que el entorno siguiente está establecido:
    	ldap_user_list_mapping = user1|root;user2|root;user3|root
    	ldap_realm_name = bluepages.ibm.com:389

    En este caso, LDAP user1, user2 y user3 están correlacionados al usuario root local.

  4. Para correlacionar miembros de un grupo LDAP específico a un usuario local, establezca y guarde las variables siguientes:
    1. Establezca ldap_group_name_mapping en LDAP_group|local_user
    2. Establezca ldap_realm_name en LDAP_domain_name
    Nota: Si utiliza los dos tipos de correlaciones, la correlación de usuario tendrá precedencia sobre la correlación de grupo.
    Para un ejemplo de una correlación de grupo, suponga que el entorno siguiente está establecido:
    	ldap_group_name_mapping = cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com|root
    	ldap_realm_name = bluepages.ibm.com:389

    En este caso, los usuarios que son miembros del grupo LDAP cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com estarán correlacionados al usuario root local.

Cómo hacer referencia al entorno

Procedimiento

  1. En la consola de Build Forge, pulse Administración->Seguridad->SSO.
  2. Pulse el nombre del interceptor SSO de WebSphere.
  3. Establezca la propiedad Entorno para la configuración al entorno que acaba de definir.
  4. Pulse Guardar.
  5. Mueva esta configuración para que aparezca primero en la lista. En el menú situado a la izquierda del nombre de configuración, seleccione Mover hasta superior.

Ejecución del interceptor personalizado de SSO

Ahora puede iniciar sesión utilizando las nuevas configuraciones.

Acerca de esta tarea

Este interceptor de SSO personalizado permite ahora que las técnicas de seguridad de WAS autentiquen al usuario mediante una solicitud de AuthServlet que debe pasar a Build Forge como usuario.

Procedimiento

  1. Abra el navegador web. Especifique la dirección http://localhost.
  2. En lugar del formulario de inicio de sesión de Build Forge, verá ahora una página de autenticación. Especifique sus credenciales de usuario y pulse Intro.
  3. Después de la autenticación, observe que el inicio de sesión debería producirse automáticamente.
  4. Después de cerrar la sesión, aparecerá la página jsp predeterminada en lugar del formulario de inicio de sesión. Los inicios de sesión siguientes serán automáticos si el usuario sigue autenticado.

Cómo volver al SSO basado en formulario

Puede volver a utilizar el formulario de inicio de sesión de SSO.

Acerca de esta tarea

Para volver a configurar los sistemas para que utilicen el inicio de sesión de formulario, deberá instalar en WAS rbf-services y volver a instalar el archivo rbf-services.war original. En Build Forge, asegúrese de que el interceptor SSO basado en formulario está habilitado y aparece como el elemento superior. Inhabilite el interceptor de WAS personalizado. WAS y Build Forge deben reiniciarse para que estos cambios surtan efecto.

Procedimiento

  1. Desinstale rbf-services y vuelva a instalar el archivo rbf-services.war original.
  2. En Build Forge, asegúrese de que el interceptor SSO de formulario está habilitado y de que aparece como primer elemento (consulte "Configuraciones de seguridad de SSO de Build Forge SSO", más arriba).
  3. Inhabilite el interceptor de WAS personalizado.
  4. Reinicie WAS.
  5. Reinicie Build Forge.

Comentarios