LDAP e Active Directory¶
Drovio Server può autenticare gli utenti presso una directory LDAP o un Active Directory Microsoft. Gli account sono creati automaticamente alla prima connessione, non c'è quindi nulla da provvedere a mano. Il dettaglio dei campi è descritto nel riferimento di configurazione.
LDAP può convivere con gli account locali e con l'SSO. Riguarda solo l'applicazione Drovio, dato che il client web non richiede alcun account.
Svolgimento di una connessione¶
Ogni connessione segue la sequenza classica connessione, ricerca, connessione:
- Drovio Server si connette alla directory con l'account di servizio.
- Cerca l'utente sotto
base, con l'aiuto disearch_filter, dove{0}è sostituito dall'indirizzo e-mail inserito nel modulo. - Si connette una seconda volta con il nome distintivo dell'utente e la password fornita. È questa seconda connessione ad autenticare.
Tre conseguenze da tenere a mente scrivendo il vostro filtro
- La ricerca riguarda tutto il sottoalbero situato sotto
base. - Il filtro deve risolvere verso una voce e una sola. Se ne trova più di una, la connessione è rifiutata piuttosto che autenticarsi su una corrispondenza arbitraria.
- Gli utenti si connettono con un indirizzo e-mail. Il valore è
ripulito dagli spazi e portato in minuscolo, e deve essere sintatticamente
valido: un semplice
sAMAccountNameè rifiutato prima ancora che la directory sia contattata.
Dalla directory viene riletto solo il nome distintivo. Nessun attributo è recuperato, e il meccanismo di connessione è semplice, cosicché Kerberos e gli altri meccanismi SASL non sono disponibili.
Configurare la connessione¶
Le impostazioni si trovano sotto Users nel pannello di amministrazione, nella sezione LDAP / Active Directory.
| Campo del pannello | Chiave di configurazione | Esempio |
|---|---|---|
| Status | enabled |
true |
| URL | url |
ldaps://ldap.example.com:636 |
| Service Account DN | service_account_dn |
cn=drovio,ou=services,dc=example,dc=com |
| Service Account Password | service_account_password |
|
| Base | base |
ou=users,dc=example,dc=com |
| Search Filter | search_filter |
vedere qui sotto |
| CA Certificate | ca_certificate_path |
/etc/drovio-server/ldap-ca.pem |
L'account di servizio ha bisogno solo del diritto di cercare nel sottoalbero
situato sotto base, nulla di più.
Il valore fornito per impostazione predefinita è (&(objectClass=*)(mail={0})).
Funziona, ma restringere la classe di oggetto rende la ricerca meno costosa e il
vincolo di unicità più facile da soddisfare.
Le modifiche prendono effetto alla connessione successiva. Nessun riavvio è necessario.
Non c'è alcun pulsante di test
Il pannello non sa convalidare la configurazione da solo. Salvatela, fate tentare una connessione a un utente, poi leggete il log del server. Ogni fallimento vi è registrato con la fase difettosa, che la tabella di Risoluzione dei problemi riconduce al campo da verificare.
Connettersi in LDAPS¶
Usate ldaps:// sulla porta 636. Il semplice ldap:// fa circolare le
credenziali in chiaro, e il server ne avverte una volta nel log.
StartTLS non è supportato. I due modi sono il chiaro su ldap:// e il TLS
implicito su ldaps://.
ca_certificate_path designa il certificato da considerare affidabile. Accetta
sia PEM sia DER, nonché un insieme PEM contenente un'intera catena. Potete
indicarvi un'autorità di certificazione oppure direttamente il certificato della
directory, il che permette di far funzionare un certificato autofirmato.
Il file sostituisce il magazzino di sistema, non lo completa
Quando ca_certificate_path è valorizzato, la connessione LDAP si fida
solo di ciò che quel file contiene. Un certificato di directory emesso da
un'autorità pubblica riconosciuta cessa di essere convalidato se la sua catena
non vi figura ugualmente. Lasciate l'impostazione vuota per usare il
magazzino di fiducia di Java.
Il certificato deve inoltre corrispondere all'host indicato in url, e
l'impostazione è letta solo per gli URL in ldaps://. Valorizzarla accanto a
un URL in ldap:// resta senza effetto.
Creazione automatica degli account¶
Alla prima connessione riuscita, Drovio Server crea l'account:
| Campo dell'account | Valore |
|---|---|
| L'indirizzo inserito nel modulo | |
| Nome utente | La parte locale di quell'indirizzo, jane.doe@example.com dà jane.doe |
Nessun attributo della directory viene ripreso, contrariamente a SAML e OIDC che
dispongono delle proprie impostazioni email_attribute e username_attribute.
Gli utenti possono cambiare in seguito il proprio nome utente, e le connessioni
successive lasciano quella modifica intatta.
Nessuna password è mai memorizzata per un account LDAP, e nessuna e-mail di verifica viene inviata. I cambi di password, le reinizializzazioni e la politica delle password restano interamente di competenza della vostra directory: il pannello di amministrazione non offre alcuna modifica delle credenziali per questi account.
Verificate il vostro pool di licenze prima di aprire LDAP a una directory ampia
La creazione dell'account segue
users.license_allocation
come qualsiasi altro account. Se nessun posto è libero, l'account viene creato
comunque, semplicemente senza licenza. L'utente ne è avvertito
nell'applicazione Drovio e il log del server registra:
Restringere l'accesso a un gruppo o a un'unità organizzativa¶
Non esiste alcuna impostazione dedicata, e non ne serve. I due campi esistenti bastano:
- Per sottoalbero. Fate puntare
basesul ramo che contiene gli utenti autorizzati, per esempioOU=Drovio Users,DC=example,DC=com. Tutto ciò che è al di fuori diventa invisibile alla ricerca. -
Per appartenenza a un gruppo. Aggiungete una clausola al filtro:
Su Active Directory, usate la regola di corrispondenza
memberOf:1.2.840.113556.1.4.1941:=piuttosto chememberOfper includere i gruppi annidati.
Il controllo ha luogo a ogni connessione. Rimuovere qualcuno dal gruppo lo blocca quindi immediatamente. Tenete presente che il filtro deve sempre corrispondere a una voce e una sola.
Combinare con gli altri metodi di connessione¶
| Combinazione | Comportamento |
|---|---|
| LDAP e account locali | La directory è interrogata per prima. Se rifiuta le credenziali, le stesse e-mail e password sono poi provate sull'account locale |
| LDAP e SAML | Supportati, seguono percorsi distinti |
| LDAP e OIDC | Supportati, seguono percorsi distinti |
Per imporre l'autenticazione tramite la sola directory, disattivate
users.auth.local.
Revocare un accesso¶
Eliminare o disattivare l'account nella directory blocca la connessione fin dal
tentativo successivo. Ciò che non fa è eliminare alcunché lato Drovio: non
esiste alcuna attività di riconciliazione. La scheda dell'utente e il suo posto di
licenza sussistono entrambi, se
users.license_allocation
è disattivato o impostato in modalità new_user.
Per liberare il posto, eliminate l'utente dalla scheda Users del pannello di
amministrazione, oppure attivate
users.remove_inactive
affinché gli account inutilizzati siano ripuliti periodicamente.
Limiti di esercizio¶
Alcuni comportamenti sono fissati e meritano di essere conosciuti al momento di dimensionare la distribuzione o di aprire il firewall:
| Comportamento | Valore |
|---|---|
| Connessioni per autenticazione | Due, una per l'account di servizio e una per l'utente. Non sono condivise |
| Timeout di connessione | 30 secondi |
| Timeout di lettura | 60 secondi |
| Rinvii | Ignorati |
I rinvii ignorati contano in una foresta Active Directory multi-dominio: gli
utenti il cui account risiede in un dominio diverso da quello indicato in url
non vengono trovati. Fate piuttosto puntare Drovio Server verso un catalogo
globale, in ldaps:// sulla porta 3269, oppure distribuite un server per
dominio. Il catalogo globale espone solo una parte degli attributi, il che qui
basta dato che è usato solo il nome distintivo.