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
- Visite: https://console.aws.amazon.com/cognito/
- Entrar como Usuário Root
- Clique em
Create user pool
Configurar a experiência de login
As opções de login do seu user pool do Cognito devem incluir User Name e Email.
Configurar Requisitos de Segurança
Você pode configurar os requisitos de senha agora, se desejar.
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.
Configurar a entrega de mensagens
O envio de e-mail com Cognito pode ser usado gratuitamente para até 50 e-mails por dia
Integre seu aplicativo
Selecione Use Cognitio Hosted UI e escolha um nome de domínio
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
Em Advanced app client settings, certifique-se de que Profile esteja incluído em OpenID Connect scopes (na parte inferior).
Revisar e criar
Você pode fazer alterações de última hora agora; clique em Create user pool quando terminar de revisar a configuração.
Obtenha suas variáveis de ambiente
- Abra seu User Pool
- O
User Pool IDe a sua região AWS serão usados para construir oOPENID_ISSUER(veja abaixo)
- Vá para a aba
App Integrations
- Abra o cliente do aplicativo
- Alternar
Show Client Secret
-
Use o
Client IDparaOPENID_CLIENT_ID -
Use o
Client secretparaOPENID_CLIENT_SECRET -
Gere uma string aleatória para o
OPENID_SESSION_SECRET
As variáveis
OPENID_SCOPEeOPENID_CALLBACK_URLjá estão pré-configuradas com os valores corretos
- Abra o arquivo
.envna 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, oOPENID_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.
- Salve o arquivo .env
Nota: Se estiver usando Docker, execute
docker compose up -dpara aplicar as alterações de configuração do .env
Como está este guia?