Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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. 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 TODOhier: Externe Authentifizierung erweitern

Konfiguration

Die Registration der verschiedenen Services / 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:

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
languagejson
"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

DiscoveryUrl

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.

ClientId

Die Client-Id wird von ihrem Service / Ihrem Anbieter ausgestellt und identifiziert Ihre OpenID Connect Provider Instanz.

ClientSecret

Die Das Client-Secret ist bei wird von Ihrem Service / Anbieter ersichtlich ausgestellt und dient als Passwort , um diesen zu benutzen zu könnenzur Authentifizierung Ihrer OpenID Connect Instanz.

RedirectUrl

An diese URI wird eine Nachricht gesendet, nachdem sich der Benutzer erfolgreich beim am externen Service / Anbieter angemeldet hat.

Icon

Das Icon welches auf der linken Seite des neuen alternativen Login-Buttons auf dem Client des Client’s angezeigt wird. Der Wert kann ein eine URI, Base64 BASE64, SVG oder CSS-Klasse sein.

Caption

Der Text, welcher inerhalb innerhalb des neuen alternativen Login-Buttons auf dem Client 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:

...