Es ist möglich, Benutzer durch einen oder mehrere externe Services / Anbieter zu authentifizieren. Dies kann den Login-Prozess verkürzen und vereinfachen, bietet aber eine grössere Angriffsfläche für böswillige Akteure.
Anforderungen
Aktuell wird nur das OpenID Connect Protokoll unterstüzt
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
Konfiguration
Die Registration der verschiedenen Services / Anbietern erfolgt in der appsettings.json
-Datei der 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://QuinoProject.com/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 Service / Anbieter ausgestellt und identifiziert Ihre OpenID Connect Provider Instanz. |
| Die Client-Secret ist bei Ihrem Service / 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 beim externen Service / Anbieter angemeldet hat. |
| Das Icon welches auf der linken Seite des neuen alternativen Login-Buttons auf dem Client angezeigt wird. Der Wert kann ein URI, Base64, SVG oder CSS-Klasse sein. |
| Der Text, welcher inerhalb des neuen alternativen Login-Buttons auf dem Client angezeigt wird. |