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

AWS Cognito

LibreChat에서 사용자 인증을 위해 AWS Cognito를 구성하는 방법을 알아보세요.

Cognito에서 새 사용자 풀(User Pool) 생성하기

image

로그인 환경 구성

Cognito 사용자 풀 로그인 옵션에는 User NameEmail이 포함되어야 합니다.

image

보안 요구 사항 구성

원하신다면 지금 비밀번호 요구 사항을 구성할 수 있습니다.

image

가입 환경 구성

가입 시 필요한 속성을 선택하세요. 최소 필수 항목은 name입니다. 사용자가 가입 시 전체 이름을 사용하도록 하려면 given_namefamily_name을 필수 속성으로 사용하세요.

image

메시지 전달 구성

Cognito를 사용한 이메일 전송은 하루 최대 50통까지 무료로 사용할 수 있습니다.

image

앱 통합하기

Use Cognitio Hosted UI를 선택하고 도메인 이름을 선택하세요.

image

앱 유형을 Confidential client로 설정하세요. Generate a client secret이 설정되어 있는지 확인하세요. Allowed callback URLshttps://YOUR_DOMAIN/oauth/openid/callback으로 설정하세요.

image

Advanced app client settings 아래에서 OpenID Connect scopes (하단)에 Profile이 포함되어 있는지 확인하세요.

image

검토 및 생성

이제 마지막으로 변경 사항을 적용할 수 있으며, 구성을 검토한 후 Create user pool을 클릭하세요.

image

image

image

image

환경 변수 가져오기

  1. 사용자 풀(User Pool)을 여세요

image

  1. User Pool ID와 AWS 리전은 OPENID_ISSUER를 구성하는 데 사용됩니다(아래 참조).

image image

  1. App Integrations 탭으로 이동하세요

image

  1. 앱 클라이언트를 엽니다

image

  1. Show Client Secret 토글

image

  • OPENID_CLIENT_IDClient ID를 사용하세요.

  • OPENID_CLIENT_SECRET에는 Client secret을 사용하세요.

  • OPENID_SESSION_SECRET을 위한 임의의 문자열을 생성하세요.

OPENID_SCOPEOPENID_CALLBACK_URL은 올바른 값으로 미리 구성되어 있습니다.

  1. 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를 생성하게 되며, 클라이언트가 이를 제공하지 않았기 때문에 클레임 검증이 실패하게 됩니다.

  1. .env 파일을 저장하세요

참고: Docker를 사용하는 경우, docker compose up -d를 실행하여 .env 구성 변경 사항을 적용하세요.

이 가이드는 어떤가요?