Wiki-Quellcode von IPluginAuthenticatorType


Zeige letzte Bearbeiter
1 {{content/}}
2
3 == Schnittstelle IPluginAuthenticatorType ==
4
5 {{figure image="authenticator-plugin-example.png"}}
6 Ein Beispiel für ein registriertes Authenticator-Plugin. Die Konfigurationsoberfläche bietet standardmäßig Eingabemöglichkeiten zum Hinterlegen von Attributen und Dateien, welche zur Laufzeit durch die Authenticator-Logik genutzt werden können.
7 {{/figure}}
8
9 Diese Schnittstelle ermöglich das Anbinden einer eigenen Formular-Anmeldung. Über diese Schnittstelle kann ein benutzerdefinierter Identity-Provider oder eine komplett eigene Authentifizierungslogik für Formulare in {{formcycle/}} eingebunden werden. Das Plugin lässt sich dabei, je nach dem Bereich, in dem es installiert wurde, unter dem Menüpunkt** **[[System > Externe Benutzer>>doc:Formcycle.SystemSettings.UserInterface.ExternalUsers.WebHome||target="_blank"]] (//System-Scope//) oder[[ Benutzeranmeldung > Externe Benutzer>>doc:Formcycle.UserInterface.UserSettings.ExternalUsers.WebHome||target="_blank"]]** **(//Mandant-Scope//) aktivieren und konfigurieren.
10 Um ein konfiguriertes Authenticator-Plugin dann in einem Formular verfügbar zu machen, muss dies über den [[Formular-Zugriff>>doc:Formcycle.UserInterface.MyForms.Access||target="_blank"]] am jeweiligen Formular konfiguriert sein.
11
12 Standardmäßig bietet die Konfigurations-Oberfläche bereits Möglichkeiten eigene Eigenschaften, in Form von Key-Value-Parametern, sowie Dateien (z.B.: eigene Zertifikate) zu hinterlegen. Diese Eigenschaften sind über die Programmierschnittstelle verfügbar und können zum Ausführungszeitpunkt des Authenticators herangezogen werden.
13
14 Eine beispielhafte Anbindung für diesen Plugin-Typ kann über einen [[Maven-Archetype>>url:https://maven.apache.org/guides/introduction/introduction-to-archetypes.html||rel="noopener noreferrer" target="_blank"]] aus der XIMA-Artifactory heruntergeladen werden (Name der Archtypes: **plugin-archetype-authenticator-type**). Der dafür notwendige Archetype-Katalog ist unter [[https:~~/~~/artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml>>https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml||rel="noopener noreferrer" target="_blank"]] erreichbar.
15
16 === Anwendungsfälle für die Nutzung dieses Plugin-Typs ===
17
18 * Einbindung eines Identity-Providers, der sich nicht über die bereits vorhandenen (lizenzierungspflichtigen) Authenticator-Typen für //OpenID Connect//, //OAuth 2// oder //SAML 2.0// konfigurieren lässt
19 * Erweiterung der vorhandenen Authenticator-Typen (//OpenID Connect//, //OAuth 2// oder //SAML 2.0//) um Eigenschaften, die über den Standard nicht abgedeckt sind oder eine Zuordnung von der Rückgabewerten in das erzeugte Nutzer-Profil bzw. nachgeordneten Funktionsaufrufen, welche über die vorhandene Implementierung hinaus gehen
20 * Implementierung einer vollständig eigene Formularanmeldung, unabhängig von vorhandenen Authenticatoren unter Nutzung des **pac4j** Authentifizierungs-Frameworks
21
22 === Methodensignaturen ===
23
24 {{panel title="{{code language='java'~}~} public IPluginFormAuthenticatorRetVal buildFormAuthClient(IPluginFormAuthenticatorParams params){{/code~}~}" triggerable="true" fullwidth="true" styleClass="xm-code-panel"}}
25
26 (((
27 Diese Methode wird ausgeführt, wenn der Plugin-Authenticator an einem Formular aufgerufen wird, um eine Authentifizierung durchzuführen.
28 )))
29
30 {{html}}<br>{{/html}}
31
32 ; Parameter
33 : Diese Methode nimmt folgende Parameter entgegen
34 :; params
35 :: Ein Objekt mit den Zugriff auf die konfigurierten Eigenschaften am Authenticator (//getAuthenticator//), sowie auf Hilfsobjekte (//getFormAuthContext//) zu Arbeit mit der Authenticator-Schnittstelle.
36 ; Rückgabewert
37 : Ein Client welcher zum Authentifizieren von Benutzern zuständig ist. Die angeforderte geschützte URL wird dabei zwischengespeichert und der Benutzer wird zur Anmeldung an den Identity-Provider weitergeleitet. Nach erfolgreicher Authentifizierung erfolgt eine Rückleitung zur Anwendung und schließlich zur ursprünglich angeforderten URL.
38 {{/panel}}