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.

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 / 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 verschiedenen Endpunkte für Authentifizierung, Benutzerprofil etc. abzurufen.

ClientId

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

ClientSecret

Die Client-Secret ist bei Ihrem Service / Anbieter ersichtlich und dient als Passwort, um diesen zu benutzen zu können.

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 angezeigt wird. Der Wert kann ein eine URI, Base64 BASE64, SVG oder CSS-Klasse sein.

Caption

Der Text, welcher inerhalb des neuen alternativen Login-Buttons auf dem Client angezeigt wird.