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

Azure Entra

Aprenda a configurar o LibreChat para usar o Azure Entra para autenticação de usuário.

  1. Vá para o Azure Portal e faça login com sua conta.
  2. Na caixa de pesquisa, digite "Azure Entra" e clique nela.
  3. No menu à esquerda, clique em App registrations e, em seguida, em New registration.
  4. Dê um nome ao seu aplicativo e selecione Web como o tipo de plataforma.
  5. No campo Redirect URI, insira a URL de callback OpenID do seu LibreChat e clique em Register. Para instalações locais via Docker, use http://localhost:3080/oauth/openid/callback. Para instâncias implantadas, substitua http://localhost:3080 pelo valor do seu DOMAIN_SERVER público, por exemplo https://chat.example.com/oauth/openid/callback.

image

  1. Você verá uma página de Visão geral (Overview) com algumas informações sobre seu aplicativo. Copie o ID do Aplicativo (cliente) e o ID do Diretório (locatário) e salve-os em algum lugar.

image

  1. No menu à esquerda, clique em Authentication e marque as caixas para Access tokens e ID tokens em Implicit grant and hybrid flows.

image

  1. No menu à esquerda, clique em Certificates & Secrets e depois em New client secret. Dê um nome ao seu secret e uma data de expiração e clique em Add. Você verá uma coluna Value com o seu secret. Copie-o e salve-o em algum lugar. Não o compartilhe com ninguém!

image

  1. Se você deseja restringir o acesso por grupos, você deve adicionar a claim de grupos ao token. Para fazer isso, vá em Token configuration e clique em Add group claim. Selecione os grupos que deseja incluir no token e clique em Add.

image

  1. Abra o arquivo .env na pasta do seu projeto 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

# enable social login or else OpenID button will not appear on login page
ALLOW_SOCIAL_LOGIN=true

OPENID_CLIENT_ID=Your Application (client) ID
OPENID_CLIENT_SECRET=Your client secret
OPENID_ISSUER=https://login.microsoftonline.com/Your Directory (tenant ID)/v2.0/
OPENID_SESSION_SECRET=Any random string
OPENID_SCOPE=openid profile email #DO NOT CHANGE THIS
OPENID_CALLBACK_URL=/oauth/openid/callback # this should be the same for everyone

OPENID_REQUIRED_ROLE_TOKEN_KIND=id

# If you want to restrict access by groups
OPENID_REQUIRED_ROLE_PARAMETER_PATH="roles"
OPENID_REQUIRED_ROLE="Your Group Name" # Single role or comma-separated roles (e.g., Group1,Group2,Admin)

# 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

O URI de redirecionamento registrado no Azure deve corresponder exatamente à URL que o LibreChat utiliza. Se DOMAIN_SERVER=https://chat.example.com, o Azure deve usar https://chat.example.com/oauth/openid/callback.

  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

Avançado: Reutilização de Tokens

O LibreChat oferece suporte à reutilização de tokens do Azure Entra ID para o gerenciamento de sessões, o que pode proporcionar uma melhor integração com o seu ambiente Azure. Esse recurso permite que o LibreChat utilize os tokens de atualização (refresh tokens) do Azure em vez de gerenciar seus próprios tokens de sessão.

Para saber mais sobre este recurso e como configurá-lo, veja Re-use OpenID Tokens for Login Session.

Avançado: Integração com a Microsoft Graph API

Ao usar o Azure Entra ID como seu provedor OpenID, você pode habilitar a integração com a Microsoft Graph API para aprimorar o sistema de permissões e compartilhamento com recursos de pesquisa de pessoas e grupos.

Pré-requisitos

  1. O seu registro de aplicativo Azure deve ter as permissões adequadas da Microsoft Graph API
  2. O consentimento do administrador pode ser necessário para certos escopos da Graph API (como GroupMember.Read.All)

Adicionando Permissões da Graph API

  1. No seu registro de aplicativo Azure, vá para API permissions
  2. Clique em Add a permission > Microsoft Graph > Delegated permissions
  3. Adicione estas permissões:
    • User.Read - Entrar e ler o perfil do usuário
    • People.Read - Ler contatos do usuário
    • GroupMember.Read.All - Ler todas as associações de grupo
    • User.ReadBasic.All - Ler os perfis básicos de todos os usuários
  4. Clique em Grant admin consent se necessário (você precisará de privilégios de administrador)

Configuração

Obrigatório: Habilitar Reutilização de Token

Importante: Você DEVE habilitar a reutilização de token OpenID para que este recurso funcione:

OPENID_REUSE_TOKENS=true

Veja Configuração de Reutilização de Tokens acima para detalhes.

Adicione as seguintes variáveis de ambiente ao seu arquivo .env:

# Enable Entra ID people search in permissions/sharing
USE_ENTRA_ID_FOR_PEOPLE_SEARCH=true

# Include group owners as members when searching groups
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=true

# Microsoft Graph API scopes (these are automatically included with the OpenID scopes)
OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All

Quando ativado, o seletor de pessoas nas caixas de diálogo de permissões e compartilhamento irá:

  • Pesquise usuários locais do LibreChat e usuários do Azure Entra ID
  • Exibir perfis de usuário com nomes e e-mails da sua organização
  • Permitir pesquisar e selecionar grupos do Azure Entra ID
  • Exibir membros do grupo com base nas suas permissões da Graph API

Notas

  • A reutilização de tokens (OPENID_REUSE_TOKENS=true) é obrigatória para que este recurso funcione
  • Os OPENID_GRAPH_SCOPES são anexados automaticamente ao seu OPENID_SCOPE existente durante a autenticação
  • A pesquisa de grupo requer a permissão GroupMember.Read.All, que normalmente precisa de consentimento do administrador
  • A pesquisa de usuários funciona com as permissões básicas User.Read, People.Read e User.ReadBasic.All

Avançado: Integração com SharePoint

O LibreChat pode ser integrado ao SharePoint Online e ao OneDrive for Business, permitindo que os usuários naveguem e anexem arquivos diretamente de suas bibliotecas do SharePoint.

Pré-requisitos

  1. Todos os requisitos de Token Reuse devem ser atendidos
  2. O seu registro de aplicativo Azure precisa de permissões adicionais do SharePoint
  3. O seu registro de aplicativo Azure deve expor e conceder um escopo de API do LibreChat, como api://<client-id>/access_as_user

Adicionando Permissões do SharePoint

  1. No seu registro de aplicativo Azure, vá para API permissions
  2. Clique em Add a permission

Para acesso ao SharePoint:

  1. Selecione SharePoint (não Microsoft Graph)
  2. Escolha Delegated permissions
  3. Adicionar: AllSites.Read - Ler itens em todas as coleções de sites

Para Downloads de Arquivos:

  1. Clique em Add a permission novamente

  2. Selecione Microsoft Graph

  3. Escolha Delegated permissions

  4. Adicionar: Files.Read.All - Ler todos os arquivos que o usuário pode acessar

  5. Clique em Grant admin consent para ambas as permissões

Configuração

Antes de habilitar as variáveis do SharePoint, certifique-se de que a configuração de reutilização de token OpenID solicite o escopo da API do aplicativo LibreChat. Isso fornece ao Azure um token de acesso de público-alvo do aplicativo que pode ser usado como a asserção on-behalf-of para a troca de tokens do SharePoint e do Graph.

# OpenID token reuse and OBO-compatible audience
OPENID_REUSE_TOKENS=true
OPENID_SCOPE=openid profile email offline_access api://<client-id>/access_as_user
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true

# Enable SharePoint file picker
ENABLE_SHAREPOINT_FILEPICKER=true

# Your SharePoint tenant URL
SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com

# SharePoint scope for file picker (replace 'yourtenant' with your actual tenant)
SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read

# Graph API scope for downloading files
SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.All

Uso

Quando configurado corretamente:

  1. Os usuários verão a opção "From SharePoint" no menu de anexos de arquivo
  2. Clicar nele abre o seletor de arquivos nativo do SharePoint
  3. Os usuários podem navegar e selecionar arquivos de qualquer site do SharePoint ou OneDrive ao qual tenham acesso
  4. Os arquivos selecionados são baixados e anexados à conversa

Nota de Segurança

A integração com o SharePoint respeita todas as permissões existentes do SharePoint. Os usuários só podem acessar arquivos que eles já têm permissão para visualizar no SharePoint/OneDrive.

Para solução de problemas detalhada e configuração avançada, consulte: SharePoint Integration Guide

Como está este guia?