Informazioni di base sull'autorizzazione
Autorizzazione (talvolta abbreviata in AuthZ) viene usata per impostare le autorizzazioni che permettono di valutare l'accesso alle risorse o alle funzionalità. Al contrario, l'autenticazione (a volte abbreviata come AuthN) si concentra sul dimostrare che un'entità, come un utente o un servizio, sia effettivamente chi afferma di essere.
L'autorizzazione può comprendere la definizione delle funzionalità, delle risorse o dei dati a cui un'entità può accedere. L'autorizzazione specifica anche cosa è possibile fare con i dati. Questa azione di autorizzazione viene spesso definita controllo di accesso.
L'autenticazione e l'autorizzazione sono concetti che non si limitano solo agli utenti. I servizi o le applicazioni daemon sono spesso progettati per effettuare richieste di risorse per conto proprio anziché per conto di un utente specifico. In questo articolo, il termine "entità" viene usato per riferirsi sia a un utente che a un'applicazione.
Approcci di autorizzazione
Sono disponibili diversi approcci comuni per gestire l'autorizzazione. Il controllo degli accessi in base al ruolo è attualmente l'approccio più comune che viene usato per Microsoft Identity Platform.
Autenticazione come autorizzazione
La forma più semplice di autorizzazione potrebbe essere concedere o negare l'accesso in base all'autenticazione dell'entità che effettua la richiesta. Se il richiedente può dimostrare di essere chi dichiara di essere, può accedere alle risorse o alle funzionalità protette.
Elenchi di controllo di accesso
L'autorizzazione mediante l'uso di elenchi di controllo di accesso (ACL) implica il mantenimento di elenchi espliciti delle entità specifiche che hanno o non hanno accesso a una risorsa o funzionalità. ACL offrono un controllo più granulare sull'autenticazione come autorizzazione, ma diventano difficili da gestire con l'aumento del numero di entità.
Controllo degli accessi in base al ruolo
Il controllo degli accessi in base al ruolo (RBAC) è probabilmente l'approccio più comune per applicare l'autorizzazione nelle applicazioni. Quando viene usato il controllo degli accessi in base al ruolo, i ruoli vengono definiti per descrivere i tipi di attività che un'entità può svolgere. Uno sviluppatore di applicazioni concede l'accesso ai ruoli piuttosto che a singole entità. Un amministratore può quindi assegnare i ruoli a entità diverse per controllare quali hanno accesso a quali risorse e funzionalità.
Nelle implementazioni avanzate di controllo degli accessi in base al ruolo, i ruoli possono essere associati a raccolte di autorizzazioni, in cui un'autorizzazione descrive un'azione o un'attività granulare che può essere eseguita. I ruoli vengono quindi configurati come combinazioni di autorizzazioni. Calcolare il set di autorizzazioni generale di un'entità combinando le autorizzazioni concesse ai vari ruoli assegnati all'entità. Un buon esempio di questo approccio è l'implementazione del controllo degli accessi in base al ruolo che governa l'accesso alle risorse nelle sottoscrizioni di Azure.
Nota
Il controllo degli accessi in base al ruolo dell'applicazione è diverso da controllo degli accessi in base al ruolo di Azure e dal controllo degli accessi in base al ruolo di Microsoft Entra. I ruoli personalizzati e i ruoli integrati di Azure fanno entrambi parte del controllo degli accessi in base al ruolo, che consente di gestire le risorse di Azure. Il controllo degli accessi in base al ruolo di Microsoft Entra consente di gestire le risorse di Microsoft Entra.
Controllo di accesso basato su attributi
Il controllo degli accessi in base agli attributi (ABAC) è un meccanismo di controllo degli accessi più granulare. In questo approccio, le regole vengono applicate all'entità, alle risorse a cui viene effettuato l'accesso e all'ambiente corrente. Le regole determinano il livello di accesso alle risorse e alle funzionalità. Ad esempio, è possibile consentire l'accesso ai file identificati con un tag di metadati "responsabili durante l'orario di lavoro" solo agli utenti che sono responsabili, durante l'orario dalle 9:00 alle 17:00 nei giorni lavorativi. In questo caso, l'accesso viene determinato esaminando l'attributo dell'utente (stato di responsabile), l'attributo della risorsa (tag di metadati in un file) e anche un attributo dell'ambiente (l'ora corrente).
Un vantaggio del controllo degli accessi in base agli attributi è la possibilità di ottenere un controllo degli accessi più granulare e dinamico tramite la valutazione di regole e condizioni, senza la necessità di creare un gran numero di ruoli specifici e di assegnazioni del controllo degli accessi in base al ruolo.
Un metodo per realizzare il controllo degli accessi in base agli attributi con Microsoft Entra ID consiste nell'usare gruppi di appartenenza dinamica. I gruppi dinamici consentono agli amministratori di assegnare in modo dinamico gli utenti ai gruppi in base ad attributi specifici dell'utente con valori desiderati. Ad esempio, è possibile creare un gruppo Autori in cui tutti gli utenti con la posizione di Autore sono assegnati in modo dinamico al gruppo Autori. I gruppi dinamici possono essere usati in combinazione con il controllo degli accessi in base al ruolo, dove viene eseguito il mapping dei ruoli ai gruppi e l'assegnazione dinamica degli utenti ai gruppi.
Il controllo degli accessi in base agli attributi di Azure è un esempio di soluzione per il controllo degli accessi in base agli attributi oggi disponibile. Il controllo degli accessi in base all'attributo di Azure si basa sul controllo degli accessi in base al ruolo di Azure aggiungendo condizioni di assegnazione di ruolo basate su attributi nel contesto di azioni specifiche.
Implementare l'autorizzazione
La logica dell'autorizzazione è spesso implementata all'interno delle applicazioni o delle soluzioni in cui è richiesto il controllo degli accessi. Spesso le piattaforme di sviluppo delle applicazioni offrono middleware o altre soluzioni API che semplificano l'implementazione dell'autorizzazione. Gli esempi includono l'uso dell'attributo AuthorizeAttribute in ASP.NET o Route Guards in Angular.
Per gli approcci di autorizzazione che si basano sulle informazioni sull'entità autenticata, un'applicazione valuta le informazioni scambiate durante l'autenticazione. Ad esempio, usando le informazioni fornite all'interno di un token di sicurezza. Se si prevede di usare le informazioni dei token per l'autorizzazione, è consigliabile seguire queste indicazioni per proteggere correttamente le app tramite la convalida delle attestazioni. Per le informazioni non contenute in un token di sicurezza, un'applicazione potrebbe effettuare chiamate aggiuntive a risorse esterne.
Non è strettamente necessario per gli sviluppatori integrare la logica di autorizzazione interamente all'interno delle applicazioni. I servizi di autorizzazione dedicati possono invece essere usati per centralizzare l'implementazione e la gestione delle autorizzazioni.
Passaggi successivi
- Per informazioni sull'implementazione personalizzata del controllo degli accessi in base al ruolo nelle applicazioni, vedere Controllo degli accessi in base al ruolo per gli sviluppatori di applicazioni.
- Vedere Modello applicativo per informazioni sul processo di registrazione dell'applicazione in modo che possa integrarsi con Microsoft Identity Platform.
- Per un esempio di configurazione di un'autorizzazione basata sull'autenticazione semplice, vedere Configurare l'servizio app o l'app Funzioni di Azure per l'uso dell'account di accesso di Microsoft Entra.
- Per altre informazioni sull'autorizzazione corretta tramite i le attestazioni dei token, vedere Proteggere applicazioni e API mediante la convalida delle attestazioni