Jednokrotne logowanie
Libre WebUI obsługuje logowanie OAuth przez GitHub i Hugging Face oraz każdego dostawcę OpenID Connect przez ogólną integrację OIDC. Użytkownicy OAuth są nadal przechowywani jako lokalni użytkownicy Libre WebUI i domyślnie otrzymują rolę user (OIDC może opcjonalnie mapować role i grupy z oświadczeń).
GitHub OAuth
Utwórz aplikację OAuth w GitHub Developer Settings.
Lokalny adres zwrotny:
http://localhost:3001/api/auth/oauth/github/callback
Produkcyjny adres zwrotny:
https://your-domain.example/api/auth/oauth/github/callback
Plik .env backendu:
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
GITHUB_CALLBACK_URL=https://your-domain.example/api/auth/oauth/github/callback
GitHub OAuth żąda zakresu user:email. Nowi użytkownicy otrzymują nazwy z prefiksem gh_.
Hugging Face OAuth
Utwórz aplikację OAuth w ustawieniach Hugging Face.
Lokalny adres zwrotny:
http://localhost:3001/api/auth/oauth/huggingface/callback
Produkcyjny adres zwrotny:
https://your-domain.example/api/auth/oauth/huggingface/callback
Plik .env backendu:
HUGGINGFACE_CLIENT_ID=...
HUGGINGFACE_CLIENT_SECRET=...
HUGGINGFACE_CALLBACK_URL=https://your-domain.example/api/auth/oauth/huggingface/callback
Nowi użytkownicy otrzymują nazwy z prefiksem hf_.
Ogólne OIDC
Działa każdy dostawca z dokumentem wykrywania OpenID Connect: Keycloak, Authentik, Authelia, Okta, Entra ID, Google Workspace i inni. Przepływ używa PKCE (S256), stanu CSRF i nonce weryfikowanego wewnątrz tokenu ID ze sprawdzonym podpisem; klucze podpisujące pochodzą z JWKS dostawcy.
Zarejestruj poufnego klienta z tym adresem zwrotnym:
https://your-domain.example/api/auth/oauth/oidc/callback
Plik .env backendu:
OIDC_ISSUER_URL=https://id.example.com/realms/main
OIDC_CLIENT_ID=libre-webui
OIDC_CLIENT_SECRET=...
OIDC_DISPLAY_NAME=Example SSO
Opcjonalne zasady:
# Require a verified email in one of these domains
OIDC_ALLOWED_EMAIL_DOMAINS=example.com,example.org
# Grant/remove the admin role based on a group claim on every login
OIDC_GROUP_CLAIM=groups
OIDC_ADMIN_GROUPS=libre-admins
# Reconcile Libre group memberships with the group claim on every login
OIDC_SYNC_GROUPS=true
Tożsamości są łączone na podstawie stabilnego oświadczenia sub, dlatego konto dostawcy po zmianie nazwy zachowuje konto Libre. Nowi użytkownicy otrzymują nazwy z prefiksem oidc_, jeśli rejestracja na to pozwala. Adres e-mail należący już do niepołączonego konta lokalnego jest odrzucany, a nie po cichu scalany. Przy OIDC_SYNC_GROUPS=true członkostwo użytkowników OIDC we wszystkich grupach Libre, których nazwa odpowiada wartości oświadczenia, jest sterowane przez oświadczenia — najpierw utwórz odpowiednie grupy na karcie Zarządzanie użytkownikami w Settings.
Ustawienia wspólne
Ustaw publiczny adres backendu:
BASE_URL=https://your-domain.example
CORS_ORIGIN=https://your-domain.example
Jeśli adresy zwrotne nie są ustawione jawnie, Libre WebUI tworzy wartości domyślne z BASE_URL.
Ograniczenia
Libre WebUI nie udostępnia obecnie SAML ani aprowizacji SCIM. Listy dozwolonych domen i mapowanie ról/grup są dostępne tylko dla ogólnego dostawcy OIDC; użytkownicy GitHub i Hugging Face są zawsze tworzeni z rolą user i zarządzani w interfejsie administratora.
Rozwiązywanie problemów
Przycisk OAuth nic nie robi
Potwierdź ustawienie identyfikatora klienta i sekretu dostawcy oraz ponowne uruchomienie backendu.
Dostawca odrzuca adres zwrotny
Adres zwrotny w panelu dostawcy musi dokładnie odpowiadać adresowi używanemu przez Libre WebUI.
Użytkownik otrzymuje zwykłe uprawnienia
Użytkownicy OAuth są domyślnie tworzeni jako user. W razie potrzeby awansuj ich w interfejsie administratora.