Identity Provider
Identity Provider ermöglichen es Benutzern, sich mit externen Identitätssystemen bei OctoMesh zu authentifizieren. Jeder Tenant kann mehrere Provider unabhängig konfigurieren.
Provider-Typen
| Typ | Anwendungsfall | Wichtige Eigenschaften |
|---|---|---|
| Google OAuth 2.0 | ClientId, ClientSecret | |
| Microsoft | Microsoft Account OAuth 2.0 | ClientId, ClientSecret |
| Facebook OAuth 2.0 | ClientId, ClientSecret | |
| Azure Entra ID | Unternehmens-Azure AD / Entra ID | TenantId, ClientId, ClientSecret, Authority |
| OpenLDAP | LDAP-Verzeichnisauthentifizierung | Host, Port, UserBaseDn, UserNameAttribute |
| Active Directory | Microsoft Active Directory (LDAPS) | Host, Port |
| OctoTenant | Tenantübergreifende Authentifizierung über übergeordneten Tenant | ParentTenantId |
Das ClientSecret der OAuth-Provider (Google, Microsoft, Facebook, Azure Entra ID) wird als Secret-Attribut gespeichert. Die REST-API gibt es nie zurück: clientSecret ist in Antworten immer null; clientSecretIsSet meldet, ob ein lesbares gespeichert ist, clientSecretKeyMissing, ob eines gespeichert ist, dessen Schlüssel aber fehlt (z. B. nach einem Restore aus einer anderen Umgebung — neu eingeben), und clientSecretSetAt, wann es gesetzt wurde. Das Anlegen eines Providers erfordert ein Client Secret; ein Update mit leerem oder fehlendem Secret behält das gespeicherte. Jeder nicht leere Wert, auch einer, der wie ein Platzhalter aussieht, wird als Client Secret gespeichert.
Gemeinsame Eigenschaften
Alle Identity Provider teilen sich diese Basiseigenschaften:
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
| Name | Eindeutiger Anzeigename (3–100 Zeichen) | — |
| IsEnabled | Ob der Provider aktiv ist | — |
| AllowSelfRegistration | Neuen Benutzern die Registrierung bei der ersten Anmeldung erlauben | true |
| DefaultGroupRtId | RtId einer Gruppe, die neuen Benutzern zugewiesen wird | null |
| Description | Optionale Beschreibung | null |
AllowSelfRegistration
Wenn true (Standard), wird jeder Benutzer, der sich über diesen Provider authentifiziert, bei der ersten Anmeldung automatisch im Tenant registriert. Wenn false, müssen Benutzer von einem Administrator vorab angelegt werden, bevor sie sich anmelden können.
DefaultGroupRtId
Wenn gesetzt, werden neue Benutzer, die sich über diesen Provider registrieren, automatisch der angegebenen Gruppe hinzugefügt und erben alle Rollen dieser Gruppe. Dies ist nützlich, um allen Benutzern eines bestimmten Providers eine Grundausstattung an Berechtigungen zu gewähren.
OAuth-App-Registrierung — Redirect-URIs
Für die weiterleitungsbasierten Provider müssen Sie eine Callback-URI beim externen Provider registrieren (Google Cloud Console, Azure Portal, Facebook Developer Console). Die Pfade sind durch den Identity Service fest vorgegeben:
| Provider | Redirect-URI-Pfad |
|---|---|
/signin-google | |
| Microsoft Account | /signin-microsoft |
/signin-facebook | |
| Azure Entra ID | /auth/signin-callback |
Die vollständige URL lautet https://{identity-host}/{path} — zum Beispiel
https://identity.example.com/auth/signin-callback für Azure Entra ID oder
https://localhost:5003/signin-google für die lokale Entwicklung. Die LDAP-basierten Provider
(OpenLDAP, Active Directory) und OctoTenant verwenden die direkte Eingabe von Anmeldedaten auf der Login-Seite und
benötigen keine Redirect-URI.
Der Entra-ID-Callback lautet /auth/signin-callback — nicht der ASP.NET-Standard /signin-oidc. Eine
Abweichung äußert sich als AADSTS50011-Redirect-URI-Fehler auf der Microsoft-Login-Seite.
Provider über die CLI konfigurieren
OAuth-Provider (Google, Microsoft, Facebook)
octo-cli -c AddOAuthIdentityProvider \
-n "Google Login" \
-t "google" \
-cid "<client-id>" \
-cs "<client-secret>" \
-e true \
-asr true \
-dgid "<default-group-rtid>"
Azure Entra ID
octo-cli -c AddAzureEntryIdIdentityProvider \
-n "Corporate Azure AD" \
-t "<azure-tenant-id>" \
-cid "<client-id>" \
-cs "<client-secret>" \
-e true \
-asr true \
-dgid "<default-group-rtid>"
OpenLDAP
octo-cli -c AddOpenLdapIdentityProvider \
-n "Corporate LDAP" \
-h "ldap.example.com" \
-p 636 \
-ubdn "cn=users,dc=example,dc=com" \
-uan "uid" \
-e true \
-asr false
Active Directory
octo-cli -c AddAdIdentityProvider \
-n "Corporate AD" \
-h "ad.example.com" \
-p 636 \
-e true
Active-Directory-Provider synchronisieren AD-Gruppenmitgliedschaften bei jeder Anmeldung automatisch mit OctoMesh-Gruppen. Erstellen Sie OctoMesh-Gruppen mit demselben Namen wie Ihre AD-Gruppen und weisen Sie ihnen Rollen zu. Details siehe Gruppen — Active-Directory-Gruppensynchronisation.
OctoTenant (tenantübergreifend)
octo-cli -c AddOctoTenantIdentityProvider \
-n "Parent Tenant Auth" \
-ptid "<parent-tenant-id>" \
-e true \
-asr true \
-dgid "<default-group-rtid>"
Details dazu, wie OctoTenant-Provider funktionieren, finden Sie unter Tenantübergreifende Authentifizierung.
Provider aktualisieren
Der Update-Befehl funktioniert für alle Provider-Typen. Er ruft den vorhandenen Provider ab, bewahrt typspezifische Eigenschaften und wendet die Änderungen an:
octo-cli -c UpdateIdentityProvider \
-id "<provider-rtid>" \
-n "Updated Name" \
-e true \
-asr false \
-dgid "<default-group-rtid>"
Für OAuth-basierte Provider können Sie auch die Client-Anmeldedaten aktualisieren. Lassen Sie -cs weg, um das gespeicherte Client Secret zu behalten — es wird nie zurückgelesen und kann nicht gelöscht werden; ein neuer Wert rotiert es:
octo-cli -c UpdateIdentityProvider \
-id "<provider-rtid>" \
-n "Updated Name" \
-e true \
-cid "<new-client-id>" \
-cs "<new-client-secret>"
Provider löschen
octo-cli -c DeleteIdentityProvider -id "<provider-rtid>"
Provider auflisten
octo-cli -c GetIdentityProviders