Zum Inhalt springen

Authentifizierung

Konfigurieren Sie die lokale Authentifizierung, die optionale OpenID Connect-Anmeldung und die Kontowiederherstellung.

Archivierter Quell-Snapshot. Produktetiketten verwenden Repovio. Verwenden Sie die Konfigurations-IDs und Container-Referenzen aus den getaggten Bereitstellungsdateien dieser Version unverändert.

Erstmaliges Setup

Öffnen Sie nach der Bereitstellung einer neuen Installation deren öffentliche URL. Repovio leitet jede Anfrage an /auth/setup um, bis das erste Konto existiert. Geben Sie einen optionalen Vor- und Nachnamen, einen eindeutigen Benutzernamen und ein Passwort mit mindestens 12 Zeichen ein. Das Konto wird als Systemadministrator erstellt und sofort angemeldet.

Das Setup kann nur einmal erfolgreich sein. Nachdem der erste Benutzer vorhanden ist, leitet /auth/setup zu /auth/signin weiter. Bestehende Installationen behalten ihre aktuellen Benutzer während Upgrades und zeigen das Setup nicht erneut an.

OpenID Connect Single Sign-On

Repovio unterstützt zusätzlich zur lokalen Anmeldung einen optionalen OpenID Connect-Anbieter. Ein Systemadministrator konfiguriert es unter Einstellungen → Authentifizierung. Diese Anmeldung unterscheidet sich vom GitHub-, GitLab-, Forgejo- und Gitea-Anbieter OAuth: OIDC identifiziert einen Repovio-Benutzer, während der Anbieter OAuth nur Lesezugriff auf Anbieterressourcen gewährt.

Legen Sie die genaue extern erreichbare API-Rückruf-URL fest, bevor Sie den Anbieter konfigurieren:

PUBLIC_URL=https://repovio.example.com
OIDC_CALLBACK_URL=https://repovio.example.com/api/v1/auth/oidc/callback

Registrieren Sie den Wert von OIDC_CALLBACK_URL als zulässigen Umleitungs-URI beim Identitätsanbieter. Konfigurieren Sie den Aussteller, die Client-ID, das optionale Client-Geheimnis, die Bereiche und den Gruppenanspruch in Repovio. Die API akzeptiert das Client-Geheimnis beim Speichern, gibt jedoch nie seinen Wert zurück. Im Ruhezustand wird es mit TOKEN_ENCRYPTION_KEY verschlüsselt. Speichern Sie die Konfiguration, bevor Sie Verbindung prüfen verwenden. Nicht gespeicherte Änderungen deaktivieren diese Prüfung. Bestätigen Sie, dass die Erkennung erfolgreich ist, bevor Sie sich auf die OIDC-Anmeldung verlassen.

Für den Emittenten und seine Endpunkte ist HTTPS erforderlich. HTTP-Aussteller zulassen ist nur für isolierte Labornetzwerke gedacht; Es darf niemals für eine über das Internet erreichbare Bereitstellung aktiviert werden. Die lokale Kennwortanmeldung bleibt als Wiederherstellungspfad verfügbar, auch wenn OIDC aktiviert ist.

Das Formular zeigt außerdem die Rückruf-URL zum Kopieren, konfigurierte/beobachtete Gruppen und separate Steuerelemente zum Ersetzen oder Löschen des gespeicherten Client-Geheimnisses. Wenn Sie den Ersatz deaktiviert lassen, bleibt das gespeicherte Geheimnis erhalten. Lade-, Speicher- und Verbindungsprüfungsfehler werden separat gemeldet. Korrigieren Sie die ungültige Konfiguration und speichern Sie sie erneut, bevor Sie die Verbindungsprüfung erneut versuchen.

Gruppen, Rollen und Identitäten

Der Gruppenanspruch kann ein exakter Anspruchsname oder ein durch Punkte getrennter Pfad sein, z. B. realm_access.groups. Konfigurieren Sie genaue Gruppenwerte unter Berücksichtigung der Groß- und Kleinschreibung für die drei Repovio-Rollen. Wenn mehrere Gruppen übereinstimmen, gilt Repovio, SYSTEM_ADMIN, dann MANAGER, dann VIEWER. Nicht übereinstimmende, fehlerhafte, fehlende oder übermäßig große Gruppenansprüche werden abgelehnt, es sei denn, Nicht übereinstimmende Benutzer als Betrachter zulassen ist ausdrücklich aktiviert.

Ein OIDC-Konto ist nur durch das verifizierte Emittenten- und Betreffpaar verknüpft. Repovio verknüpft niemals ein OIDC-Login mit einem lokalen Konto per E-Mail-Adresse oder Benutzername. Bei jeder erfolgreichen Anmeldung werden Vor- und Nachnamen aus verifizierten Ansprüchen synchronisiert; Anmeldename, Profilnamen und Passwort können nicht lokal geändert werden. Repository-Mitgliedschaften bleiben in Repovio verwaltet und werden niemals von Identitätsanbietergruppen abgeleitet.

Sicherheitsrelevante Konfigurations- oder Rollenänderungen machen vorhandene OIDC-Bearer-Token ungültig. Eine Änderung nur des Anzeigenamens macht bestehende OIDC-Token nicht ungültig. Wenn eine Identitätsanbietergruppe deaktiviert oder entfernt wird, erhält das betroffene Konto keine neue Sitzung. Nach der nächsten abgewiesenen Anmeldung werden auch seine bisherigen Sitzungen ungültig.

Anbieterbeispiele

Erstellen Sie für Authentik einen OAuth2/OpenID-Anbieter mit Autorisierungscodefluss, der genauen Rückruf-URL oben und den Bereichen openid, profile und email. Fügen Sie eine Bereichszuordnung hinzu, die den ausgewählten Gruppenanspruch als Array von Gruppennamen zurückgibt, hängen Sie den Anbieter an eine Anwendung an und kopieren Sie dann den Aussteller, die Client-ID und das Client-Geheimnis der Anwendung in Repovio.

Aktivieren Sie für einen anderen standardkonformen Anbieter den Autorisierungscodefluss, fordern Sie S256 PKCE an, registrieren Sie die genaue Rückruf-URL und fügen Sie einen stabilen sub sowie den konfigurierten Gruppenanspruch in das ID-Token oder die UserInfo-Antwort ein. Repovio akzeptiert nur asymmetrische ID-Token-Signaturen und lehnt nicht signierte und HMAC-signierte Token ab.

OIDC API-Vertrag

MethodePfadZugriffZweck
GET/api/v1/auth/oidc/statusÖffentlichGibt nur die effektive Verfügbarkeit und den optionalen Anbieternamen zurück.
GET/api/v1/auth/oidc/startÖffentlichStartet einen browsergebundenen Autorisierungscode und eine S256-PKCE-Transaktion.
GET/api/v1/auth/oidc/callbackÖffentlichValidiert die Anbieterantwort und leitet mit einem einmaligen Fragmentcode weiter.
POST/api/v1/auth/oidc/exchangeÖffentlichVerbraucht den Fragmentcode einmal und gibt den normalen Träger AuthResult zurück.
GET, PUT/api/v1/auth/oidc/configSystemadministratorLiest oder aktualisiert geheimnissichere OIDC-Einstellungen.
POST/api/v1/auth/oidc/checkSystemadministratorÜberprüft die gespeicherte Discovery-Konfiguration, ohne sie zu ändern.

Der Rückruf platziert niemals ein Träger-JWT in einer URL. Sein undurchsichtiger Austauschcode läuft nach 60 Sekunden ab und kann nur einmal verwendet werden. Anbieterfehler werden auf stabile Fehlercodes reduziert, bevor sie den Browser oder die Protokolle erreichen.

Ändern Sie Ihr Passwort

Öffnen Sie, während Sie angemeldet sind, Einstellungen → Allgemein → Passwort ändern. Geben Sie das aktuelle Passwort, das neue Passwort und dessen Bestätigung ein. Repovio behält die Anmeldung des aktuellen Browsers mit einem Ersatzzugriffstoken bei und macht die von jeder anderen angemeldeten Sitzung gehaltenen Token ungültig.

Setzen Sie ein vergessenes Passwort zurück

Repovio verzichtet bewusst auf eine E-Mail-basierte Passwortzurücksetzung. Ein Bereitstellungsadministrator kann ein lokales Konto aus dem Verzeichnis mit compose.yml zurücksetzen. Lesen Sie das Ersatzkennwort, ohne es zurückzugeben oder im Shell-Verlauf zu speichern, und senden Sie es dann über die Standardeingabe an den API-Container:

read -rsp 'New Repovio password: ' REPOVIO_NEW_PASSWORD
printf '\n'
printf '%s\n' "$REPOVIO_NEW_PASSWORD" \
  | docker compose exec -T api node dist/scripts/reset-password.js USERNAME
unset REPOVIO_NEW_PASSWORD

Ersetzen Sie USERNAME durch den genauen Login-Benutzernamen. Der Befehl erfordert ein Passwort zwischen 12 und 256 Zeichen, aktualisiert nur das lokale Konto und macht alle vorhandenen Zugriffstoken ungültig. Melden Sie sich anschließend erneut mit dem neuen Passwort an. Der Befehl lehnt von OIDC verwaltete Konten ab, da diese kein lokales Kennwort haben.