Es ist möglich, Benutzer durch einen oder mehrere externe 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 erweitert werden, um z.B. eine “silent registration“ zu ermöglichen. Mehr dazu im
TODO
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.
...
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://{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 ermöglicht das automatische Abrufen der verschiedenen Endpunkte für Authentifizierung, Benutzerprofil, etc. abzurufen. |
| Die Client-Id wird von ihrem Ihrem Anbieter ausgestellt und identifiziert Ihre OpenID Connect Instanz. |
| Die Das Client-Secret ist bei wird von Ihrem Anbieter ersichtlich ausgestellt und dient als Passwort , um diesen zu benutzen zu könnenzur 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 auf dem Client des Client’s angezeigt wird. Der Wert kann eine |
| Der Text, welcher inerhalb innerhalb des alternativen Login-Buttons auf dem Client angezeigt wird.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:
...