jueves, 15 de octubre de 2015

APLICACIÓN DE SEGURIDAD EN OSB 12c


Debido a la constante necesidad para la comunicación entre servicios existentes en diferentes inventarios de servicios (externos), es importante conocer que el OSB al ser el bus de comunicación entre ellos soporta como una de sus características, el manejo de la seguridad entre estos. Esta será aplicada de modo que sólo los usuarios válidos pueden invocar. Por esta razón, en esta oportunidad mostraré cómo aplicar seguridad a los servicios virtuales desarrollados en OSB.

El dummy que mostraré consiste en una virtualización de un servicio (ya previamente creado), que por medio de la capa OSB, se accede al servicio compuesto principal (SOAPUI MockService).


Con fines del tema principal del tutorial que es la seguridad en sí, procederé a aplicar y mostrar los pasos a seguir para poder realizar dicha protección en OSB 12c.

Antes que nada resumiré los puntos principales a configurar para la seguridad:
  • CREAR EL USUARIO DE ACCESO.
  • APLICAR POLITICA DE SEGURIDAD (2 FORMAS).


I. CREAR EL USUARIO DE ACCESO:

Como primer paso, es necesario crear los usuarios que puedan ser invocados por las aplicaciones consumidoras (Muchas organizaciones manejan sus usuarios en el directorio LDAP, pero la configuración de amarre no es parte de este tutorial). Este usuario será creado desde la consola Weblogic de la siguiente manera:

Desde el árbol de la consola de Weblogic (http://localhost:7101/console) acceder a: MyDomain/Dominios de Seguridad y seleccionar: myrealm:


Seleccionar la pestaña: Usuarios y Grupos y seleccionar el botón: Nuevo:


Ingresar los datos para la autenticación del usuario al que se le brindará el acceso entre: servicio & OSB:


Luego de registro se debe poder visualizarse de la siguiente manera en la tabla de usuarios:



II. APLICAR POLÍTICAS DE SEGURIDAD:

Como herramienta el OSB está completamente integrado con: Oracle Webservices Administrador (OWSM), que ofrece gran cantidad de las políticas de seguridad que se pueden utilizar para asegurar los servicios virtuales.

Entre las políticas una de las más resaltantes es denominada: oracle/wss_username_token_service_policy, para la protección por medio de un: user/password definir y creado en el paso anterior. Esta es la que se utilizará en la demostración:

Para la aplicación de las políticas de seguridad se mostrarán dos formas:


A.    DESDE LA FUENTE OSB:

Esta forma consiste en la aplicación de la política desde la misma fuente del proyecto OSB (específicamente desde el: Proxy Service): 

Desde las fuentes (proyecto OSB), ingresar al proxy del servicio virtual que se desea enmascarar y proteger. Luego, seleccionar: Policies, dar check en: From OWSM Policy Store.


Agregar desde: Security, la política requerida, en nuestro caso será: oracle/wss_username_token_service_policy y pulsar el botón: OK.


Verificar que la política se haya agregado correctamente:

 
 
Una vez terminado esto ya se puede desplegar el servicio virtual.


A.    DESDE LA CONSOLA OSB:

Esta forma consiste en la aplicación de la política desde la misma consola OSB: http://localhost:7101/sbconsole, ya que como se mencionó posee conexión directa con OWSM. Ingresar a la consola y seleccionar el proyecto OSB desplegado. Luego, dar check en: De Almacén de Políticas OWSM:


Asociar la política requerida, en nuestro caso será: oracle/wss_username_token_service_policy:


Ingresar la descripción de la política deseada y pulsar: Activar:


Verificar que la política se haya agregado correctamente. Luego, pulsar el botón: Guardar y luego: Activar:


Una vez terminado esto ya se puede probar el servicio virtual. IMPORTANTE, esta configuración de este modo estará activa siempre y cuando no se despliegue de nuevo el servicio (Se tendrá que aplicar luego de cada despliegue).


III. PRUEBA DEL SERVICIO VIRTUAL:

Una vez terminado las configuraciones ya sea de cualquiera de las dos formas anteriormente mencionadas, validaremos la URL expuesta en el navegador donde se verificará los tags de las políticas que se han agregado:


Las pruebas realizadas se pueden realizar tanto desde SOAPUI como desde el tester de la consola OSB. Una vez configura y expuesto el servicio, si se desea probar sin ingresar los tags de policy adicionales en la cabecera o ingresándolos incorrectamente el: user/password, se mostrará el error siguiente:


Agregando el contenido correcto de los tags en la parte del header con relación a las políticas, el servicio deberá responder correctamente:

   [soapenv:Header]
    [wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"]
       [wsse:UsernameToken]
          [wsse:Username]USUARIO[/wsse:Username]
          [wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"]PASSWORD[/wsse:Password]
       [/wsse:UsernameToken]
      [/wsse:Security]
   [/soapenv:Header]


Así mismo, se puede realizar la misma prueba en la consola OSB, desde el Proxy Service respectivamente:


Luego, de ingresar el bloque de policy en el header al igual que se hizo desde SOAPUI, el resultado de las pruebas sería el siguiente:




Con esto se termina el post, esperando que lo puedan aplicar en sus proyectos OSB.




No hay comentarios: