Esplorare l'autenticazione
L'autenticazione consiste nel convalidare che l'identità (utente, app o dispositivo) sia chi afferma di essere, quindi anche nel fornire un livello appropriato di convalida e sicurezza per tutta la durata della transazione di autenticazione. L'autenticazione di un'identità fornisce:
- Autenticazione flessibile e conforme agli standard che si integra con le organizzazioni
- Integrazione di origini, applicazioni e protocolli diversi
- Adozione di molti metodi standard di settore diversi per la convalida e la garanzia
L'uso di un provider di identità per l'autenticazione consente di garantire identità sicure senza limitare le funzionalità degli utenti. Si ottengono praticità, più origini per convalidare l'identità, protocolli di settore e garanzia dell'identità.
Praticità: la praticità si concentra sull'esperienza degli utenti finali nel momento in cui vengono loro chieste le credenziali di autenticazione. L'attenzione è rivolta all'esperienza dell'utente finale. Se un'operazione non è facile, gli utenti la evitano o se ne lamentano.
Origini: le origini riguardano la posizione da cui l'utente ottiene il token di autenticazione. Molte organizzazioni hanno quello che ritengono essere un'autorità di certificazione centralizzata (Microsoft Entra ID), ma in realtà la maggior parte delle organizzazioni ha anche altri repository di identità. L'identità federata è il secondo provider di identità più comune.
Protocolli: le organizzazioni hanno spesso svariati protocolli di autenticazione, fonte di un'esperienza scadente sia per gli utenti finali che per l'organizzazione. Un aspetto interessante di questa capacità è che consente a un'organizzazione di standardizzare uno o più protocolli di autenticazione moderni e sicuri per raggiungere gli obiettivi di autenticazione.
Garanzie: la garanzia di autenticazione è la confidenza che un'organizzazione ha nel fatto che un individuo che accede a una risorsa sia chi dice di essere. Questa capacità indica se un'organizzazione usa o meno account condivisi, se usa account personalizzati e se sono in atto soluzioni come l'autenticazione a più fattori o l'autenticazione basata sul rischio.
Identità federativa
Per federazione si intende una raccolta di domini che hanno stabilito una relazione di trust. Il livello di attendibilità varia, ma in genere include l'autenticazione e quasi sempre include l'autorizzazione. Questa federazione consente di applicare le identità esistenti da origini considerate attendibili, come una directory attiva locale esistente.
Protocolli comuni di comunicazione nell'identità
Protocollo | Descrizione e utilizzo |
---|---|
SAML - Security Assertion Markup Language | Standard aperto per lo scambio di dati di autenticazione e autorizzazione tra un provider di identità e un provider di servizi. Attributi SAML comuni: |
Principal = in genere un utente o un dispositivo, IdP = provider di identità, SP = provider di servizi | |
IdP = provider di identità | |
SP = provider di servizi | |
WS-Fed - Web Services Federation | Specifica Identity del framework Web Services Security per fornire l'accesso Single Sign-On tramite lo scambio di identità esterne e l'autenticazione. |
OIDC - OpenID Connect | OIDC estende il protocollo di autorizzazione OAuth 2.0 da usare come protocollo di autenticazione per consentire di eseguire l'accesso Single Sign-On tramite OAuth. |
OpenID Connect
OpenID Connect (OIDC) è un protocollo di autenticazione basato su OAuth 2.0. Questo protocollo consente a un utente di accedere in modo sicuro a un'applicazione. Quando si usa l'implementazione di Microsoft Identity Platform di OpenID Connect, è possibile aggiungere alle app l'accesso e l'accesso all'API. OpenID Connect estende il protocollo di autorizzazione OAuth 2.0 da usare come protocollo di autenticazione per consentire di eseguire l'accesso Single Sign-On tramite OAuth. OpenID Connect introduce il concetto di token ID, ovvero un token di sicurezza che consente al client di verificare l'identità dell'utente. Il token ID consente anche di ottenere informazioni di base sul profilo dell'utente. Introduce anche l'endpoint UserInfo, un'API che restituisce informazioni sull'utente.
Identità basata sulle attestazioni in Microsoft Entra ID
Quando un utente esegue l'accesso, Microsoft Entra ID crea e invia un token ID che contiene un set di attestazioni relative all'utente. Un'attestazione è semplicemente un'informazione espressa come coppia chiave/valore. Ad esempio, email=bob@contoso.com. Le attestazioni hanno un'autorità di certificazione (in questo caso, Microsoft Entra ID), ovvero l'entità che autentica l'utente e crea le attestazioni. Le attestazioni vengono considerate attendibili perché si considera attendibile l'autorità di certificazione. (Al contrario, se non si considera attendibile l'autorità di certificazione, le attestazioni non vengono considerate attendibili.)
In generale:
- L'utente esegue l'autenticazione.
- Il provider di identità (IdP) invia un set di attestazioni.
- L'app normalizza o aumenta le attestazioni (opzione facoltativa).
- L'app usa le attestazioni per prendere decisioni in merito all'autorizzazione.
In OpenID Connect il set di attestazioni ottenuto viene controllato dal parametro di ambito della richiesta di autenticazione. Tuttavia, Microsoft Entra ID rilascia un set limitato di attestazioni attraverso OpenID Connect tramite un token di sicurezza; principalmente usando i token Web JSON. Per altre informazioni sull'utente, è necessario usare l'API Graph con Microsoft Entra ID.
Token di sicurezza
Microsoft Identity Platform autentica gli utenti e fornisce token di sicurezza, ad esempio token di accesso, token di aggiornamento e token ID. I token di sicurezza consentono a un'applicazione client di accedere alle risorse protette in un server di risorse. Esistono tre tipi comuni di token: token di accesso, token di aggiornamento e token ID.
- Token di accesso: un token di accesso è un token di sicurezza emesso da un server di autorizzazione durante un flusso di OAuth 2.0. Contiene informazioni sull'utente e sulla risorsa a cui è destinato il token. Le informazioni possono essere usate per accedere alle API Web e ad altre risorse protette. I token di accesso vengono convalidati dalle risorse per concedere l'accesso a un'app client. Per altre informazioni su come Microsoft Identity Platform emette i token di accesso, vedere Token di accesso.
- Token di aggiornamento: poiché i token di accesso sono validi solo per un breve periodo di tempo, i server di autorizzazione a volte emettono un token di aggiornamento contemporaneamente al token di accesso. L'applicazione client può quindi scambiare questo token di aggiornamento con un nuovo token di accesso, se necessario. Per altre informazioni su come Microsoft Identity Platform usa i token di aggiornamento per revocare le autorizzazioni, vedere Token di aggiornamento.
- Token ID: i token ID vengono inviati all'applicazione client nell'ambito di un flusso di OpenID Connect. Possono essere inviati insieme o al posto di un token di accesso. I token ID vengono usati dal client per autenticare l'utente. Per altre informazioni su come Microsoft Identity Platform emette i token ID, vedere Token ID.
Che cos'è un token JSON Web (JWT)?
Il token JSON Web (JWT) è uno standard aperto (RFC 7519) che definisce un modo compatto e autonomo per trasmettere in sicurezza le informazioni tra le parti come oggetto JSON. Queste informazioni possono essere verificate e considerate attendibili perché sono firmate digitalmente. I token JWT possono essere firmati con un segreto o con una coppia di chiavi pubblica/privata. Anche se i token JWT possono anche essere crittografati per garantire la segretezza tra le parti, ci si concentra sui token firmati. I token firmati possono verificare l'integrità delle attestazioni contenute al loro interno, mentre i token crittografati nascondono tali attestazioni alle altre parti. Quando i token vengono firmati usando coppie di chiavi pubbliche/private, la firma certifica anche che solo la parte in possesso della chiave privata è quella che l'ha firmata.
Nota
Informazioni fornite dal sito Web JWT: https://jwt.io/.
Definizioni usate per le identità basate su attestazioni
Esistono alcuni termini comuni usati per discutere dell'identità basata sulle attestazioni in Microsoft Entra ID.
- Attestazione: coppia di valori di dati in un token di sicurezza. All'interno del token vengono trasferite più attestazioni, da quella che definisce il tipo di token al metodo di crittografia. Ecco un esempio:
Header { "alg": "HS256", "typ": "JWT" } Content payload { "sub": "1234567890", "name": "John Doe", "aud": "https://jwt.io" }
- Asserzione: pacchetto di dati, in genere sotto forma di token, che condivide le informazioni sull'identità e sulla sicurezza di un utente o di un account in tutti i domini di sicurezza.
- Attributo: coppia di valori di dati in un token.
- Aumento: processo di aggiunta di ulteriori attestazioni al token dell'utente per fornire altri dettagli sull'utente. Possono essere inclusi dati provenienti da sistemi di gestione delle risorse umane, da un'applicazione come SharePoint o da altri sistemi.