Provider di credenziali in Windows
I provider di credenziali sono il meccanismo principale per l'autenticazione utente. Attualmente sono l'unico metodo per gli utenti a dimostrare la propria identità necessaria per l'accesso e altri scenari di autenticazione del sistema. Da Windows 10 e dall'introduzione di Microsoft Passport, i provider di credenziali sono stati più importanti che mai. Vengono usati per l'autenticazione in app, siti Web e altro ancora.
Microsoft offre un'ampia gamma di provider di credenziali come parte di Windows, ad esempio password, PIN, smart card e Windows Hello (riconoscimento di impronte digitali, viso e iris). Questi provider sono definiti "provider di credenziali di sistema" in questo articolo. Gli OEM, le aziende e altre entità possono scrivere i propri provider di credenziali e integrarli facilmente in Windows. Questi provider di credenziali sono definiti "provider di credenziali di terze parti" in questo articolo. Si noti che i provider di credenziali V1 e V2 sono supportati in Windows. È importante che i creatori e i responsabili dei provider di credenziali di terze parti comprendano questi consigli.
Provider di credenziali di sistema
È consigliabile che sia sempre disponibile almeno un provider di credenziali di sistema per ogni utente del dispositivo, oltre a qualsiasi provider di credenziali di terze parti. Inoltre, durante la configurazione del provider di credenziali di terze parti, a ogni utente nel dispositivo deve essere richiesto di configurare almeno un provider di credenziali di sistema (se non sono disponibili altre opzioni di ripristino; vedere Scenario A, di seguito).
Scenario A
Un utente dell'account locale ha configurato un provider di credenziali di terze parti e lo usa regolarmente per accedere al dispositivo. Un giorno, l'utente installa un aggiornamento al dispositivo che interrompe il provider di credenziali di terze parti e l'utente non è a conoscenza di questa modifica prima di riavviare il computer.
Al riavvio successivo, l'utente si trova nella schermata di accesso e non è in grado di usare il provider di credenziali di terze parti previsto. Se l'utente ha configurato un provider di credenziali di sistema, l'utente potrà accedere al computer usandolo. In caso contrario, l'utente non ha modo di recuperare l'account nel computer.
Scenario B
Un account Microsoft (MSA), Active Directory (AD) o un account Microsoft Entra ID ha configurato un provider di credenziali di terze parti e lo usa regolarmente per accedere al dispositivo. Un giorno, l'utente installa un aggiornamento al dispositivo che interrompe il provider di credenziali di terze parti e l'utente non è a conoscenza di questa modifica prima di riavviare il computer.
Al riavvio successivo, l'utente si trova nella schermata di accesso e non è in grado di usare il provider di credenziali di terze parti previsto. Se l'utente ha configurato un provider di credenziali di sistema, l'utente potrà accedere al computer usandolo. In alternativa, se il provider di credenziali delle password del sistema è disponibile, l'utente può richiedere/reimpostare in remoto la password e usarla per accedere al computer. Se nessuna delle opzioni è disponibile, l'utente non può recuperare l'account nel computer.
Conclusione
In sintesi, la disabilitazione di tutti i provider di credenziali di sistema in un dispositivo deve essere sconsigliata. Anche se i provider di credenziali di terze parti possono soddisfare requisiti di autenticazione aggiuntivi per determinati gruppi di utenti, è molto importante assicurarsi che l'utente possa sempre ottenere nuovamente l'accesso al computer quando si verifica una modifica che causa un'interruzione. I provider di credenziali di sistema forniscono questa garanzia.
Provider di credenziali personalizzati
Il framework del provider di credenziali di Windows consente agli sviluppatori di creare provider di credenziali personalizzati. Quando Winlogon vuole raccogliere le credenziali, l'interfaccia utente di accesso esegue una query su ogni provider di credenziali per il numero di credenziali che vuole enumerare. Dopo che tutti i provider hanno enumerato i riquadri, l'interfaccia utente di accesso li visualizza all'utente. L'utente interagisce quindi con un riquadro per fornire le credenziali necessarie. L'interfaccia utente di accesso invia queste credenziali per l'autenticazione. I provider di credenziali possono essere usati anche dall'interfaccia utente delle credenziali quando sono necessarie le credenziali. Vedere CREDENTIAL_PROVIDER_USAGE_SCENARIO per un elenco di scenari in cui è possibile supportare un provider di credenziali.
Grazie a questo sistema, è molto più facile creare un provider di credenziali rispetto a quello storicamente. Gran parte del lavoro viene gestita dalla combinazione di Winlogon, l'interfaccia utente di accesso e l'interfaccia utente delle credenziali. A tale scopo, è necessario creare la propria implementazione di ICredentialProvider e ICredentialProviderCredentialCredential. Se si implementa un provider di credenziali V2, consigliato, sarà necessario implementare anche ICredentialProviderCredentialCredential2.
È importante notare che i provider di credenziali non sono meccanismi di imposizione. Vengono usati per raccogliere e serializzare le credenziali, inviandole per l'autorizzazione. L'autorità locale e i pacchetti di autenticazione gestiranno e qualsiasi imposizione della sicurezza necessaria.
Combinando i provider di credenziali con l'hardware supportato, è possibile estendere Windows per supportare l'accesso con informazioni biometriche, password, PIN, certificati smart card o qualsiasi pacchetto di autenticazione personalizzato che si sceglie di creare. È possibile personalizzare l'esperienza di accesso per l'utente in diversi modi. Ad esempio, quando l'interfaccia utente di accesso esegue una query sul provider di credenziali per i riquadri delle credenziali, è possibile specificare un riquadro predefinito per offrire un'esperienza personalizzata per un utente. I provider di credenziali possono anche essere progettati per supportare l'accesso Single Sign-On (SSO), autenticando gli utenti in un punto di accesso sicuro e con l'accesso automatico.
I provider di credenziali sono registrati in un computer Windows e sono responsabili dei seguenti elementi.
- Descrizione delle informazioni sulle credenziali necessarie per l'autenticazione.
- Gestione della comunicazione e della logica con qualsiasi autorità di autenticazione esterna.
- Creazione del pacchetto delle credenziali per l'accesso interattivo e di rete.
Suggerimento
Tenere presente che è possibile installare più provider di credenziali in un singolo computer.
Wrapping dei provider di credenziali
Il wrapping di un provider di credenziali di sistema può essere eseguito per aggiungere funzionalità a tale provider di credenziali che non è supportato in modo nativo. Questo non è consigliato perché può causare un comportamento problematico. È possibile apportare modifiche al provider di credenziali che può essere in conflitto con il wrapper, causando un'esperienza utente scarsa o anche impedendo all'utente di accedere al dispositivo. Questo vale soprattutto con la frequenza di aggiornamento frequente di Windows.
Se è necessaria la funzionalità in un provider di credenziali che non è inclusa in modo nativo, il percorso consigliato crea un provider di credenziali personalizzato. Si tratta di un approccio più stabile che non ha dipendenze dai provider di sistema.