OpenID-Provider
Der invoiceR kann die Anmeldung an einen OpenID-Connect-Provider abgeben, zum Beispiel an Microsoft Entra ID. Die Benutzer melden sich dann mit ihrem Firmenkonto an (siehe Anmelden und abmelden).
Es lassen sich auch mehrere Provider gleichzeitig einrichten, etwa wenn mehrere Organisationen mit eigenem Verzeichnis denselben invoiceR nutzen.
So wählt der invoiceR den Provider
Abschnitt betitelt „So wählt der invoiceR den Provider“- Ein Provider ist eindeutig: Der invoiceR leitet den Benutzer direkt zur Anmeldung beim Provider weiter.
- Mehrere Provider kommen in Frage: Der Benutzer bleibt auf der Anmeldeseite. Er sieht neben der Anmeldung mit Benutzername und Passwort eine Schaltfläche pro Provider und wählt selbst.
Eindeutig ist ein Provider, wenn sein TenantName
- mit dem Namen des Mandanten übereinstimmt, den der invoiceR aus der Adresse erkennt (ein Mandant pro Subdomain), oder
- in der Adresse der Anmeldeseite im Parameter
oidsteht, zum Beispielhttps://<server>/account/login?oid=providerA.
Den Parameter oid kannst du verwenden, um jeder Organisation einen eigenen Link zur Anmeldung zu geben.
Konfiguration
Abschnitt betitelt „Konfiguration“Die Provider werden in der Konfigurationsdatei des Backends (appsettings.json bzw. der
umgebungsspezifischen Datei) im Abschnitt Authentication:OpenId eingetragen. Der erste Provider steht
direkt in OpenId, alle weiteren im Array AdditionalTenants. Jeder weitere Provider hat dieselben
Einstellungen wie der erste.
"Authentication": { "OpenId": { "IsEnabled": "true", "ClientId": "<client-id-a>", "ClientSecret": "<client-secret-a>", "Authority": "<authority-a>", "LoginUrl": "<login-url-a>", "ValidateIssuer": "false", "ResponseType": "id_token", "DisplayName": "Anmelden mit A", "TenantName": "providerA", "ClaimsMapping": [ { "claim": "unique_name", "key": "preferred_username" } ], "AdditionalTenants": [ { "ClientId": "<client-id-b>", "ClientSecret": "<client-secret-b>", "Authority": "<authority-b>", "LoginUrl": "<login-url-b>", "ValidateIssuer": "false", "ResponseType": "id_token", "DisplayName": "Anmelden mit B", "TenantName": "providerB", "ClaimsMapping": [ { "claim": "unique_name", "key": "preferred_username" } ] } ] }}| Einstellung | Bedeutung |
|---|---|
IsEnabled | Schaltet die Anmeldung über OpenID ein. Gilt für alle Provider. |
ClientId, ClientSecret | Kennung und Geheimnis der App-Registrierung beim Provider. |
Authority, LoginUrl | Adressen des Providers (Aussteller und Anmeldeseite), wie sie der Provider für die App-Registrierung angibt. |
ValidateIssuer | Ob der Aussteller des Tokens geprüft wird ("true" oder "false"). Bei weiteren Providern Pflicht. |
ResponseType | Art der Antwort des Providers, in der Regel id_token. |
DisplayName | Beschriftung der Schaltfläche auf der Anmeldeseite. Ohne Angabe steht dort „OpenIdConnect“. |
TenantName | Kennung des Providers. Muss dem Namen des Mandanten oder dem Wert im Parameter oid entsprechen. |
ClaimsMapping | Welche Angaben aus dem Token des Providers der invoiceR für den Benutzer übernimmt. |
Nach einer Änderung an der Konfiguration muss das Backend neu gestartet werden.
