Authentifizierung
Konfigurieren Sie Anmeldung, Sitzungen, OAuth, OIDC/SSO und Device Flow.
Authentifizierung
ObjectOS verwendet das ObjectStack-Authentifizierungs-Plugin, das auf Better Auth basiert. Die Authentifizierung ist projektlokal: Jedes Projekt hat seine eigenen Identitätstabellen und seinen eigenen Sitzungsbereich.
Was wird unterstützt
Abhängig von der paketierten Anwendung und den aktivierten Einstellungen kann ObjectOS Folgendes unterstützen:
- Anmeldung per E-Mail/Passwort;
- Sitzungsverwaltung;
- Passwortzurücksetzung und E-Mail-Verifizierung;
- soziale OAuth-Anbieter wie Google, GitHub, Microsoft und Apple;
- Enterprise-OIDC/SSO wie Okta, Entra ID, Keycloak und Ping;
- Zwei-Faktor-Authentifizierung;
- Passkeys/WebAuthn;
- Magic Links;
- CLI-/Browser-Device-Flow.
Erforderliches Geheimnis
Legen Sie fest:
OS_AUTH_SECRET=replace-with-a-strong-random-secretObjectOS leitet aus diesem Wert und der Projektumgebungs-ID ein stabiles projektspezifisches Geheimnis ab. Das bedeutet:
- Sitzungen überstehen Container-Neustarts;
- Tokens aus einem Projekt können nicht in einem anderen Projekt wiederverwendet werden;
- das Rotieren von
OS_AUTH_SECRETmacht Sitzungen ungültig.
Siehe Environment variables für die
vollständige Liste der authentifizierungsbezogenen Einstellungen, einschließlich
des veralteten AUTH_SECRET-Alias.
Sitzungsisolierung
In Bereitstellungen mit mehreren Projekten sind Cookies auf den Projekt-Hostnamen beschränkt. ObjectOS vermeidet bewusst weitreichende Root-Domain-Cookies für Projektsitzungen. Dadurch wird verhindert, dass eine Sitzung über Kundenprojekte hinweg durchsickert.
Soziale Anmeldung
Konfigurieren Sie die Anbieter-Anmeldedaten über Umgebungsvariablen oder Systemeinstellungen, je nachdem, wie das Anwendungspaket die Authentifizierungskonfiguration bereitstellt.
Die Callback-URLs der Anbieter hängen vom Anbietertyp ab. ObjectStack stellt zwei unterschiedliche Callback-Pfade bereit, die nicht austauschbar sind:
| Anbietertyp | Callback-Pfad |
|---|---|
| Integrierte soziale Anbieter (Google, GitHub, Microsoft, Apple, …) | /api/v1/auth/callback/<provider> |
| Generisches OIDC / OAuth2 (Okta, Entra ID, Keycloak, Ping, …) | /api/v1/auth/oauth2/callback/<provider> |
Beispiele:
https://crm.example.com/api/v1/auth/callback/google
https://crm.example.com/api/v1/auth/callback/microsoft
https://crm.example.com/api/v1/auth/oauth2/callback/okta
https://crm.example.com/api/v1/auth/oauth2/callback/entraKonfigurieren Sie die passende Redirect-URI in der Anwendungsregistrierung des Identitätsanbieters, bevor Sie den Anbieter in ObjectOS aktivieren.
Enterprise-OIDC/SSO
OIDC-Anbieter werden als generische OAuth2-Anbieter registriert und verwenden den
Pfad /api/v1/auth/oauth2/callback/<provider>. Eine typische Konfiguration
erfordert:
| Feld | Beschreibung |
|---|---|
| Provider id | Stabile ID wie okta oder entra (in der Callback-URL verwendet) |
| Display name | Schaltflächenbeschriftung, die Benutzern angezeigt wird |
| Discovery URL | .well-known/openid-configuration-Endpunkt |
| Client id | Anwendungs-Client-ID vom Identitätsanbieter |
| Client secret | Geheimnis, das in Umgebung oder verschlüsselten Einstellungen gespeichert ist |
| Scopes | Üblicherweise openid email profile |
Bevorzugen Sie für Kundenbereitstellungen OIDC-Discovery-URLs gegenüber manuell konfigurierten Authorization-/Token-/Userinfo-Endpunkten.
Plattform-SSO
In cloud-verbundenen Bereitstellungen kann ObjectOS die Control-Plane-Anmeldung als Plattform-SSO-Anbieter verwenden. Ein Builder, der bereits an der Control Plane angemeldet ist, kann in eine Projektlaufzeit bereitgestellt werden, ohne ein separates projektlokales Konto zu erstellen.
Dies erfordert, dass die Control Plane und ObjectOS dasselbe
OS_AUTH_SECRET-Basisgeheimnis teilen. Deaktivieren Sie Plattform-SSO nur, wenn
der Kunde möchte, dass jedes Projekt eine vollständig separate Anmeldegrenze
besitzt.
Betriebsprüfungen
Vor der Produktion:
- bestätigen Sie, dass abgelaufene Tokens
401zurückgeben; - bestätigen Sie, dass die Abmeldung die aktive Sitzung widerruft;
- bestätigen Sie, dass die Passwortzurücksetzung andere Sitzungen widerruft, falls die Richtlinie dies erfordert;
- bestätigen Sie, dass die Callback-URLs mit der öffentlichen Projektdomäne übereinstimmen;
- bestätigen Sie, dass vertrauenswürdige Ursprünge nur genehmigte Domänen enthalten;
- bestätigen Sie, dass
OS_AUTH_SECRETin einem Secret Manager gespeichert ist und nicht im Quellcode.
Nächste Schritte
Die Authentifizierung legt fest, wer ein Benutzer ist. Um zu steuern, worauf ein Benutzer nach der Anmeldung zugreifen kann, siehe Permissions. Für Nicht-Browser-Clients und Machine-to-Machine-Zugriff siehe API access.