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
- Truy cập: https://console.aws.amazon.com/cognito/
- Đăng nhập với tư cách Root User
- Nhấp vào
Create user pool
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 Name và Email.
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
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_name và family_name làm các thuộc tính bắt buộc.
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
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
Đặ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
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).
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.
Lấy các biến môi trường của bạn
- Mở User Pool của bạn
User Pool IDvà vùng AWS của bạn sẽ được sử dụng để xây dựngOPENID_ISSUER(xem bên dưới)
- Đi tới tab
App Integrations
- Mở ứng dụng client
- Bật/tắt
Show Client Secret
-
Sử dụng
Client IDchoOPENID_CLIENT_ID -
Sử dụng
Client secretchoOPENID_CLIENT_SECRET -
Tạo một chuỗi ngẫu nhiên cho
OPENID_SESSION_SECRET
OPENID_SCOPEvàOPENID_CALLBACK_URLđã được cấu hình sẵn với các giá trị chính xác
- Mở tệp
.envtạ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 đặtOPENID_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.
- 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?