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
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) :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’adressehttps://<Application Server>/Flexicapture12/Server/Saml. Le nom du champ contenant les données SAML doit être SAMLResponse.
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 :
<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 :
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ètreAllowMixedModeCertificateValidation 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.