- Implementazione di un sistema di autenticazione flessibile che supporti account locali e federati utilizzando protocolli come OAuth2, OIDC e LDAP.
- Controllo degli accessi granulare basato su ruoli, gruppi e liste di controllo degli accessi (ACL) per gestire la visibilità delle risorse.
- Funzionalità avanzate di personalizzazione per autorizzazioni e impostazioni specifiche in base al profilo utente o al gruppo di assegnazione.
Se stai cercando un'alternativa self-hosted per interagire con diversi modelli di intelligenza artificiale, LibreChat è una delle opzioni più complete. La piattaforma ti permette di centralizzare l'accesso a provider come OpenAI, Anthropic e Google, ma offre anche qualcosa di particolarmente importante quando viene utilizzata da un team: controllare chi può accedere e quali funzioni sono disponibili.
Questa gestione va oltre la semplice creazione di un account con email e password. LibreChat combina sistemi di autenticazione, ruoli, gruppi, permessi per funzioni specifiche ed elenchi di controllo degli accessi per le risorse condivise. Ciò consente di impedire a determinati utenti di creare agenti, consentire a un team di modificare i prompt o delegare parte dell'amministrazione senza concedere l'accesso completo al server. E se stai ancora valutando la piattaforma, puoi consultare il nostro confronto tra LibreChat, ChatGPT e altre alternative.
Come creare utenti in LibreChat

Per impostazione predefinita, LibreChat consente a una persona di registrarsi utilizzando il proprio indirizzo e-mail e una password. Quando viene avviata una nuova istanza, Il primo account registrato riceve il ruolo di AMMINISTRATOREPertanto, è consigliabile crearla prima di pubblicare il servizio e utilizzare credenziali sicure.
El Gli account registrati rimanenti ricevono inizialmente il ruolo UTENTEL'amministratore può controllare l'accesso e la registrazione utilizzando diverse variabili presenti nel file. .env:
ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATION=false
ALLOW_EMAIL_LOGIN consente l'utilizzo di account locali, mentre ALLOW_REGISTRATION Controlla se le nuove registrazioni vengono rese disponibili via e-mail. Le altre due variabili svolgono la stessa funzione per i provider social compatibili.
Una configurazione tipica per un'istanza privata prevede innanzitutto la creazione degli account necessari e successivamente la chiusura del registro pubblico:
ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATION=false
Anche con la registrazione disabilitata, l'amministratore può aggiungere un account locale utilizzando lo script incluso in LibreChat. In un'installazione che utilizza il file Docker Compose predefinito, il comando è:
docker compose exec api npm run create-user
La procedura guidata richiederà l'indirizzo email e la password per il nuovo account. In un'installazione locale, senza Docker, può essere eseguita dalla directory principale del progetto:
npm run create-user
LibreChat include anche uno script per eliminare gli account. Prima di utilizzarlo, è consigliabile verificare quali conversazioni, agenti e risorse appartengono all'utente, poiché l'eliminazione di un account non deve essere confusa con la rimozione temporanea dell'accesso.
Utilizza LDAP, SAML, OAuth o OpenID Connect
Per un piccolo team, gli account locali possono essere sufficienti. In un'organizzazione, è più conveniente connettere LibreChat al sistema di identità già utilizzato dai dipendenti.
La piattaforma supporta diversi metodi di autenticazione:
- LDAP o Active Directoryper convalidare gli utenti rispetto a una directory esistente.
- SAML, comunemente utilizzato per implementare l'autenticazione unica aziendale.
- OAuth2compatibile con provider come Google, GitHub, Discord o Apple.
- Connessione OpenID, utilizzato per connettere servizi come Keycloak, Auth0, AWS Cognito o Microsoft Entra ID.
È importante sapere che SAML e OpenID Connect non funzionano contemporaneamente. Se entrambi sono abilitati, LibreChat dà priorità a OpenID Connect e disabilita SAMLInoltre, questi due metodi non consentono di separare l'accesso degli utenti esistenti dalla registrazione dei nuovi utenti tramite una semplice variabile, come avviene con la registrazione locale o tramite social network.
In Keycloak puoi usare OPENID_REQUIRED_ROLE Per impedire l'accesso a chi non possiede uno dei ruoli autorizzati. Questo è utile se non si desidera che alcun account nella directory possa accedere all'istanza.
Integrare LibreChat con l'ID di accesso Microsoft
Microsoft Entra ID può connettersi a LibreChat come provider OpenID Connect. Ogni utente viene collegato utilizzando il proprio ID stabile e può accedere utilizzando le proprie credenziali aziendali.
L'integrazione può essere estesa utilizzando Microsoft Graph, in modo che lo strumento di selezione utenti di LibreChat possa trovare utenti e gruppi all'interno dell'organizzazione. Ciò richiede le autorizzazioni appropriate sull'applicazione registrata con Entra ID e l'abilitazione del riutilizzo del token OpenID.
OPENID_REUSE_TOKENS=true
USE_ENTRA_ID_FOR_PEOPLE_SEARCH=true
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=true
OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All
Alcuni permessi, come ad esempio GroupMember.Read.AllPotrebbero aver bisogno del consenso di un amministratore di Entra ID.
Questa integrazione non va descritta semplicemente come sincronizzazione automatica dei nomi. Microsoft Graph consente di cercare persone, visualizzare le appartenenze e utilizzare gruppi esterni all'interno del sistema di autorizzazioni, sempre entro i limiti concessi all'applicazione.
Gestisci gli utenti dal pannello di LibreChat

LibreChat dispone di un pannello di amministrazione separato che si connette alla stessa API e allo stesso database dell'istanza principale. Da lì è possibile visualizzare gli utenti, gestire gruppi e ruoli, applicare configurazioni specifiche e concedere privilegi amministrativi.
Tuttavia, nella documentazione attuale il Il pannello di amministrazione di LibreChat appare ancora contrassegnato come AnteprimaSebbene sia già possibile testarlo e sia incluso nelle implementazioni ufficiali tramite Docker Compose, è consigliabile verificarne lo stato e la compatibilità prima di utilizzarlo in un ambiente di produzione.
Il pannello consente, tra le altre operazioni:
- Cerca e visualizza gli account dell'istanza.
- Crea gruppi locali e modifica i loro membri.
- Crea ruoli personalizzati e assegnali agli utenti.
- Modifica le autorizzazioni associate a ciascun ruolo.
- Applica impostazioni diverse a gruppi o ruoli.
- Delega delle funzioni amministrative tramite concessioni di sistema.
Il pannello funziona come un servizio separato. Le operazioni vengono elaborate tramite percorsi. /api/admin/* LibreChat, che verifica se l'account dispone delle autorizzazioni amministrative necessarie prima di accettare ogni modifica.
Comprendere la differenza tra ruoli e gruppi
LibreChat incorpora due ruoli di sistema sempre presenti:
- AMMINISTRATORE: ha pieno accesso alle impostazioni, alle risorse e alle funzioni amministrative.
- UTENTE: è il ruolo base che viene assegnato ai nuovi account.
A partire da LibreChat 0.8.5, è possibile creare anche ruoli personalizzatiCiascuno di essi contiene una matrice di autorizzazioni per decidere se i suoi membri possono utilizzare, creare, condividere o pubblicare agenti, prompt, server MCP e altre funzioni.
Ad esempio, potresti creare un ruolo chiamato "Editor prompt" con l'autorizzazione a creare e condividere prompt, ma senza la possibilità di pubblicare agenti o modificare le impostazioni generali.
Un utente può avere più ruoli. In tal caso, le sue autorizzazioni effettive vengono calcolate utilizzando il unione delle capacità concesseCiò significa che l'aggiunta di un secondo ruolo, più permissivo, può restituire una funzione che si stava cercando di limitare nel primo ruolo.
I gruppi hanno uno scopo diverso. Vengono utilizzati per raggruppare gli utenti in base al reparto, al progetto o alle esigenze di accesso. Possono essere creati localmente o tramite un'integrazione compatibile, come Entra ID.
I gruppi vengono utilizzati come destinatari di risorse condivise e possono anche ricevere sovrascritture di configurazioneIn questo modo, un gruppo di ricercatori potrebbe utilizzare endpoint aggiuntivi o una configurazione diversa senza alterare l'esperienza del resto dell'organizzazione.
Configura le autorizzazioni per agenti, prompt e server MCP.

Le autorizzazioni di ruolo determinano cosa può fare ciascun ruolo. LibreChat consente di controllare le azioni separatamente, come ad esempio:
- UTILIZZO: utilizzare una funzione o un tipo di risorsa.
- CREARE: creare nuove risorse.
- CONDIVIDERE: condividerli con utenti, gruppi o ruoli specifici.
- CONDIVIDI_PUBBLICO: renderli accessibili a tutti gli utenti autenticati dell'istanza.
La differenza tra SHARE y SHARE_PUBLIC Questo è particolarmente importante. È possibile consentire a un team di condividere gli agenti internamente senza concedere loro la possibilità di pubblicarli per l'intera organizzazione.
Nelle versioni precedenti, molte di queste autorizzazioni venivano inizializzate utilizzando il blocco interface de librechat.yamlEsiste ancora la possibilità di prepararsi al ruolo USER durante l'avvio, ma Non è più il metodo raccomandato per la somministrazione quotidiana.
Il pannello consente di modificare direttamente le autorizzazioni di ciascun ruolo, inclusi i ruoli personalizzati, senza dover riavviare LibreChat. Il formato YAML rimane utile per l'implementazione iniziale e per le installazioni completamente gestite tramite file.
Condividi le risorse tramite elenchi ACL
Le autorizzazioni generali da sole non determinano chi può aprire ciascun agente o prompt. Anche le risorse condivisibili hanno un lista di controllo degli accessi o ACL personale.
Questo sistema si applica, tra le altre cose, ad agenti, gruppi di prompt, server MCP, agenti remoti, file e progetti. Il proprietario può condividere ciascuna risorsa con utenti, gruppi o ruoli e scegliere uno di questi livelli:
- Spettatore: consente di visualizzare e utilizzare la risorsa.
- Redattore: consente di utilizzarlo e di modificarne le impostazioni.
- Proprietario: concede il pieno controllo per modificare, eliminare e ricondividere.
Ad esempio, una persona può avere l'autorizzazione generale per utilizzare gli agenti, ma non potrà accedere a un agente privato se questo non è incluso nel suo ACL. Allo stesso modo, ottenere l'accesso come visualizzatore a un agente non concede automaticamente l'autorizzazione a creare nuovi agenti.
Quando si condividono agenti con file, istruzioni interne o strumenti in grado di modificare i dati, è necessario esaminare attentamente il livello di privilegio assegnato. LibreChat avverte che un agente può rivelare le informazioni allegate durante una conversazione, anche quando l'utente non può accedere direttamente alle sue impostazioni.
Delega compiti amministrativi tramite sovvenzioni di sistema
Assegnare a qualcuno i privilegi di amministratore per svolgere un singolo compito viola il principio del minimo privilegio. Per evitare ciò, LibreChat incorpora quelle che vengono chiamate... il sistema concede.
Queste concessioni permettono di assegnare specifiche funzionalità amministrative a un utente, un gruppo o un ruolo. Esempi documentati includono:
manage:usersper gestire gli utenti.manage:rolesper gestire i ruoli.manage:mcpserversper gestire i server MCP.read:usage, per consultare le informazioni sull'utilizzo.
In questo modo, il responsabile dell'assistenza può gestire gli account senza avere accesso completo all'intera istanza. I controlli vengono eseguiti sull'API di LibreChat, quindi il pannello non può concedersi privilegi.
Poiché il pannello di amministrazione è ancora in anteprima, si consiglia di testare a fondo queste deleghe e di mantenere almeno un account ADMIN locale per il ripristino.
Quali file sono coinvolti nella configurazione?
LibreChat distribuisce la configurazione tra diversi componenti, ma ognuno di essi ha uno scopo ben preciso:
.envContiene variabili d'ambiente, segreti, opzioni di autenticazione e connessioni ai servizi.librechat.yaml: definisce endpoint personalizzati, modelli, opzioni di interfaccia, agenti, MCP e altre funzionalità avanzate.- Banca dati: salva utenti, ruoli personalizzati, gruppi, ACL, concessioni e impostazioni gestite dal pannello.
In un'installazione Docker non è sufficiente creare librechat.yamlIl file deve essere montato all'interno del contenitore API. Dopo averlo modificato, è necessario riavviare anche il servizio.
Le versioni correnti convalidano il file YAML durante l'avvio. Se contiene una chiave sconosciuta, un'indentazione errata o un valore incompatibile, LibreChat si arresterà e visualizzerà l'errore nei log.Puoi verificarli con:
docker compose logs api
Esiste una variabile chiamata CONFIG_BYPASS_VALIDATION Questo può aggirare temporaneamente la convalida, ma non dovrebbe essere utilizzato come soluzione permanente. L'approccio corretto è individuare e correggere l'errore.
MongoDB memorizza i dati principali di LibreChat, inclusi account e conversazioni. MeiliSearch viene utilizzato per velocizzare la ricerca dei messaggi, mentre PostgreSQL con supporto vettoriale è coinvolto nell'API RAG. Questi ultimi servizi non sono essenziali per il sistema utente e possono dipendere dalle funzionalità abilitate in ciascuna implementazione.
Raccomandazioni per la protezione degli account
Un'istanza di LibreChat può contenere conversazioni private, documenti aziendali e credenziali di accesso ad altri servizi. Per questo motivo, la gestione degli utenti deve essere progettata prima di rendere il servizio disponibile all'intero team.
Si consiglia di applicare le seguenti misure:
- Creare e proteggere il primo account ADMIN prima di pubblicare l'istanza.
- Disabilita la registrazione pubblica quando non è necessaria.
- Utilizza HTTPS e le tue credenziali JWT sicure.
- Configura la verifica dell'indirizzo email e il recupero della password se utilizzi account locali.
- Applicare il principio del minimo privilegio a ruoli, ACL e autorizzazioni di sistema.
- Rivedere periodicamente utenti, gruppi e risorse condivise pubblicamente.
- Mantenere un account amministrativo locale per ripristinare l'accesso in caso di guasto del provider SSO.
- Controlla i log dopo aver modificato l'autenticazione o le autorizzazioni.
La creazione e la gestione degli utenti in LibreChat richiede la distinzione tra autenticazione e autorizzazione. Il metodo di login verifica l'identità di ogni persona; i ruoli determinano quali funzioni possono utilizzare; i gruppi facilitano l'amministrazione collettiva; e gli ACL (Access Control List) determinano chi può accedere a ciascuna risorsa specifica.
Con questa struttura è possibile utilizzare LibreChat su un piccolo server privato o in un'organizzazione con una directory aziendale, senza concedere a tutti gli utenti l'accesso completo ad agenti, prompt, server MCP o funzioni amministrative.
Sono un appassionato di tecnologia che ha trasformato i suoi interessi "geek" in una professione. Ho trascorso più di 10 anni della mia vita utilizzando tecnologie all'avanguardia e armeggiando con tutti i tipi di programmi per pura curiosità. Ora mi sono specializzato in informatica e videogiochi. Questo perché da più di 5 anni scrivo per vari siti web di tecnologia e videogiochi, creando articoli che cercano di darti le informazioni di cui hai bisogno in un linguaggio comprensibile a tutti.
In caso di domande, le mie conoscenze spaziano da tutto ciò che riguarda il sistema operativo Windows e Android per telefoni cellulari. E il mio impegno è nei tuoi confronti, sono sempre disposto a dedicare qualche minuto e aiutarti a risolvere qualsiasi domanda tu possa avere in questo mondo di Internet.