Zum Hauptinhalt springen

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​

TypAnwendungsfallWichtige Eigenschaften
GoogleGoogle OAuth 2.0ClientId, ClientSecret
MicrosoftMicrosoft Account OAuth 2.0ClientId, ClientSecret
FacebookFacebook OAuth 2.0ClientId, ClientSecret
Azure Entra IDUnternehmens-Azure AD / Entra IDTenantId, ClientId, ClientSecret, Authority
OpenLDAPLDAP-VerzeichnisauthentifizierungHost, Port, UserBaseDn, UserNameAttribute
Active DirectoryMicrosoft Active Directory (LDAPS)Host, Port
OctoTenantTenantübergreifende Authentifizierung über übergeordneten TenantParentTenantId
Client Secrets sind nur schreibbar

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:

EigenschaftBeschreibungStandard
NameEindeutiger Anzeigename (3–100 Zeichen)—
IsEnabledOb der Provider aktiv ist—
AllowSelfRegistrationNeuen Benutzern die Registrierung bei der ersten Anmeldung erlaubentrue
DefaultGroupRtIdRtId einer Gruppe, die neuen Benutzern zugewiesen wirdnull
DescriptionOptionale Beschreibungnull

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:

ProviderRedirect-URI-Pfad
Google/signin-google
Microsoft Account/signin-microsoft
Facebook/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.

Azure-Entra-ID-Pfad

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
AD-Gruppensynchronisation

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