Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

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

image

Konfiguracja procesu logowania

Opcje logowania do puli użytkowników Cognito powinny obejmować User Name oraz Email.

image

Konfiguracja wymagań bezpieczeństwa

Możesz teraz skonfigurować wymagania dotyczące hasła, jeśli chcesz.

image

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.

image

Konfiguracja dostarczania wiadomości

Wysyłanie wiadomości e-mail za pomocą Cognito jest darmowe do 50 wiadomości dziennie.

image

Zintegruj swoją aplikację

Wybierz Use Cognitio Hosted UI i wybierz nazwę domeny

image

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

image

W sekcji Advanced app client settings upewnij się, że Profile znajduje się w OpenID Connect scopes (na dole).

image

Przejrzyj i utwórz

Możesz teraz wprowadzić ostatnie zmiany; kliknij Create user pool, gdy zakończysz sprawdzanie konfiguracji.

image

image

image

image

Pobierz swoje zmienne środowiskowe

  1. Otwórz swoją pulę użytkowników (User Pool)

image

  1. User Pool ID oraz Twój region AWS zostaną użyte do skonstruowania OPENID_ISSUER (patrz poniżej)

image image

  1. Przejdź do karty App Integrations

image

  1. Otwórz klienta aplikacji

image

  1. Przełącz Show Client Secret

image

  • Użyj Client ID dla OPENID_CLIENT_ID

  • Użyj Client secret dla OPENID_CLIENT_SECRET

  • Wygeneruj losowy ciąg znaków dla OPENID_SESSION_SECRET

Zmienne OPENID_SCOPE oraz OPENID_CALLBACK_URL są wstępnie skonfigurowane z poprawnymi wartościami

  1. Otwórz plik .env w 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 ustawienie OPENID_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ł.

  1. Zapisz plik .env

Uwaga: Jeśli używasz Docker, uruchom docker compose up -d, aby zastosować zmiany w konfiguracji .env

Jaka jest ta instrukcja?