jueves, 2 de febrero de 2017

CSF Key - Pasar credenciales dinámicamente a un Web Service en BPEL 12c


Un requisito muy frecuente en estos ultimos tiempos ha sido el proceso de pasar credenciales dinamicamente a llamadas de Web Services externos dentro de un proceso BPEL. Esto conlleva a hacer uso de CSF Keys en los composites SOA pero el reto verdaderamente esta en como usar estas CSF Keys desde SOA a travez del Proceso BPEL. Y por tanto, la magia reside en pasar dichas credenciales de forma separada.



Resumen:
  • Crear Mapa  oracle.wsm.security  en el dominio WebLogic.
  • Crear una Key dentro del Mapa oracle.wsm.security.
  • En el Composite SOA adjuntar la politica requerida al servicio externo que necesita las credenciales.
  • Crear una variable personalizada en el Proceso BPEL que albergará el nombre de la CSF Key.
  • Asignar el nombre de la CSF Key como valor de la variable antoriormente creada.
  • Añadir la propiedad csf-key a la actividad INVOKE y como valor de la propiedad establecer la variable anteriormente asignada.
  • Deployar el Composite SOA y Testear el código.

 Ejemplo Practico

 1_ Crear Mapa en el dominio haciendo uso de la consola Enterprise Manager (a.k.a. EM).

Para ello, ingrese a la consola del Enterprise Manager y acceda con sus credenciales.

Luego diríjase a: WebLogic Domain > NombreDominio > Security > Credentials




 2_ Hacer clic en el botón Create Map e ingresar oracle.wsm.security como nombre del Mapa: 

(Omita este paso si el Mapa oracle.wsm.security ya se encuentra creado)

3_ Seleccionar el Mapa oracle.wsm.security, hacer clic en el botón Create Key e ingresar ExternalService-CSF como nombre de la Llave CSF:


Se deberá completar los datos de la Llave CSF con Nombre de la Llave (punto 3), Tipo de Autentificación (punto 4), usuario y password (puntos 5, 6 y 7).


4_ Hacer clic en el botón OK para terminar la creación de la CSF Key propiamente dicha como se puede apreciar en la siguiente figura:



Advertencia: algunos datos (como Nombres de Web Services, Nombre de operaciones, etc.) fueron retocados para conservar el anonimato.

5_ En el siguiente Composite SOA, a modo de ejemplo, SecuredWS representa el SOAP que llama al Serivicio segurizado con usuario y password:



 Añadir politica de seguridad al servicio externo segurizado SecuredWS. Para ello hacer clic derecho sobre él, y luego seleccionar Configure SOA WS Policies...



Luego hacer clic en el botón con simbolo + y buscar la politica: oracle/wss_http_token_client_policy
 


 
6_  Crear variable que albergará el nombre de la CSF Key, para ello dentro del proceso BPEL hacer clic en el simbolo (X)



Luego hacer clic en el boton con simbolo +
 
 


y crear una variable de nombre  csfKey_Variable  de tipo xsd:string



7_  Es hora de añadir el nombre de la CSF Key creada en un principio desde el Enterprise Manager mediante una actividad Assign. Para ello, arrastrar un Assign por arriba de la actividad Invoke:
 


 Le damos un nombre al assign, y doble clic sobre él para asignarle un valor a la variable anteriormente creada:



Ahora, doble clic nuevamente sobre la variable csfKey_Variable y le asignamos el nombre de la CSF Key creada en Enterprise Manager, copiar el nombre ExternalService-CSF entre comillas simples:



8_ El paso mas importante: Crear una propiedad para hacer uso de la CSF Key. Para esto, hacer doble clic sobre la actividad Invoke y dirigirse a la pestaña Properties:



Hacer clic sobre el botón con simbolo + para añadir una Propiedad al Invoke. En la ventana emergente que se abre, hacer clic nuevamente en el botón con simbolo + y asignarle el nombre csf-key:



Seleccionar la varibale creada en los pasos anteriores y aceptar los cambios haciendo clic en OK. Debe quedar del siguiente modo:



Por ultimo, debe deployarse la aplicación SOA en el dominio WebLogic para probar la llamada al servicio segurizado.


A tener en cuenta

Puede que el servicio segurizado necesite ademas de usuario y contraseña un certificado SSL en el caso de usar HTTPS y/o de un Proxy Server para comunicarse correctamente. Para esto, puedes visitar los articulos relacionados a estos temas:

No hay comentarios:

Publicar un comentario