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

AWS Cognito

Aprenda a configurar o LibreChat para usar o AWS Cognito para autenticação de usuários.

Criar um novo User Pool no Cognito

imagem

Configurar a experiência de login

As opções de login do seu user pool do Cognito devem incluir User Name e Email.

image

Configurar Requisitos de Segurança

Você pode configurar os requisitos de senha agora, se desejar.

image

Configurar a experiência de cadastro

Escolha os atributos necessários no cadastro. O mínimo exigido é name. Se você quiser exigir que os usuários usem seu nome completo no cadastro, use: given_name e family_name como atributos obrigatórios.

image

Configurar a entrega de mensagens

O envio de e-mail com Cognito pode ser usado gratuitamente para até 50 e-mails por dia

image

Integre seu aplicativo

Selecione Use Cognitio Hosted UI e escolha um nome de domínio

image

Defina o tipo de aplicativo como Confidential client Certifique-se de que Generate a client secret esteja definido. Defina as Allowed callback URLs como https://YOUR_DOMAIN/oauth/openid/callback

image

Em Advanced app client settings, certifique-se de que Profile esteja incluído em OpenID Connect scopes (na parte inferior).

image

Revisar e criar

Você pode fazer alterações de última hora agora; clique em Create user pool quando terminar de revisar a configuração.

image

image

image

image

Obtenha suas variáveis de ambiente

  1. Abra seu User Pool

image

  1. O User Pool ID e a sua região AWS serão usados para construir o OPENID_ISSUER (veja abaixo)

image image

  1. Vá para a aba App Integrations

image

  1. Abra o cliente do aplicativo

image

  1. Alternar Show Client Secret

image

  • Use o Client ID para OPENID_CLIENT_ID

  • Use o Client secret para OPENID_CLIENT_SECRET

  • Gere uma string aleatória para o OPENID_SESSION_SECRET

As variáveis OPENID_SCOPE e OPENID_CALLBACK_URL já estão pré-configuradas com os valores corretos

  1. Abra o arquivo .env na raiz da sua pasta LibreChat e adicione as seguintes variáveis com os valores que você copiou:
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]
Se o Cognito estiver configurado com um provedor OIDC, ou seja, federação com o Entra, o OPENID_GENERATE_NONCE=true é obrigatório. Caso contrário, o Cognito irá gerá-lo de qualquer forma e a validação das claims falhará, já que o cliente não forneceu um.

  1. Salve o arquivo .env

Nota: Se estiver usando Docker, execute docker compose up -d para aplicar as alterações de configuração do .env

Como está este guia?