Controllo degli accessi in base al ruolo per gli sviluppatori di applicazioni

Il controllo degli accessi in base al ruolo consente a determinati utenti o gruppi di avere autorizzazioni specifiche per accedere e gestire le risorse. 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 viene usato per gestire le risorse di Azure. Microsoft Entra RBAC viene usato per gestire le risorse di Microsoft Entra. Questo articolo illustra il controllo degli accessi in base al ruolo specifico dell'applicazione. Per informazioni sull'implementazione del controllo degli accessi in base al ruolo specifico dell'applicazione, vedere Come aggiungere ruoli dell'app all'applicazione e riceverli nel token.

Definizioni dei ruoli

Il controllo degli accessi in base al ruolo è un meccanismo comune per applicare l'autorizzazione nelle applicazioni. Quando un'organizzazione usa il controllo degli accessi in base al ruolo, uno sviluppatore di applicazioni definisce i ruoli anziché autorizzare singoli utenti o gruppi. Un amministratore può quindi assegnare ruoli a utenti e gruppi diversi per controllare chi può accedere al contenuto e alle funzionalità.

Il controllo degli accessi in base al ruolo consente agli sviluppatori di applicazioni di gestire le risorse e il relativo utilizzo. Il controllo degli accessi in base al ruolo consente anche a uno sviluppatore di applicazioni di controllare le aree di un'applicazione a cui gli utenti possono accedere. Amministrazione istrator può controllare quali utenti hanno accesso a un'applicazione usando Proprietà obbligatoria per l'assegnazione utente. Gli sviluppatori devono tenere conto di utenti specifici all'interno dell'applicazione e delle operazioni che gli utenti possono eseguire all'interno dell'applicazione.

Uno sviluppatore di applicazioni crea innanzitutto una definizione di ruolo all'interno della sezione di registrazione dell'applicazione nell'interfaccia di amministrazione di Microsoft Entra. La definizione del ruolo include un valore restituito per gli utenti assegnati a tale ruolo. Uno sviluppatore può quindi usare questo valore per implementare la logica dell'applicazione per determinare le operazioni che gli utenti possono o non possono eseguire in un'applicazione.

Opzioni di controllo degli accessi in base al ruolo

Quando si valuta l'inclusione dell'autorizzazione del controllo degli accessi in base al ruolo in un'applicazione, è consigliabile applicare le indicazioni seguenti:

  • Definire i ruoli necessari per le esigenze di autorizzazione dell'applicazione.
  • Applicare, archiviare e recuperare i ruoli pertinenti per gli utenti autenticati.
  • Determinare il comportamento dell'applicazione in base ai ruoli assegnati all'utente corrente.

Dopo aver definito i ruoli, Microsoft Identity Platform supporta diverse soluzioni che possono essere usate per applicare, archiviare e recuperare le informazioni sui ruoli per gli utenti autenticati. Queste soluzioni includono ruoli dell'app, gruppi di Microsoft Entra e l'uso di archivi dati personalizzati per le informazioni sui ruoli utente.

Gli sviluppatori hanno la flessibilità necessaria per fornire la propria implementazione per il modo in cui le assegnazioni di ruolo devono essere interpretate come autorizzazioni dell'applicazione. Questa interpretazione delle autorizzazioni può comportare l'uso del middleware o di altre opzioni fornite dalla piattaforma delle applicazioni o delle librerie correlate. Le applicazioni in genere ricevono informazioni sul ruolo utente come attestazioni e quindi decidono le autorizzazioni utente in base a tali attestazioni.

Ruoli dell'app

Microsoft Entra ID consente di definire i ruoli dell'app per l'applicazione e di assegnare tali ruoli agli utenti e ad altre applicazioni. I ruoli assegnati a un utente o a un'applicazione definiscono il livello di accesso alle risorse e alle operazioni nell'applicazione.

Quando Microsoft Entra ID rilascia un token di accesso per un utente o un'applicazione autenticata, include i nomi dei ruoli assegnati all'entità (l'utente o l'applicazione) nell'attestazione del token di roles accesso. Un'applicazione come un'API Web che riceve tale token di accesso in una richiesta può quindi prendere decisioni di autorizzazione in base ai valori nell'attestazione roles .

Gruppi

Gli sviluppatori possono anche usare i gruppi di Microsoft Entra per implementare il controllo degli accessi in base al ruolo nelle proprie applicazioni, in cui le appartenenze dell'utente in gruppi specifici vengono interpretate come appartenenze ai ruoli. Quando un'organizzazione usa gruppi, il token include un'attestazione di gruppi. L'attestazione di gruppo specifica gli identificatori di tutti i gruppi assegnati dell'utente all'interno del tenant.

Importante

Quando si lavora con i gruppi, gli sviluppatori devono essere consapevoli del concetto di attestazione di eccedenza. Per impostazione predefinita, se un utente è membro di più del limite di eccedenza (150 per i token SAML, 200 per i token JWT, 6 se si usa il flusso implicito), Microsoft Entra ID non genera un'attestazione di gruppi nel token. Include invece un'attestazione di eccedenza nel token che indica il consumer del token deve eseguire una query sull'API Microsoft Graph per recuperare le appartenenze ai gruppi dell'utente. Per altre informazioni sull'uso delle attestazioni di eccedenza, vedere Attestazioni nei token di accesso. È possibile generare solo gruppi assegnati a un'applicazione, anche se l'assegnazione basata su gruppo richiede Microsoft Entra ID P1 o P2 Edition.

Archivio dati personalizzato

I ruoli e i gruppi dell'app archiviano entrambe le informazioni sulle assegnazioni utente nella directory Microsoft Entra. Un'altra opzione per la gestione delle informazioni sui ruoli utente disponibili per gli sviluppatori consiste nel mantenere le informazioni all'esterno della directory in un archivio dati personalizzato. Ad esempio, in un database SQL, nell'archiviazione tabelle di Azure o in Azure Cosmos DB per tabella.

L'uso dell'archiviazione personalizzata consente agli sviluppatori di personalizzare e controllare come assegnare ruoli agli utenti e come rappresentarli. Tuttavia, la flessibilità aggiuntiva introduce anche una maggiore responsabilità. Ad esempio, non esiste alcun meccanismo attualmente disponibile per includere queste informazioni nei token restituiti dall'ID Microsoft Entra. Le applicazioni devono recuperare i ruoli se le informazioni sul ruolo vengono mantenute in un archivio dati personalizzato. Il recupero dei ruoli viene in genere eseguito usando i punti di estendibilità definiti nel middleware disponibile per la piattaforma usata per sviluppare l'applicazione. Gli sviluppatori sono responsabili della protezione corretta dell'archivio dati personalizzato.

Usando i criteri personalizzati di Azure AD B2C, è possibile interagire con archivi dati personalizzati e includere attestazioni personalizzate all'interno di un token.

Scegliere un approccio

In generale, i ruoli dell'app sono la soluzione consigliata. I ruoli dell'app forniscono il modello di programmazione più semplice e sono destinati alle implementazioni del controllo degli accessi in base al ruolo. Tuttavia, requisiti specifici dell'applicazione possono indicare che un approccio diverso sarebbe una soluzione migliore.

Gli sviluppatori possono usare i ruoli dell'app per controllare se un utente può accedere a un'applicazione o un'applicazione può ottenere un token di accesso per un'API Web. I ruoli dell'app sono preferiti rispetto ai gruppi di Microsoft Entra da parte degli sviluppatori quando vogliono descrivere e controllare i parametri di autorizzazione nelle applicazioni. Ad esempio, un'applicazione che usa i gruppi per le interruzioni di autorizzazione nel tenant successivo, poiché sia l'identificatore del gruppo che il nome potrebbero essere diversi. Un'applicazione che usa i ruoli dell'app rimane sicura.

Anche se i ruoli o i gruppi dell'app possono essere usati per l'autorizzazione, le differenze principali tra di esse possono influenzare qual è la soluzione migliore per uno scenario specifico.

Ruoli dell'app Gruppi di Microsoft Entra Archivio dati personalizzato
Modello di programmazione Più semplice. Sono specifici di un'applicazione e sono definiti nella registrazione dell'applicazione. Si spostano con l'applicazione. Più complesso. Gli identificatori di gruppo variano tra i tenant e le attestazioni di eccedenza possono essere considerati. I gruppi non sono specifici di un'applicazione, ma di un tenant di Microsoft Entra. Più complesso. Gli sviluppatori devono implementare mezzi con cui le informazioni sul ruolo vengono archiviate e recuperate.
I valori dei ruoli sono statici tra i tenant di Microsoft Entra No Dipende dall'implementazione.
I valori dei ruoli possono essere usati in più applicazioni No (a meno che la configurazione del ruolo non sia duplicata in ogni registrazione dell'applicazione).
Informazioni archiviate all'interno della directory No
Le informazioni vengono recapitate tramite token Sì (attestazione dei ruoli) Sì (in caso di eccedenza, potrebbe essere necessario recuperare le attestazioni di gruppi in fase di esecuzione) No (recuperato in fase di esecuzione tramite codice personalizzato).
Durata Risiede nella registrazione dell'applicazione nella directory. Rimosso quando la registrazione dell'applicazione viene rimossa. Si trova nella directory. Rimanere intatti anche se la registrazione dell'applicazione viene rimossa. Risiede nell'archivio dati personalizzato. Non associato alla registrazione dell'applicazione.

Passaggi successivi