Reimpostare la password di un utente è la prima mossa sbagliata quando il registro dice solo che un bind è stato rifiutato. Con un plugin di directory ci sono più di un bind in un singolo accesso, e il rifiuto può appartenere all’account di servizio che esegue la ricerca. Reimpostare le credenziali dell’utente in quel caso non cambia nulla. Blocca anche qualcuno che non è mai stato il problema.

Un accesso, diversi bind

Una configurazione con un account di directory dedicato esegue di solito quattro passaggi in ordine, e ciascuno di essi può terminare l’accesso.

connect to the directory and establish the configured TLS protection
bind as the configured service account
search for the user entry using the search base and filter
open a second connection and bind as that user, then evaluate groups

Il plugin costruisce la connessione di autenticazione utente tramite lo stesso helper che gestisce la prima connessione, quindi quell’helper può fallire durante la connessione, durante la negoziazione TLS o durante il bind come account di servizio. Il messaggio di alto livello su una password viene generato più tardi e non riporta quale identità fosse coinvolta. Per questo il testo dell’errore da solo non può dire se è stato rifiutato l’utente o l’account di servizio.

Legga le righe prima del messaggio e annoti il momento in cui si è verificato l’errore. Un rifiuto all’avvio, prima che arrivi qualsiasi utente, indica l’account configurato o l’endpoint. Un rifiuto che compare solo per una persona, dopo una ricerca riuscita, indica la voce o lo stato dell’account di quella persona.

Accoppi l’errore a un’identità

La regola pratica è registrare tre cose insieme: quando ha fallito, quale operazione era in corso e quale identità è stata presentata. Senza questa terna, due guasti molto diversi sembrano identici in un registro che conserva solo la frase finale.

What the log showsIdentity likely refusedFirst thing to check
Failure at start-up, no user yetService accountDN, password, expiry, lockout
Search returns nothingNone, the search scope is wrongSearch base and filter
Failure only for one userThat user's entryEntry state, bind DN, group rules

Se l’account configurato fallisce, ispezioni quell’account e la connessione prima di toccare qualsiasi record utente. Se il bind dell’utente fallisce dopo una ricerca riuscita, esamini la voce restituita dalla ricerca anziché quella che presumeva avrebbe restituito. I due percorsi condividono un messaggio e nulla più. Annoti quale ha escluso, perché la persona successiva chiederà esattamente questo.

Il nome distinto è un dato, non una supposizione

Cambiare un componente del nome perché sembra poco familiare è un modo comune di rompere una configurazione funzionante. La posizione predefinita degli oggetti utente in Active Directory è un contenitore chiamato Users, e un contenitore non è lo stesso tipo di oggetto di un’unità organizzativa con un nome simile.

Chieda all’amministratore della directory il nome distinto reale dell’account, oppure lo legga dall’oggetto stesso. Entrambi i seguenti possono essere corretti nella propria directory, perciò nessuno dei due dovrebbe essere digitato a memoria.

CN=VPN Bind,CN=Users,DC=corp,DC=example
CN=VPN Bind,OU=Service Accounts,DC=corp,DC=example

Uno spostamento o una ridenominazione cambia quel valore mentre l’account e la password restano validi, quindi una configurazione che funzionava il trimestre scorso può fallire questo senza che nessuno tocchi una credenziale. Confronti la stringa configurata con l’attributo attuale della directory dopo qualsiasi riorganizzazione. Lo faccia anche dopo una migrazione silenziosa, non solo dopo un’interruzione segnalata.

Una base di ricerca non è un account di servizio

L’identità di bind e la base di ricerca rispondono a domande diverse: come chi si autentica il plugin e dove cerca le persone. Un bind riuscito seguito da nessun utente corrispondente è un problema di ambito, filtro o permesso di lettura, e sostituire il nome distinto dell’account con la base degli utenti non cambia nulla in proposito.

Verifichi che il servizio abbia caricato la configurazione modificata e che il suo endpoint, la fiducia TLS e la modalità di autenticazione corrispondano a un test amministrativo funzionante. Una ricerca manuale con un altro account, o contro un altro controller di dominio, non è un esperimento equivalente.

Controlli il segreto memorizzato e verifichi se l’account è abilitato, scaduto o bloccato, senza stampare la password da nessuna parte. La scadenza è facile da trascurare perché l’account continua a funzionare fino al giorno in cui smette. Un blocco ereditato da un servizio non correlato è altrettanto silenzioso. Nessuna delle due condizioni produce un messaggio che nomini l’account di servizio.

Le regole di gruppo arrivano per ultime

L’autorizzazione viene eseguita dopo che i bind hanno successo, quindi un controllo di gruppo non può essere la causa di un errore di bind, e rimuovere il requisito di gruppo non può ripararlo. Se l’accesso ora raggiunge la fase di gruppo, il problema rimanente è l’appartenenza, non le credenziali.

Concedere all’account di servizio ampi diritti di directory per far sparire l’errore cambia la politica di accesso dell’intera distribuzione. Lo tratti come una decisione di sicurezza con la propria revisione, non come una correzione per un messaggio che non ha ancora attribuito a un’identità.

Articoli correlati