Es ist möglich, Benutzer durch einen oder mehrere externe Anbieter zu authentifizieren. Dies kann den Login-Prozess verkürzen und vereinfachen. Zusätzlich ermöglicht diese Art der Authentifizierung sogenannte Single-Sign-On Szenarien.
Anforderungen
Aktuell wird nur das OpenID Connect Protokoll unterstü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 erweitert werden, um z.B. eine “silent registration“ zu ermöglichen. Mehr dazu hier: Externe Authentifizierung erweitern
Konfiguration
Die Registration der verschiedenen externen Anbietern erfolgt in der appsettings.json
-Datei der Server-Solution. Dazu muss ein neuer Block mit dem Schlüssel ThirdPartyAuthentication
hinzugefügt werden.
Beispiel:
Der Schlüssel “Microsoft“ ist hier nur ein Beispiel und kann durch einen beliebigen Text ersetzt werden. Er dient lediglich als interner Identifikator.
"ThirdPartyAuthentication": { "Microsoft": { "DiscoveryUrl": "https://login.microsoftonline.com/{tenant_id}/v2.0/.well-known/openid-configuration", "ClientId": "{client_id}", "ClientSecret": "{client_secret}", "RedirectUrl": "https://{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 dient dazu, dass die verschiedenen Endpunkte für Authentifizierung, Benutzerprofil etc. abzurufen. |
| Die Client-Id wird von ihrem Anbieter ausgestellt und identifiziert Ihre OpenID Connect Instanz. |
| Die Client-Secret ist bei Ihrem Anbieter ersichtlich und dient als Passwort, um diesen zu benutzen zu können. |
| 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.