Habilitar el API de Bizagi

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Bizagi desde aplicaciones externas > API de Bizagi para aplicaciones externas > Servicios web SOAP > Conceptos preliminares para utilizar el API de Bizagi >

Habilitar el API de Bizagi

 

Introducción

Bizagi ofrece esta funcionalidad para que pueda ser invocada directamente desde aplicaciones externas a través de un API orientada a servicios.

El API orientado a servicios tiene funcionalidad de servicios web SOAP, los cuales no requieren iniciar la configuración para su uso.

Para más información acerca de los servicios web de Bizagi, refiérase a API de Bizagi para aplicaciones externas.

 

Estándares y seguridad en WS-*

El API de Bizagi soporta configuraciones de WS-Security considerando aspectos como:

Autenticar al cliente (autenticación y ciertos aspectos de autorización implicados).

Incluír firmas (sin repudio e integridad de datos).

Encripción del mensaje (protección del mensaje para su confidencialidad).

 

A través de WS-Security, dichos aspectos son administrados por el servicio web mismo, en adición a las medidas extra HTTPS que implemente, en consecuencia ninguna de las opciones de servicios web son diferentes ni exclusivas, sólo la manera en que son consumidas. Además, ésto asegura que los servicios web de Bizagi son invocados estrictamente por aplicaciones externas autorizadas (usuario y contraseña correctos), y que hacen uso de certificados para encriptar los mensajes SOAP.

 

Los siguientes estándares son usados por los servicios web de Bizagi:

WS-Security

WS-SecurityPolicy

WS-Policy

WS-Addressing

XML Signature

XML Encryption

SOAP 1.2

WSDL 1.1

 

note_pin

Le aconsejamos fervientemente habilitar la seguridad en los servicios web y deshabilitar los servicios web legados para los ambientes de producción cuando sea posible.

 

Prerrequisitos

Para utilizar los servicios web de Bizagi en su servidor Bizagi el cual soporta estándares y seguridad WS-*, usted necesita:

 

1. Instalar Microsoft .NET Framework en su versión 4.5.

 

2. Tener un certificado X.509 oficial (certificado por una Entidad Certificadora apropiada) para propósitos de cifrado.

Dichos certificados deben ser válidos e instalados. El administrador de su plataforma requerirá la experiencia adecuada en la materia (Certificados y su uso e instalación).

 

Una vez que tenga la versión del framework instalada, necesitará activar la seguridad de los servicios web en su proyecto de Bizagi tal y como se describe a continuación.

 

 

Generalidades del procedimiento

Por defecto, los servicios web legados de Bizagi no incluyen funcionalidades relacionadas con estándares WS-* y seguridad, y los proyectos nuevos creados desde Bizagi 11 iniciarán con las características de seguridad activadas.

 

note_pin

Los Servicios web legados se apoyan en servicios asmx, como se presentaba en versiones anteriores de .NET framework (por ejemplo v2.0), mientras que los servicios web que utilizan WS-Security se apoyan en Windows communication foundation framework (WCF).

 

Es altamente recomendado el uso de servicios web con la funcionalidad de seguridad (WS-Security). Al hacerlo, considere lo siguiente:

 

1. Habilite WS-Security y deshabilite Servicios web legados.

En caso de que su proyecto haya sido actualizado de una versión anterior, y estuviera usando los Servicios web legados, necesitará asegurarse que haya adecuado cualquier aplicación externa para que invoque los nuevos servicios web.

Al habilitar WS-Security, asegúrese de configurar los parámetros de acuerdo a su certificado X.509 instalado.

 

2. Configure la aspectos adicionales de seguridad para dichos servicios web en el servidor de aplicaciones.

Por lo tanto, esta recomendación aplica sin importar los servicios web Bizagi que utilice, y especifica configurar listas blancas de IP, adicionando protección para los recursos en su servidor de aplicación, tal como se describe en Recomendaciones de seguridad en la aplicación.

 

Habilitar los servicios web con seguridad

Lleve a cabo los siguientes pasos para utilizar los servicios web con WS-Security en Bizagi:

 

1. Abra la opción Entorno desde la cinta de opciones y seleccione la pestaña Popular.

Habilite WS-security al final de la ventana (y deje sin marcar la opción de Servicios web legados).

 

1

 

note_pin

En caso de que necesite compatibilidad con versiones anteriores o que usted use Servicios web legados (no recomendado), en cualquier momento puede regresar y activar la opción.

 

2. Ingrese los parámetros de la funcionalidad de WS-Security.

 

2

 

Note que para habilitar el cifrado y las capacidades de inicio de sesión, necesita especificar toda la información acerca del certificado x.509 instalado.De cualquier forma, ésta configuración puede ser modificada en cualquier momento.

 

PARÁMETRO

DESCRIPCIÓN

Usuario

El nombre de usuario usado para firmar.

Para propósitos de autenticación de los servicios web, usted debe definir un usuario (como es especificado por el estándar de WS-Security).

Contraseña

Contraseña del usuario mencionado anteriormente.

X509 Valor de búsqueda

El Common name del certificado X.509 instalado.

X509 Localización repositorio

La ubicación del repositorio donde el certificado X.509 está instalado.

Puede usar el MMC snap-in para verificar dicha información (https://msdn.microsoft.com/en-us/library/ms788967(v=vs.110).aspx).

X509 Nombre repositorio

El nombre del repositorio donde el certificado X.509 está instalado.

Usted puede usar el MMC snap-in para verificar dicha información (https://msdn.microsoft.com/en-us/library/ms788967(v=vs.110).aspx).

X509 Tipo de búsqueda

El valor por el cual se filtrará el parámetro Valor de búsqueda.

Para buscar el common name del certificado, use FindBySubjectName.

X509 Modo validación

Eliga una de las opciones válidas:

ChainTrust: Con esta opción se valida el certificado usando la autoridad certificadora. En escenarios .NET, puede ser más confiable usar esta opción.

PeerTrust: Con esta opción se valida con el servidor su repositorio de confianza (recomendado). PeerTrust implica que el certificado entrante debe estar en la carpeta "Trusted People certificate".

PeerOrChainTrust: Cualquiera de los anteriores.

None: Confiar en cualquier certificado (no recomendado).

 

Un ejemplo de la configuración terminada es el siguiente:

 

4_1

 

3. Asegúrese de que sus aplicaciones externas o programas invoquen dichos servicios al proveer nombre de usuario y contraseña.

De manera similar, verifique que estos deben poder utilizar los certificados instalados para encriptar y firmar.

Después de estas configuraciones, asegúrese que cada cliente que se conecta debe usar las certificaciones adecuadas.

 

La URL de los servicios web utilizando la funcionalidad de seguridad (WS-Security) usará una extensión ".svc".

Por ejemplo, en vez de el Servicio web legado http://.../WebServices/EntityManagerSOA.asmx?wsdl, usted podría usar:

http://.../WebServices/EntityManagerSOA.svc?wsdl

 

WS_SVC_wsdl

 

Revise el siguiente ejemplo para ver como una sección <Security> encriptada debe ser enviada en la cabecera SOAP en este tipo de invocaciones:

<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">

 <u:Timestamp u:Id="uuid-8628c1ed-914e-4d9c-a64e-4a3d44d6d371-2">

         <u:Created>2015-10-16T14:54:49.385Z</u:Created>

         <u:Expires>2015-10-16T14:59:49.385Z</u:Expires>

   </u:Timestamp>

   <e:EncryptedKey Id="uuid-8628c1ed-914e-4d9c-a64e-4a3d44d6d371-1" xmlns:e="http://www.w3.org/2001/04/xmlenc#">

         <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">

                 <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns="http://www.w3.org/2000/09/xmldsig#"/>

       </e:EncryptionMethod>

         <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">

                 <o:SecurityTokenReference>

                         <o:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">[encrypted value]</o:KeyIdentifier>

                 </o:SecurityTokenReference>

       </KeyInfo>

       <e:CipherData>

                 <e:CipherValue>[encrypted value]</e:CipherValue>

       </e:CipherData>

   </e:EncryptedKey>

   <c:DerivedKeyToken u:Id="_0" xmlns:c="http://schemas.xmlsoap.org/ws/2005/02/sc">

         <o:SecurityTokenReference k:TokenType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" xmlns:k="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd">

                 <o:Reference ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" URI="#uuid-8628c1ed-914e-4d9c-a64e-4a3d44d6d371-1"/>

       </o:SecurityTokenReference>

         <c:Offset>0</c:Offset>

       <c:Length>24</c:Length>

       <c:Nonce>[encrypted value]</c:Nonce>

 </c:DerivedKeyToken>

 <c:DerivedKeyToken u:Id="_1" xmlns:c="http://schemas.xmlsoap.org/ws/2005/02/sc">

       <o:SecurityTokenReference k:TokenType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" xmlns:k="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd">

                 <o:Reference ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" URI="#uuid-8628c1ed-914e-4d9c-a64e-4a3d44d6d371-1"/>

       </o:SecurityTokenReference>

       <c:Nonce>[encrypted value]</c:Nonce>

 </c:DerivedKeyToken>

   <e:ReferenceList xmlns:e="http://www.w3.org/2001/04/xmlenc#">

         <e:DataReference URI="#_3"/>

       <e:DataReference URI="#_8"/>

       <e:DataReference URI="#_9"/>

   </e:ReferenceList>

 <e:EncryptedData Id="_9" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:e="http://www.w3.org/2001/04/xmlenc#">

         <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>

         <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">

                 <o:SecurityTokenReference>

                         <o:Reference ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/dk" URI="#_1"/>

                 </o:SecurityTokenReference>

         </KeyInfo>

       <e:CipherData>

                 <e:CipherValue>[encrypted value]</e:CipherValue>

       </e:CipherData>

   </e:EncryptedData>

 <e:EncryptedData Id="_8" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:e="http://www.w3.org/2001/04/xmlenc#">

       <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>

       <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">

                 <o:SecurityTokenReference>

                         <o:Reference ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/dk" URI="#_1"/>

           </o:SecurityTokenReference>

         </KeyInfo>

       <e:CipherData>

                 <e:CipherValue>[encrypted value]</e:CipherValue>

       </e:CipherData>

   </e:EncryptedData>

</o:Security>

 

 

Aprendiendo acerca de los certificados X.509 y otras opciones de prueba

En caso de no estar familiarizado con el uso de certificados X.509 o al probar esta funcionalidad en un ambiente de desarrollo, puede dirigirse a la documentación oficial de Microsoft .NET Framework en https://msdn.microsoft.com/en-us/library/ff699202.aspx.

Enlaces externos adicionales pueden presentar tutoriales y guías orientadas a los usuarios que certifican por primera vez, como http://www.reliablesoftware.com/DasBlog/PermaLink,guid,6507b2c6-473e-4ddc-9e66-8a161e5df6e9.aspx.

 

Más información de los estándares WS-* puede ser encontrada en https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss (publicada y mantenida por OASIS WSS).