Skip to main content

Vue d’ensemble du processus d’authentification

L’authentification SAML évite que les données d’identité, telles qu’un nom d’utilisateur et un mot de passe, ne transitent par le serveur d’applications. L’utilisateur s’authentifie plutôt auprès d’un fournisseur d’identité tiers comme Google ou Facebook. Ce tiers de confiance transmet ensuite au serveur d’applications la preuve du succès de l’authentification. Le processus d’authentification SAML dans une application utilisateur comprend les étapes suivantes :
  • S’authentifier auprès du fournisseur d’identité tiers
  • Récupérer les données d’authentification SAML de l’utilisateur auprès du fournisseur d’identité tiers
  • Envoyer les données d’authentification SAML au serveur d’applications
  • Recevoir un ticket d’authentification du serveur d’applications
Ce ticket peut ensuite être utilisé dans des requêtes adressées au serveur d’applications.
Le compte utilisateur doit exister dans la base de données FlexiCapture, avec toutes les autorisations requises.

Implémentation

Obtenir les données SAML

Les données SAML provenant d’un fournisseur d’identité tiers se présentent comme suit (cet exemple provient de OneLogin) :
Pour savoir comment obtenir des données d’authentification auprès d’un fournisseur d’identité tiers, consultez la documentation de ce fournisseur. Par exemple, OneLogin propose des toolkits prêts à l’emploi pour activer l’authentification SAML dans plusieurs langages de programmation.

Envoyer les données SAML au serveur d’applications FlexiCapture 12

Encodez les données SAML en Base64 et envoyez-les au serveur d’applications à l’aide d’une requête POST à l’adresse https://<Application Server>/Flexicapture12/Server/Saml. Le nom du champ contenant les données SAML doit être SAMLResponse.
Si vous utilisez un tenant, ajoutez l’identifiant du tenant à l’URL du serveur, par exemple, https://<ApplicationServer>/Flexicapture12/Server/Saml?Tenant=MyTenantName Pour que l’authentification fonctionne, un utilisateur dont le login correspond à l’identifiant figurant dans les données SAML doit être enregistré sur le serveur d’applications. La valeur du champ /samlp:Response/saml:Assertion/saml:Subject/saml:NameID sera utilisée comme login. Le serveur d’applications renvoie une réponse comme suit :
La valeur de la balise <ticket> correspond au ticket d’authentification FlexiCapture 12. Vous pouvez utiliser ce ticket pour appeler toutes les interfaces du serveur d’applications qui nécessitent une authentification. Les requêtes envoyées aux services web FlexiCapture doivent utiliser l’authentification FlexiCapture (adresses commençant par https://<ApplicationServer>/flexicapture12/Server/FCAuth/ ou https://<ApplicationServer>/flexicapture12/Server/MobileApp/).

Utiliser le ticket FlexiCapture 12 authentifié

Vous pouvez transmettre le ticket au serveur au moyen d’un fichier de cookies (le fichier doit être nommé FlexiCaptureTmpPrn) ou d’un en-tête Authorization: Bearer. Exemple :
Utilisez l’en-tête. Les cookies sont pris en charge pour assurer la compatibilité avec les anciennes solutions. En cas de succès, la réponse du serveur contient une valeur de ticket mise à jour à deux endroits : un fichier de cookies associé au même login, FlexiCaptureTmpPrn, et l’en-tête AuthTicket. Utilisez le ticket mis à jour pour la requête suivante, car les tickets expirent au bout d’un certain temps.

Configuration d’un certificat de confiance sur le serveur d’applications

Le serveur d’applications vérifiera les données reçues du fournisseur d’identité. Pour que le serveur d’applications fasse confiance à ces données, signez-les avec un certificat personnalisé. L’autorité émettrice doit figurer dans la base de données des autorités de confiance du serveur d’applications. Importez le certificat dans la base de données ABBYY FlexiCapture. Les données seront désormais vérifiées à l’aide de ce certificat. Pour plus d’informations, voir Configurer l’authentification unique. Si la vérification échoue, le serveur d’applications s’appuie sur le paramètre AllowMixedModeCertificateValidation des paramètres <appSettings> du fichier Web.config. Lorsque ce paramètre est défini sur true, la vérification est effectuée à l’aide du certificat du dossier Trusted Root Certification Authorities. Ce dossier se trouve dans le magasin de certificats Ordinateur local sur l’ordinateur exécutant le serveur d’applications. Si la base de données ne contient aucun certificat, la vérification est effectuée à l’aide du certificat situé dans le dossier Trusted Root Certification Authorities. Le paramètre AllowMixedModeCertificateValidation est alors ignoré. Un projet exemple et les éléments qui l’accompagnent sont disponibles dans le fichier SAML_Example.zip.