Skip to main content

Descripción general del proceso de autenticación

La autenticación SAML mantiene los datos de identidad, como el nombre de usuario y la contraseña, alejados del Servidor de aplicaciones. En su lugar, el usuario se autentica en un proveedor de identidad de terceros como Google o Facebook. Ese tercero de confianza envía después al Servidor de aplicaciones la prueba de que la autenticación se ha realizado correctamente. El proceso de autenticación SAML en una aplicación de usuario consta de los siguientes pasos:
  • Autenticarse en el proveedor de identidad de terceros
  • Obtener del proveedor de identidad de terceros el dato de autenticación SAML del usuario
  • Enviar el dato de autenticación SAML al Servidor de aplicaciones
  • Recibir un ticket de autenticación del Servidor de aplicaciones
Este ticket puede utilizarse posteriormente en las solicitudes al Servidor de aplicaciones.
La cuenta de usuario debe existir en la base de datos de FlexiCapture, con todos los permisos necesarios.

Implementación

Obtener dato SAML

El dato SAML del proveedor de identidad de terceros tiene el siguiente formato (este ejemplo es de OneLogin):
Para saber cómo obtener datos de autenticación de un proveedor de identidad de terceros, consulte la documentación de ese proveedor. Por ejemplo, OneLogin ofrece kits listos para usar para habilitar la autenticación SAML en varios lenguajes de programación.

Envíe dato SAML al Servidor de aplicaciones de FlexiCapture 12

Codifique el dato SAML en Base64 y envíelo al Servidor de aplicaciones mediante una solicitud POST a https://<Application Server>/Flexicapture12/Server/Saml. El nombre del campo que contiene el dato SAML debe ser SAMLResponse.
Si está utilizando un tenant, agregue el identificador del tenant a la URL del servidor, por ejemplo, https://<ApplicationServer>/Flexicapture12/Server/Saml?Tenant=MyTenantName Para que la autenticación funcione, debe haber un usuario registrado en el Servidor de aplicaciones cuyo login coincida con el identificador del dato SAML. Se utilizará como login el valor del campo /samlp:Response/saml:Assertion/saml:Subject/saml:NameID. El Servidor de aplicaciones devuelve una respuesta como esta:
El valor de la etiqueta <ticket> es el ticket autenticado. Puede usar este ticket para realizar llamadas a todas las interfaces del Servidor de aplicaciones que requieran autenticación. Las solicitudes a los servicios web de FlexiCapture deben realizarse mediante la autenticación de FlexiCapture (direcciones que comienzan por https://<ApplicationServer>/flexicapture12/Server/FCAuth/ o https://<ApplicationServer>/flexicapture12/Server/MobileApp/).

Use el ticket autenticado de FlexiCapture 12

Puede enviar el ticket al servidor mediante un archivo de cookies (el archivo debe llamarse FlexiCaptureTmpPrn) o un encabezado Authorization: Bearer. Ejemplo:
Use el encabezado. Las cookies se admiten por compatibilidad con soluciones más antiguas. Si la operación se realiza correctamente, la respuesta del servidor incluye un valor de ticket actualizado en dos lugares. Uno es un archivo de cookies con el mismo inicio de sesión, FlexiCaptureTmpPrn, y el otro es el encabezado AuthTicket. Use el ticket actualizado para la siguiente solicitud, ya que los tickets caducan después de cierto tiempo.

Configurar un certificado de confianza en el Servidor de aplicaciones

El Servidor de aplicaciones comprobará los datos recibidos del proveedor de identidad. Para que el Servidor de aplicaciones confíe en estos datos, fírmelos con un certificado personalizado. La autoridad emisora debe figurar en la base de datos de autoridades de confianza del Servidor de aplicaciones. Importe el certificado en la base de datos de ABBYY FlexiCapture. A partir de ese momento, los datos se comprobarán con este certificado. Para obtener más información, consulte Configurar Single Sign-On. Si la comprobación falla, el Servidor de aplicaciones consulta el parámetro AllowMixedModeCertificateValidation en <appSettings> del archivo Web.config. Cuando ese parámetro es true, la comprobación se realiza con el certificado de la carpeta Trusted Root Certification Authorities. Esa carpeta se encuentra en el almacén de certificados Equipo local del equipo en el que se ejecuta el Servidor de aplicaciones. Si la base de datos no contiene certificados, la comprobación se realiza con el certificado de la carpeta Trusted Root Certification Authorities. En ese caso, el parámetro AllowMixedModeCertificateValidation se ignora. Hay disponible un proyecto de ejemplo con sus materiales complementarios en SAML_Example.zip.