<< Clic para mostrar Tabla de Contenidos >> Habilitar la 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.
Cuando usted (es decir, una aplicación o sistema suyo) necesita consumir un servicio de la capa SOA de Bizagi, es necesario generar un certificado para activar el WS-Security. Este certificado es generado por Bizagi (Autofirmado).
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
Los servicios web legacy están deshabilitados. Si desea utilizar la API SOAP de Bizagi, debe solicitar un ticket para activar la opción WS-Security, y el equipo de operaciones de Bizagi lo configura. |
Habilite la API WS-Security SOAP y configure sus parámetros.
1. Envíe un ticket de soporte para activar la capa SOA con WS-Security.
Cuando solicite el ticket para habilitar la capa de seguridad con WS-Security usted recibirá la siguiente información:
•Thumbprint del certificado usado para habilitar WS-Security
•Usuario
•Contraseña
2. Configure su ambiente con la información enviada por Bizagi.
Para habilitar la API de SOAP con las características de WS-Security para uno de sus entornos, use Bizagi Studio o Bizagi Management Console de acuerdo con el entorno.
Ambos ofrecen una interfaz de usuario similar para configurar esto. Use Bizagi Studio solo para el ambiente de Desarrollo y la Management Console para los otros ambientes.
Luego tiene que realizar la siguiente configuración:
Abra la Management Console de Bizagi.
Cuando trabaje con el Automation Service, acceda a la Management Console.
Configure las opciones ambiente.
Vaya a Entorno> Opciones y vaya a la sección Servicio web.
Diligencie lo siguiente:
•Habilitar servicios web legados (asmx): deje esto sin marcar.
•Habilitar WS-Security: asegúrese de que esté marcado.
•Usuario: defina un nombre de usuario para usar para ingresar.
Este nombre de usuario se emplea con fines de cifrado como un token de nombre de usuario (según lo especificado por la especificación del perfil de WS-Security) que utiliza más adelante al invocar la API de SOAP.
•Contraseña: defina una contraseña para el token de nombre de usuario.
•X509 Valor de búsqueda: ingrese el thumbprint proporcionado por Bizagi a través del ticket de soporte (sin caracteres ocultos especiales ni espacios en blanco).
•X509 Localización repositorio: Seleccione CurrentUser.
•X509 Localización repositorio: Seleccione My.
•X509 Modo validación: Seleccione None.
Haga clic en Guardar todo cuando haya terminado.
En este punto, la WS-Security de la API de SOAP de Bizagi está configurada y usted puede usar su propia codificación para invocar sus servicios.
Verificar los servicios web con seguridad
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.
Para asegurarse de que la API SOAP esté funcionando, revise que puede obtener el WSDL. Para hacerlo, use la URL de cualquiera de los métodos usando la extensión .SVC y el comando WSDL. Puede utilizar esta URL en cualquier navegador que utilice este formato.
https://[nombre_proyecto]-[nombre_empresa].bizagi.com/WebServices/[componente_interno].svc?wsdl
Por ejemplo:
https://MiProyecto-MiEmpresa.bizagi.com/webservices/entitymanagersoa.svc?wsdl
Usted debe ver el WSDL:
También puede confiar en la herramienta cliente SOAP UI para fines de prueba y verificación.
Usando SOAPUI
Al invocar la API de SOAP mediante SOAPUI, asegúrese de tener lo siguiente:
1.Usar la extensión SVC en la URL
2.En las propiedades de la solicitud, configure el nombre de usuario y la contraseña definidos en el Management Console de Bizagi.
3.Establezca el tipo de WSS-Password en PasswordText.
4.Seleccione la pestaña WS-A
5.Seleccione la casilla de verificación Add default wsa: To
Usando código .NET
Debe utilizar las referencias de servicio y establecer las credenciales del cliente dentro del código. Aquí hay un ejemplo:
static void Main(string[] args)
{
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; // Validate if the certificate is valid
SecureEntityManagerSOAClient client = new SecureEntityManagerSOAClient(); // Service Reference Instance
client.ClientCredentials.UserName.UserName = "username";
client.ClientCredentials.UserName.Password = "password";
using (new OperationContextScope((System.ServiceModel.IClientChannel)client.InnerChannel))
{
var result = client.getEntitiesAsString("");
Console.WriteLine(result);
}
}
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).
Last Updated 12/10/2024 1:01:58 PM