AWS Cognito
Dowiedz się, jak skonfigurować LibreChat, aby używać AWS Cognito do uwierzytelniania użytkowników.
Utwórz nową pulę użytkowników (User Pool) w Cognito
- Odwiedź: https://console.aws.amazon.com/cognito/
- Zaloguj się jako użytkownik Root
- Kliknij
Create user pool
Konfiguracja procesu logowania
Opcje logowania do puli użytkowników Cognito powinny obejmować User Name oraz Email.
Konfiguracja wymagań bezpieczeństwa
Możesz teraz skonfigurować wymagania dotyczące hasła, jeśli chcesz.
Konfiguracja procesu rejestracji
Wybierz atrybuty wymagane podczas rejestracji. Minimum to name. Jeśli chcesz wymagać od użytkowników podania pełnego imienia i nazwiska przy rejestracji, użyj given_name oraz family_name jako wymaganych atrybutów.
Konfiguracja dostarczania wiadomości
Wysyłanie wiadomości e-mail za pomocą Cognito jest darmowe do 50 wiadomości dziennie.
Zintegruj swoją aplikację
Wybierz Use Cognitio Hosted UI i wybierz nazwę domeny
Ustaw typ aplikacji na Confidential client
Upewnij się, że opcja Generate a client secret jest zaznaczona.
Ustaw Allowed callback URLs na https://YOUR_DOMAIN/oauth/openid/callback
W sekcji Advanced app client settings upewnij się, że Profile znajduje się w OpenID Connect scopes (na dole).
Przejrzyj i utwórz
Możesz teraz wprowadzić ostatnie zmiany; kliknij Create user pool, gdy zakończysz sprawdzanie konfiguracji.
Pobierz swoje zmienne środowiskowe
- Otwórz swoją pulę użytkowników (User Pool)
User Pool IDoraz Twój region AWS zostaną użyte do skonstruowaniaOPENID_ISSUER(patrz poniżej)
- Przejdź do karty
App Integrations
- Otwórz klienta aplikacji
- Przełącz
Show Client Secret
-
Użyj
Client IDdlaOPENID_CLIENT_ID -
Użyj
Client secretdlaOPENID_CLIENT_SECRET -
Wygeneruj losowy ciąg znaków dla
OPENID_SESSION_SECRET
Zmienne
OPENID_SCOPEorazOPENID_CALLBACK_URLsą wstępnie skonfigurowane z poprawnymi wartościami
- Otwórz plik
.envw katalogu głównym folderu LibreChat i dodaj poniższe zmienne z wartościami, które zostały skopiowane:
DOMAIN_CLIENT=https://your-domain.com # use http://localhost:3080 if not using a custom domain
DOMAIN_SERVER=https://your-domain.com # use http://localhost:3080 if not using a custom domain
OPENID_CLIENT_ID=Your client ID
OPENID_CLIENT_SECRET=Your client secret
OPENID_ISSUER=https://cognito-idp.[AWS REGION].amazonaws.com/[USER POOL ID]/.well-known/openid-configuration
OPENID_SESSION_SECRET=Any random string
OPENID_SCOPE=openid profile email
OPENID_CALLBACK_URL=/oauth/openid/callback
# 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
# Optional: generates the nonce url parameter.
OPENID_GENERATE_NONCE=true[!WARNING]
Jeśli Cognito jest skonfigurowane z dostawcą OIDC, tj. federacją z Entra, wymagane jest ustawienieOPENID_GENERATE_NONCE=true. W przeciwnym razie Cognito wygeneruje go niezależnie, a walidacja oświadczeń (claims) zakończy się niepowodzeniem, ponieważ klient go nie dostarczył.
- Zapisz plik .env
Uwaga: Jeśli używasz Docker, uruchom
docker compose up -d, aby zastosować zmiany w konfiguracji .env
Jaka jest ta instrukcja?