Es ist möglich, Benutzer durch einen oder mehrere externe Services oder Anbieter zu authentifizieren. Dies kann den Login-Prozess verkürzen und vereinfachen, bietet aber eine grössere Angriffsfläche für böswillige Akteure. Zusätzlich ermöglicht diese Art der Authentifizierung sogenannte Single-Sign-On Szenarien.
Anforderungen
Aktuell wird nur das OpenID Connect Protokoll unterstüztunterstützt
Standardmässig, müssen die Benutzer in der Applikation vorhanden sein. Der gemeinsame Nenner dabei ist die E-Mail Adresse. Dies kann durch eine eigene Implementation erstezt erweitert werden, um z.B. eine “silent registration“ zu ermöglichen. Mehr dazu im TODOhier: Externe Authentifizierung erweitern
Konfiguration
Die Registration der verschiedenen Services / externen Anbietern erfolgt in der appsettings.json
-Datei der VSServer-Solution. Dazu muss ein neuer Block mit dem Schlüssel ThirdPartyAuthentication
hinzugefügt werden.
Beispiel:
Info |
---|
Der Schlüssel “Microsoft“ ist hier nur ein Beispiel und kann durch einen beliebigen Text ersetzt werden. Er dient lediglich als interner Identifikator. |
Code Block | ||
---|---|---|
| ||
"ThirdPartyAuthentication": { "Microsoft": { "DiscoveryUrl": "https://login.microsoftonline.com/{tenant_id}/v2.0/.well-known/openid-configuration", "ClientId": "{client_id}", "ClientSecret": "{client_secret}", "RedirectUrl": "https://QuinoProject.com{your_application_uri}/api/v1/thirdParty/auth/callback", "Icon": "https://login.microsoftonline.com/static/tenant/templates/idp_logos/colored/microsoft.svg", "Caption": "Microsoft Login" }, {...} } |
Schlüssel
...
| Diese URI wird durch das OpenID Connect Protokol vorgegeben und ermöglicht das automatische Abrufen der verschiedenen Endpunkte für Authentifizierung, Benutzerprofil, etc. |
| Die Client-Id wird von Ihrem Anbieter ausgestellt und identifiziert Ihre OpenID Connect Instanz. |
| Das Client-Secret wird von Ihrem Anbieter ausgestellt und dient als Passwort zur Authentifizierung Ihrer OpenID Connect Instanz. |
| An diese URI wird eine Nachricht gesendet, nachdem sich der Benutzer erfolgreich am externen Anbieter angemeldet hat. |
| Das Icon welches auf der linken Seite des alternativen Login-Buttons des Client’s angezeigt wird. Der Wert kann eine |
| Der Text, welcher innerhalb des alternativen Login-Buttons des Client’s angezeigt wird. Es kann ebenfalls ein Übersetzungsschlüssel angegeben werden. |
Resultat
Nach erfolgter Konfiguration und einem Neustart des Servers, ergänzt sich der Login-Dialog automatisch mit den alternativen Login-Buttons.
Beispiel:
...