domingo, 13 de enero de 2013

Integra Active Directory con Oracle WebLogic

Situación

En la implementación de una solución Java EE sobre un servidor de Oracle WebLogic, la gestión de usuarios puede ser gestionada con el LDAP integrado. Esto puede ser suficiente durante la etapa de desarrollo o para entornos pequeños; pero al desplegar soluciones en entornos reales, existe la necesidad de integrar el servidor Java EE a un LDAP existente

Para este caso, Oracle WebLogic Server permite integrar tu servidor Java EE a un gestor de identidades, como OpenLDAP, Microsoft Active Directory, entre otros.

Objetivo

  • Integrar Oracle WebLogic Server con Microsoft Active Directory.



Solución

  • Crear un Proveedor de Autenticación para Active Directory
  • Configurar el Proveedor
  • Ordenar los Proveedores de Autenticación




Crear un Proveedor de Autenticación para Active Directory

1. Ingresar a la Consola de Administración de Oracle WebLogic Server (http(s)://<host>:<puerto de servidor de administración>/console) y dentro del menú de Estructura de Dominio de WebLogic entrar a la opción de Dominio de Seguridad:


Los Dominios de Seguridad brindan todos los recursos necesarios (Usuarios, Grupos, Roles, Proveedores, etc.) para asegurar un Dominio de WebLogic.
2. Por defecto, "myrealm" es el Dominio de Seguridad creado. Ingresar al enlace y se deben de mostrar todos sus recursos:



3. Ingresar a la pestaña de Proveedores para agregar un nuevo proveedor. Permanecer en la pestaña secundaria de Autenticación:


Por defecto, se encuentra un proveedor de autenticación por defecto "DefaultAuthenticator", que usa el LDAP Embebido de WebLogic; y otro proveedor "DefaultIdentityAsserter" de "Identity Assertion" que brinda soporte para SSO (Single Sign On) dentro del Domino de WebLogic.

4. Seleccionar nuevo, y se abrirá el asistente de creación de Proveedores de Autenticación. Notar la variedad de proveedores disponibles. Ingresar el nombre del proveedor y el tipo de proveedor, en nuestro caso "ActiveDirectoryAuthenticator":



5. Aceptar la creación del proveedor:



Configurar el Proveedor

1. Ingresar al enlace del proveedor. Se debe mostrar las pantallas de configuración:



2. La pestaña de configuración incluye las pestañas secundarias de "Común" y "Proveedor Específico". Para realizar la conexión con Active Directory, ingresar a "Proveedor Específico":



Para conectarse al Active Directory (AD) se deben de ingresar el "Host" donde se encuentra ubicado el Servicio de AD (IP o nombre del equipo), el "Puerto" del Servicio (Por defecto: 389) y el usuario para conectarse con el LDAP (En el campo "Principal" se debe ingresar el nombre de usuario y en el campo de "Credencial" se ingresa la contraseña). 

Por último, si la conexión con el AD es a través de SSL, habilitamos el "SSL Activado".

3. Luego de definir la conexión, se debe de ingresar la ruta del AD donde están ubicados los Usuarios y Grupos a los que queremos darle acceso al Dominio de WebLogic:



En el DN ("Distinguished Name") se debe ingresar la ruta, normalmente una OU ("Organizational Unit") donde se encuentran los usuarios que queremos darle acceso a WLS (Ej.: ou=Usuarios,dc=jeqo,dc=com). 

Luego, otro parámetro clave en la integración con AD es el Atributo de Nombre de Usuario. Para el caso de AD, no se usa "cn" porque en este atributo se guarda el nombre de usuarios "Jorge Quilcate". Como no se desea utilizar ese valor para autenticar a un usuario, sino "jquilcate", se debe usar el atributo "sAMAccountName". 

Este mismo atributo se debe usar en el "Filtro de Nombre de Usuario" como se muestra en la imagen anterior.

La "Clase de Objeto de Usuario" permite filtrar de los recursos que maneje el AD, a cuales identificará como usuarios. Validar a través de un cliente de LDAP (ejemplo: JXplorer ) que clase de objeto distingue a los usuarios (Ej.: person, user, organizationalPerson).

Por último, seleccionar la opción de usar el nombre de usuario como Principal. Esto es necesario para las aplicaciones de Oracle Fusion Middleware que se tengan sobre el Dominio de WLS.

Otro atributo importante es el ámbito de búsqueda. Si está definido como "subtree" entrará a las OU (OrganizationalUnit) dentro de la ruta definida en el primer parámetro.

4. En la parte de Grupos, definir de forma similar donde se encuentran los grupos a utilizar en WLS:



Ingresar el DN Base de los grupos (Ej.: ou=Grupos WLS,dc=jeqo,dc=com). Con este parámetro sería suficiente para mapear los grupos del AD.

Luego de esta configuración se deben de guardar los cambios y reiniciar el servidor.

Ingresar Usuarios y Grupos dentro del Dominio de Seguridad, y deben de figurar los usuarios y grupos del AD.


Ordenar los Proveedores de Autenticación

Para WebLogic el orden de los proveedores es muy importante, ya qué cada vez que un usuario se autentique para acceder a algún recurso, lo hará pasando por los proveedores de autenticación de arriba hacia abajo. 
 
1. Para que se pueda utilizar el nuevo proveedor como el proveedor por defecto, se deben definir dos aspectos. Primero ingresar a los proveedores y seleccionar la opción de "Volver a Ordenar" y colocar el nuevo proveedor en primer lugar:



Guardar.

2. El segundo aspecto es definir los "Indicadores de Control". Existen 4 tipos de Indicadores de Control:

  • REQUERIDO: Siempre se deben autenticar contra el proveedor. Pasará a los siguientes proveedores a validar el usuario, aún si falla o accede.
  • REQUISITO: Siempre se deben autenticar contra el proveedor. Pasará a los siguientes proveedores a validar el usuario solo si el usuario accede.
  • SUFICIENTE: El usuario no necesita tener una autenticación exitosa con el proveedor. Si la autenticación es exitosa, retorna a la aplicación; si no, se seguirá buscando en los demás proveedores.
  • OPCIONAL: EL usuario no está obligado a pasar o no la autenticación con este proveedor. Si todos los proveedores están definidos con este indicador, por lo menos el usuario se deberá autenticar con uno de los proveedores.
Bajo este contexto, los proveedores que tenemos actualmente "ActiveDirectory" y "DefaultAuthentication" se deben de definir de la siguiente manera: Ambos deben tener el indicador de control en "SUFICIENTE":



Una vez guardada esta configuración, se debe de reiniciar los servidores del Dominio y se podrá acceder a las aplicaciones y soluciones Oracle Fusion Middleware del Dominio.


Tomar en cuenta, que si se está configurando un proveedor para una solución de Oracle Fusion Middleware, deben de ser basado en LDAP. Evitar usar un proveedor de Base de Datos para este tipo de sistemas.

Quedo atento a sus comentarios, y si tienen algún incidente con la configuración.


Saludos!