Skip to main content

Übersicht über den Authentifizierungsprozess

Bei der SAML-Authentifizierung gelangen Identitätsdaten wie Benutzername und Kennwort nicht an den Application Server. Stattdessen authentifiziert sich der Benutzer bei einem externen Identitätsanbieter wie Google oder Facebook. Dieser vertrauenswürdige Drittanbieter übermittelt anschließend den Nachweis der erfolgreichen Authentifizierung an den Application Server. Der SAML-Authentifizierungsprozess in einer Benutzeranwendung umfasst die folgenden Schritte:
  • Sich beim externen Identitätsanbieter authentifizieren
  • Die SAML-Authentifizierungsdaten des Benutzers vom externen Identitätsanbieter abrufen
  • Die SAML-Authentifizierungsdaten an den Application Server senden
  • Ein authentifiziertes Ticket vom Application Server erhalten
Dieses Ticket kann dann bei Anfragen an den Application Server verwendet werden.
Das Benutzerkonto muss in der FlexiCapture-Datenbank vorhanden sein und über alle erforderlichen Berechtigungen verfügen.

Implementierung

SAML-Daten abrufen

Die SAML-Daten eines externen Identitätsanbieters sind wie folgt formatiert (dieses Beispiel stammt von OneLogin):
Einzelheiten dazu, wie Sie Authentifizierungsdaten von einem externen Identitätsanbieter erhalten, finden Sie in der Dokumentation des Identitätsanbieters. OneLogin bietet beispielsweise vorgefertigte Toolkits zur Aktivierung der SAML-Authentifizierung in mehreren Programmiersprachen an.

Senden Sie SAML-Daten an den FlexiCapture 12 Application Server

Kodieren Sie die SAML-Daten in Base64 und senden Sie sie durch Senden einer POST-Anfrage an https://<Application Server>/Flexicapture12/Server/Saml an den Application Server. Der Name des Feldes, das die SAML-Daten enthält, sollte SAMLResponse sein.
Wenn Sie einen Mandanten verwenden, fügen Sie den Bezeichner des Mandanten der Server-URL hinzu, zum Beispiel https://<ApplicationServer>/Flexicapture12/Server/Saml?Tenant=MyTenantName Damit die Authentifizierung funktioniert, muss auf dem Application Server ein Benutzer registriert sein, dessen Login mit dem Bezeichner in den SAML-Daten übereinstimmt. Der Wert des Felds /samlp:Response/saml:Assertion/saml:Subject/saml:NameID wird als Login verwendet. Der Application Server gibt eine Antwort wie folgt zurück:
Der Wert im Tag <ticket> ist das authentifizierte FlexiCapture-12-Ticket. Sie können dieses Ticket für Aufrufe an alle Schnittstellen des Application Server verwenden, die eine Authentifizierung erfordern. Anfragen an FlexiCapture-Webservices müssen über die FlexiCapture-Authentifizierung erfolgen (Adressen, die mit https://<ApplicationServer>/flexicapture12/Server/FCAuth/ oder https://<ApplicationServer>/flexicapture12/Server/MobileApp/ beginnen).

Verwenden Sie das authentifizierte FlexiCapture 12-Ticket

Sie können das Ticket mithilfe einer Cookie-Datei (die Datei muss FlexiCaptureTmpPrn heißen) oder eines Authorization: Bearer-Headers an den Server übergeben. Beispiel:
Verwenden Sie den Header. Cookies werden aus Kompatibilitätsgründen mit älteren Lösungen unterstützt. Bei Erfolg enthält die Antwort des Servers an zwei Stellen einen aktualisierten Ticket-Wert: zum einen in einer Cookie-Datei mit demselben Login, FlexiCaptureTmpPrn, zum anderen im AuthTicket-Header. Verwenden Sie das aktualisierte Ticket für die nächste Anfrage, da Tickets nach einer bestimmten Zeit ablaufen.

Einrichten eines vertrauenswürdigen Zertifikats auf dem Application Server

Der Application Server überprüft die vom Identitätsanbieter empfangenen Daten. Damit der Application Server diesen Daten vertraut, signieren Sie sie mit einem benutzerdefinierten Zertifikat. Die ausstellende Zertifizierungsstelle muss in der Datenbank vertrauenswürdiger Zertifizierungsstellen des Application Server enthalten sein. Importieren Sie das Zertifikat in die ABBYY FlexiCapture-Datenbank. Die Daten werden dann mithilfe dieses Zertifikats überprüft. Weitere Informationen finden Sie unter Einrichten von Single Sign-On. Wenn die Überprüfung fehlschlägt, richtet sich der Application Server nach dem AllowMixedModeCertificateValidation-Parameter unter <appSettings> in der Datei Web.config. Wenn dieser Parameter true ist, wird für die Überprüfung das Zertifikat im Ordner Trusted Root Certification Authorities verwendet. Dieser Ordner befindet sich im Zertifikatspeicher „Lokaler Computer“ auf dem Computer, auf dem der Application Server ausgeführt wird. Wenn die Datenbank keine Zertifikate enthält, wird für die Überprüfung ersatzweise das Zertifikat im Ordner Trusted Root Certification Authorities verwendet. Der AllowMixedModeCertificateValidation-Parameter wird dann ignoriert. Ein Beispielprojekt und die zugehörigen Materialien stehen als SAML_Example.zip zur Verfügung.