Ejemplo de Autenticación Personalizada

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Definición de Seguridad > Seguridad del Portal de Trabajo > Autenticación > Autenticación avanzada > Autenticación personalizada >

Ejemplo de Autenticación Personalizada

Introducción

El Portal de Trabajo de Bizagi soporta múltiples tipos de autenticación.

Por defecto, los proyectos de Bizagi usarán una autenticación local (teniendo en cuenta que Bizagi almacena usuarios y sus contraseñas cifradas).

Entre otros tipos de autenticación, usted puede contar con opciones integradas como autenticación Windows y LDAP o usar una combinación de 2 tipos en escenarios específicos donde tanto los usuarios corporativos como los externos, estarán trabajando en procesos.

Para más información sobre las opciones de autenticación en Bizagi, consulte Autenticación.

 

Para escenarios sofisticados donde las opciones anteriores no aplican a su sistema de autenticación, usted puede usar la autenticación personalizada, ya sea por sí misma o combinada junto con la autenticación local de Bizagi para manejar tanto los usuarios corporativos como los externos separadamente.

 

Custom Authentication

 

En esta sección ilustraremos cómo configurar la autenticación personalizada mediante un ejemplo paso a paso.

 

¿Qué necesita hacer?

Para usar la Autenticación personalizada, siga estos pasos:

 

1. Cree su componente

Escriba su propio código dentro de un componente (una clase de librería) la cual va a proveer la función que autentica contra su sistema de autenticación.

Observe que este componente puede conectarse con cualquier tipo de sistema que sirva como repositorio de usuarios (e.g. en una base de datos, archivos, en la nube o accesado a través de servicios Web, etc).

 

2. Cree sus usuarios en Bizagi

Asegúrese de que los usuarios que iniciarán sesión hayan sido creados (o importados) previamente en Bizagi.

Este es un requisito para que Bizagi examine si un usuario en particular está permitido en el Portal de Trabajo, de este modo, usted puede considerar el número de usuarios licenciados por su Portal de Trabajo.

Al crear los usuarios en Bizagi, considere que cada uno tendrá su propio nombre de usuario, dominio y todas las demás configuraciones básicas y pertenecerá a una organización definida.

Las contraseñas no son necesarias debido a que estas no será almacenadas en Bizagi cuando se autentique contra un sistema externo.

 

3. Configure la autenticación personalizada en Bizagi

Establezca el uso de autenticación personalizada ya sea por sí misma o combinada con la autenticación local de Bizagi.

Para configurar la autenticación personalizada, necesitará:

Especificar en Bizagi el namespace y la clase de su componente.

Especificar en Bizagi, la clase de la librería (nombre físico de la assembly) que contiene la clase anterior.

Incluir esa librería en el Portal de Trabajo y en cualquier configuración adicional (e.g, cambios en el web.config cuando su autenticación se realice a través de web services).

 

 

 

Ejemplo

Vamos a ilustrar cómo usar la autenticación personalizada en un escenario donde nuestro sistema de autenticación es actualmente un propietario de una aplicación que otorga acceso a través de web services.

Por lo tanto, vamos a configurar en Bizagi los usuarios que se autentican contra este sistema.

 

Para este ejemplo, se provee un web service y se accede desde:

http://demo.bizagi.com/AuthenticationSystem/

 

CAuth_webservice

 

 

Pasos

Siga estos pasos para trabajar en el ejemplo descrito previamente.

 

1. Cree su componente

Use Visual Studio para programar un componente que implemente las funciones descritas en Autenticación Personalizada, las cuales son:

bool authenticate(...), void logOff(...), bool changePassword(...), bool changePassword(...).

Asegúrese de crear y compilar este proyecto como clase de librería y asegúrese de que se ejecute dirigido al framework 4.0 de .NET:

 

CAuth_vsproject

 

Para invocar nuestro web service de autenticación, incluimos un servicio que referencia la URL de servicio:

 

CAuth_addservice

 

Nombramos esta referencia de servicio como MyAuthenticationService tal como se muestra a continuación:

 

CAuth_serviceref

 

 

note_pin

Observe que la URL de nuestro servicio incluye el archivo wsdl y podemos ver que un servicio WCF  (.svc):

http://demo.bizagi.com/AuthenticationSystem/MyService.svc?wsdl

 

CAuth_wsdl

 

 

Después, incluimos en Class1.cs, la implementación para nuestra función de autenticación la cual es bool authenticate(...) que invoca el servicio interpretado por la referencia MyAuthenticationService:

 

CAuth_class1

 

Asegúrese de compilar este proyecto sin errores y que se produce una clase de librería como salida:

 

CAuth_build

 

Usted puede descargar la solución anterior como un archivo .sln de Visual Studio aquí.

Desde el proyecto anterior, vamos a necesitar capturar y recordar la siguiente información para más pasos de configuración en Bizagi:

La clase de la librería física del assembly es CustomAuthenticationComponent.dll.

La clase que implementa estas funciones se llama Class1.

El namespace de esta clase es CustomAuthenticationComponent.

La configuración del modelo de servicio, la cual es automáticamente incluida en el config (para permito el consumo del servicio WCF), es:

 

CAuth_servicemodel

 

2. Cree sus usuarios en Bizagi

Antes de empezar a usar la autenticación personalizada, asegúrese de crear (o importar) en su Portal de Trabajo de Bizagi, todos los usuarios que iniciarán sesión.

Recuerde que este es un requisito para que Bizagi examine si un usuario en particular está autorizado en el Portal de Trabajo y, por ende, que pueda considerar el número de usuarios licenciados por su Portal de Trabajo.

 

Cree sus usuarios a través del menú admin en el Portal de Trabajo:

 

CAuth_users

 

Asegúrese de especificar un username único y el el dominio del usuario.

No se necesita ingresar contraseñas debido a que estas no serán almacenadas en Bizagi cuando se realiza autenticación frente a un sistema externo.

 

Si desea probar el código de ejemplo y el sistema dummy de autenticación que hemos provisto en este ejemplo, asegúrese de al menos crear uno de los usuarios existentes en nuestra base de datos del sistema de autenticación (como ken0 o terri0 tal como se mostraron previamente).

Observe que nuestro sistema dummy de autenticación solo toma la parte inicial de los correos electrónicos omitiendo la parte de @adventure-works.

 

CAuth_userdb

 

3. Configure la autenticación Personalizada en Bizagi

Configure en su proyecto de Bizagi, el uso de autenticación personalizada.

Para hacer esto en Bizagi Studio, vaya a la vista de Experto y localice el módulo de Seguridad.

 

Dé clic en la opción Autenticación que se encuentra bajo el ítem Seguridad y seleccione Autenticación personalizada en la lista desplegable del panel de la derecha:

 

CAuth_Bizagiconfig1

 

Dé clic en Actualizar.

Recibirá un mensaje de confirmación y observe que aparecerán 2 parámetros adicionales bajo Autenticación.

 

Configure Clase de autenticación personalizadas ingresando el nombre del namespace seguido de la clase (CustomAuthenticationComponent.Class1):

 

CAuth_Bizagiconfig2

 

Dé clic en Actualizar.

Configure Componente de autenticación personalizada ingresando le nombre físico del assembly (CustomAuthenticationComponent.dll):

 

CAuth_Bizagiconfig3

 

Dé clic en Actualizar.

Finalmente, tome el assembly físico CustomAuthenticationComponent.dll y póngalo la carpeta bin de su Portal de Trabajo (por defecto en C:\Bizagi\Projects\[su_proyecto]\WebApplication\bin\):

 

CAuth_Bizagiconfig4

 

note_pin

Considere:
1. Cuando su componente invoque un servicio WCF, es necesario que edite el archivo web.config de Bizagi para poder incluir la definición del modelo de servicio del mismo (incluyendo el binding y el endpoint).

Para esto, copie los elementos dentro de <system.serviceModel> desde el app.config producido en nuestro proyecto de Visual Studio:

<bindings>

  <basicHttpBinding><binding name="BasicHttpBinding_MyService" /></basicHttpBinding>

</bindings>

<client>

  <endpoint address="http://demo.bizagi.com/AuthenticationSystem/MyService.svc"

  binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MyService"

  contract="MyAuthenticationService.MyService" name="BasicHttpBinding_MyService" />

</client>

Y péguelos en el archivo web.config de su proyecto (por defecto en C:\Bizagi\Projects\[su_proyecto]\WebApplication\).

Este debe ir en la definición <system.serviceModel>, haciendo que el archivo final se vea de la siguiente manera:

 

CAuth_webconfig

 

2. Después de configurar la autenticación personalizada en Bizagi, usted puede necesitar ejecutar un IISReset en sus servicios de IIS.

 

Y eso es todo.

En este punto, hemos configurado el uso de Autenticación Personalizada en Bizagi.

 

Ejecución

Para probar y verificar el inicio de sesión con Autenticación Personalizada en el ejemplo anterior, lance el Portal de Trabajo e inicie sesión con el nombre de usuario de uno de los que creó en el paso # 2.

Para una autenticación exitosa, el sistema dummy de autenticación simplemente valida que ingrese el mismo usuario como contraseña.

 

Por ejemplo, para el usuario ken0, use ken0 como contraseña:

 

CAuth_execution

 

Importante

1. Tenga en cuenta que cuando ejecute un deployment al ambiente de pruebas o producción, necesitará asegurarse de que haya colocado el .dll físico del assembly en la carpeta bin del Portal de Trabajo de cada ambiente.

 

2. Cuando actualice su proyecto a una versión más reciente de Bizagi, asegúrese de considerar el assembly físico CustomAuthenticationComponent.dll.

Lo que significa que después de una actualización, necesita asegurarse de que esté localizado en la carpeta bin de su Portal de Trabajo.

Recuerde que antes de actualizar, bizagi crea un backup automático de su carpeta bin (junto con otros backups como el de la base de datos). Por lo tanto, usted puede encontrar el .dll físico del assembly en esa carpeta de backup.