AWS Cognito
LibreChat에서 사용자 인증을 위해 AWS Cognito를 구성하는 방법을 알아보세요.
Cognito에서 새 사용자 풀(User Pool) 생성하기
- 방문: https://console.aws.amazon.com/cognito/
- 루트 사용자로 로그인
Create user pool을 클릭하세요
로그인 환경 구성
Cognito 사용자 풀 로그인 옵션에는 User Name과 Email이 포함되어야 합니다.
보안 요구 사항 구성
원하신다면 지금 비밀번호 요구 사항을 구성할 수 있습니다.
가입 환경 구성
가입 시 필요한 속성을 선택하세요. 최소 필수 항목은 name입니다. 사용자가 가입 시 전체 이름을 사용하도록 하려면 given_name 및 family_name을 필수 속성으로 사용하세요.
메시지 전달 구성
Cognito를 사용한 이메일 전송은 하루 최대 50통까지 무료로 사용할 수 있습니다.
앱 통합하기
Use Cognitio Hosted UI를 선택하고 도메인 이름을 선택하세요.
앱 유형을 Confidential client로 설정하세요.
Generate a client secret이 설정되어 있는지 확인하세요.
Allowed callback URLs를 https://YOUR_DOMAIN/oauth/openid/callback으로 설정하세요.
Advanced app client settings 아래에서 OpenID Connect scopes (하단)에 Profile이 포함되어 있는지 확인하세요.
검토 및 생성
이제 마지막으로 변경 사항을 적용할 수 있으며, 구성을 검토한 후 Create user pool을 클릭하세요.
환경 변수 가져오기
- 사용자 풀(User Pool)을 여세요
User Pool ID와 AWS 리전은OPENID_ISSUER를 구성하는 데 사용됩니다(아래 참조).
App Integrations탭으로 이동하세요
- 앱 클라이언트를 엽니다
Show Client Secret토글
-
OPENID_CLIENT_ID에Client ID를 사용하세요. -
OPENID_CLIENT_SECRET에는Client secret을 사용하세요. -
OPENID_SESSION_SECRET을 위한 임의의 문자열을 생성하세요.
OPENID_SCOPE및OPENID_CALLBACK_URL은 올바른 값으로 미리 구성되어 있습니다.
- LibreChat 폴더 루트에 있는
.env파일을 열고 복사한 값으로 다음 변수들을 추가하세요:
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]
Cognito가 OIDC 공급자(예: Entra로의 페더레이션)와 함께 구성된 경우,OPENID_GENERATE_NONCE=true설정이 필수입니다. 그렇지 않으면 Cognito가 자체적으로 nonce를 생성하게 되며, 클라이언트가 이를 제공하지 않았기 때문에 클레임 검증이 실패하게 됩니다.
- .env 파일을 저장하세요
참고: Docker를 사용하는 경우,
docker compose up -d를 실행하여 .env 구성 변경 사항을 적용하세요.
이 가이드는 어떤가요?