Descripción general del proceso de autenticación
- 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
La cuenta de usuario debe existir en la base de datos de FlexiCapture, con todos los permisos necesarios.
Implementación
Obtener dato SAML
Envíe dato SAML al Servidor de aplicaciones de FlexiCapture 12
https://<Application Server>/Flexicapture12/Server/Saml. El nombre del campo que contiene el dato SAML debe ser SAMLResponse.
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:
<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 llamarseFlexiCaptureTmpPrn) o un encabezado Authorization: Bearer. Ejemplo:
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
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.