Informazioni di base sull'autorizzazione

L'autorizzazione (talvolta abbreviata come AuthZ) viene usata per impostare le autorizzazioni che consentono la valutazione dell'accesso alle risorse o alle funzionalità. Al contrario, l'autenticazione (talvolta abbreviata come AuthN) è incentrata sulla dimostrazione che un'entità come un utente o un servizio è effettivamente chi dichiara di essere.

L'autorizzazione può includere la specifica delle funzionalità, delle risorse o dei dati a cui un'entità può accedere. L'autorizzazione specifica anche le operazioni che è possibile eseguire con i dati. Questa azione di autorizzazione viene spesso definita controllo di accesso.

L'autenticazione e l'autorizzazione sono concetti che non sono limitati solo agli utenti. I servizi o le applicazioni daemon vengono spesso compilati per effettuare richieste di risorse come se stesse anziché per conto di un utente specifico. In questo articolo il termine "entità" viene usato per fare riferimento a un utente o a un'applicazione.

Approcci di autorizzazione

Esistono diversi approcci comuni per gestire l'autorizzazione. Il controllo degli accessi in base al ruolo è attualmente l'approccio più comune tramite Microsoft Identity Platform.

Autenticazione come autorizzazione

Probabilmente la forma più semplice di autorizzazione consiste nel concedere o negare l'accesso in base al fatto che l'entità che effettua una richiesta sia stata autenticata. 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 tramite elenchi di controllo di accesso (ACL) comporta la gestione di elenchi espliciti di entità specifiche che eseguono o non hanno accesso a una risorsa o a una funzionalità. Gli ACL offrono un controllo più corretto sull'autenticazione come autorizzazione, ma diventano difficili da gestire man mano che aumenta il numero di entità.

Controllo degli accessi in base al ruolo

Il controllo degli accessi in base al ruolo è probabilmente l'approccio più comune all'applicazione dell'autorizzazione nelle applicazioni. Quando si usa il controllo degli accessi in base al ruolo, i ruoli vengono definiti per descrivere i tipi di attività che un'entità può eseguire. Uno sviluppatore di applicazioni concede l'accesso ai ruoli anziché alle 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 del controllo degli accessi in base al ruolo, i ruoli possono essere mappati 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 complessivo per 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 regola l'accesso alle risorse nelle sottoscrizioni di Azure.

Nota

Il controllo degli accessi in base al ruolo dell'applicazione differisce dal controllo degli accessi in base al ruolo di Azure e dal controllo degli accessi in base al ruolo di Microsoft Entra. I ruoli personalizzati di Azure e i ruoli predefiniti fanno entrambi parte del controllo degli accessi in base al ruolo di Azure, che consente di gestire le risorse di Azure. Il controllo degli accessi in base al ruolo di Microsoft Entra consente la gestione delle risorse di Microsoft Entra.

Controllo degli accessi in base agli attributi

Il controllo degli accessi in base all'attributo è un meccanismo di controllo degli accessi con granularità più fine. In questo approccio, le regole vengono applicate all'entità, alle risorse a cui si accede e all'ambiente corrente. Le regole determinano il livello di accesso alle risorse e alle funzionalità. Un esempio potrebbe essere consentire solo agli utenti responsabili di accedere ai file identificati con un tag di metadati "manager solo durante le ore lavorative" durante le ore 9:00 - 5PM nei giorni lavorativi. In questo caso, l'accesso viene determinato esaminando l'attributo (status as manager) dell'utente, l'attributo (tag di metadati in un file) della risorsa e anche un attributo di ambiente (l'ora corrente).

Un vantaggio del controllo degli accessi in base al ruolo è che è possibile ottenere un controllo di accesso più granulare e dinamico tramite valutazioni delle regole e delle condizioni senza la necessità di creare un numero elevato di ruoli specifici e assegnazioni di controllo degli accessi in base al ruolo.

Un metodo per ottenere il controllo degli accessi in base al ruolo con Microsoft Entra ID consiste nell'usare gruppi dinamici. I gruppi dinamici consentono agli amministratori di assegnare dinamicamente gli utenti ai gruppi in base a attributi utente specifici con i valori desiderati. Ad esempio, è possibile creare un gruppo Authors in cui tutti gli utenti con il titolo di lavoro Author vengono assegnati dinamicamente al gruppo Authors. I gruppi dinamici possono essere usati in combinazione con il controllo degli accessi in base al ruolo per l'autorizzazione in cui si esegue il mapping dei ruoli ai gruppi e assegnare dinamicamente gli utenti ai gruppi.

Il controllo degli accessi in base al ruolo di Azure è un esempio di soluzione ABAC attualmente disponibile. Il controllo degli accessi in base al ruolo di Azure si basa sul controllo degli accessi in base al ruolo di Azure aggiungendo condizioni di assegnazione dei ruoli in base agli attributi nel contesto di azioni specifiche.

Implementazione dell'autorizzazione

La logica di autorizzazione viene spesso implementata all'interno delle applicazioni o delle soluzioni in cui è necessario il controllo di accesso. In molti casi, le piattaforme di sviluppo di applicazioni offrono middleware o altre soluzioni API che semplificano l'implementazione dell'autorizzazione. Gli esempi includono l'uso di AuthorizeAttribute in ASP.NET o Route Guard 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. in Per informazioni non contenute in un token di sicurezza, un'applicazione potrebbe effettuare chiamate aggiuntive a risorse esterne.

Non è strettamente necessario per gli sviluppatori di incorporare 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