Keycloak
Dowiedz się, jak skonfigurować LibreChat, aby używać Keycloak do uwierzytelniania użytkowników.
- Uzyskaj dostęp do konsoli administracyjnej Keycloak:
- Otwórz konsolę administracyjną Keycloak w swojej przeglądarce internetowej. Zazwyczaj znajduje się ona pod adresem URL takim jak
http://localhost:8080/auth/admin/.
- Utwórz Realm (jeśli to konieczne):
- Jeśli nie masz jeszcze realm dla swojej aplikacji, utwórz go. Kliknij „Add Realm” i nadaj mu nazwę.
- Utwórz klienta:
- W swoim obszarze kliknij „Clients”, a następnie „Create”.
- Wprowadź identyfikator klienta (client ID) i wybierz 'openid-connect' jako protokół klienta (Client Protocol).
- Ustaw 'Client Authentication' na 'On'.
- W polu 'Valid Redirect URIs' wprowadź
http://localhost:3080/oauth/openid/callbacklub odpowiedni URI dla swojej aplikacji.
- Skonfiguruj klienta:
- Po utworzeniu klienta zostaniesz przekierowany na stronę jego ustawień.
- Zanotuj 'Client ID' oraz 'Secret' z zakładki 'Credentials' – będą one potrzebne do Twojej aplikacji.
- Dodawanie ról (opcjonalne): Jeśli chcesz ograniczyć dostęp do użytkowników z określonymi rolami, możesz zdefiniować role w Keycloak i przypisać je do użytkowników.
- Przejdź do karty 'Roles' w swoim kliencie lub obszarze (w zależności od tego, gdzie chcesz zdefiniować role).
- Utwórz role, które odpowiadają wartości(om) zawartym w
OPENID_REQUIRED_ROLE.
- Przypisz role użytkownikom (opcjonalne):
- Przejdź do „Users”, wybierz użytkownika i przejdź do karty „Role Mappings”.
- Przypisz użytkownikowi co najmniej jedną z ról określonych w
OPENID_REQUIRED_ROLE.
- Pobierz ścieżkę listy ról wewnątrz tokena (opcjonalne):
- Zdekoduj swój jwtToken od dostawcy OpenID i określ ścieżkę do listy ról wewnątrz tokena dostępu (access token). Na przykład, jeśli używasz Keycloak, ścieżka to
realm_access.roles. - Umieść tę ścieżkę w zmiennej
OPENID_REQUIRED_ROLE_PARAMETER_PATHw pliku.env. - Za pomocą parametru
OPENID_REQUIRED_ROLE_TOKEN_KINDmożesz określić, którego rodzaju tokena chcesz użyć. Możliwe wartości toaccessorazid.
- Zaktualizuj konfigurację swojego projektu:
- Otwórz plik
.envw folderze swojego projektu i dodaj następujące zmienne:OPENID_ISSUER=http://localhost:8080/realms/[YourRealmName] OPENID_CLIENT_ID=[YourClientID] OPENID_CLIENT_SECRET=[YourClientSecret] OPENID_SESSION_SECRET=[JustGenerateARandomSessionSecret] OPENID_CALLBACK_URL=/oauth/openid/callback OPENID_SCOPE="openid profile email" OPENID_REQUIRED_ROLE=[YourRequiredRole] # Single role or comma-separated roles (e.g., role1,role2,admin) OPENID_REQUIRED_ROLE_TOKEN_KIND=(access|id) # that means, `access` or `id` OPENID_REQUIRED_ROLE_PARAMETER_PATH="realm_access.roles" # Optional: redirects the user to the end session endpoint after logging out OPENID_USE_END_SESSION_ENDPOINT=true # Maximum logout URL length before using logout_hint instead of id_token_hint (default: 2000) # OPENID_MAX_LOGOUT_URL_LENGTH=2000
Jaka jest ta instrukcja?