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

AWS Cognito

Tìm hiểu cách cấu hình LibreChat để sử dụng AWS Cognito cho xác thực người dùng.

Tạo User Pool mới trong Cognito

image

Cấu hình trải nghiệm đăng nhập

Các tùy chọn đăng nhập trong Cognito user pool của bạn nên bao gồm User NameEmail.

image

Cấu hình các yêu cầu bảo mật

Bạn có thể định cấu hình các yêu cầu về mật khẩu ngay bây giờ nếu muốn

image

Cấu hình trải nghiệm đăng ký

Chọn các thuộc tính bắt buộc khi đăng ký. Thuộc tính tối thiểu bắt buộc là name. Nếu bạn muốn yêu cầu người dùng sử dụng tên đầy đủ khi đăng ký, hãy sử dụng: given_namefamily_name làm các thuộc tính bắt buộc.

image

Cấu hình gửi tin nhắn

Gửi email bằng Cognito có thể được sử dụng miễn phí với tối đa 50 email mỗi ngày

image

Tích hợp ứng dụng của bạn

Chọn Use Cognitio Hosted UI và chọn một tên miền

image

Đặt loại ứng dụng thành Confidential client Đảm bảo Generate a client secret đã được thiết lập. Đặt Allowed callback URLs thành https://YOUR_DOMAIN/oauth/openid/callback

image

Trong phần Advanced app client settings, hãy đảm bảo rằng Profile đã được bao gồm trong OpenID Connect scopes (ở phía dưới).

image

Xem lại và tạo

Bạn có thể thực hiện các thay đổi vào phút cuối, nhấp vào Create user pool khi bạn đã xem xét xong cấu hình.

image

image

image

image

Lấy các biến môi trường của bạn

  1. Mở User Pool của bạn

image

  1. User Pool ID và vùng AWS của bạn sẽ được sử dụng để xây dựng OPENID_ISSUER (xem bên dưới)

image image

  1. Đi tới tab App Integrations

image

  1. Mở ứng dụng client

image

  1. Bật/tắt Show Client Secret

image

  • Sử dụng Client ID cho OPENID_CLIENT_ID

  • Sử dụng Client secret cho OPENID_CLIENT_SECRET

  • Tạo một chuỗi ngẫu nhiên cho OPENID_SESSION_SECRET

OPENID_SCOPEOPENID_CALLBACK_URL đã được cấu hình sẵn với các giá trị chính xác

  1. Mở tệp .env tại thư mục gốc của thư mục LibreChat của bạn và thêm các biến sau với các giá trị bạn đã sao chép:
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]
Nếu Cognito được cấu hình với một nhà cung cấp OIDC, ví dụ như liên kết với Entra, thì bắt buộc phải đặt OPENID_GENERATE_NONCE=true. Nếu không, Cognito sẽ tự tạo nonce bất kể cấu hình nào và việc xác thực các yêu cầu (claims) sẽ thất bại vì client không cung cấp nonce.

  1. Lưu tệp .env

Lưu ý: Nếu sử dụng Docker, hãy chạy docker compose up -d để áp dụng các thay đổi cấu hình trong .env

Hướng dẫn này thế nào?