Autenticare le soluzioni di gestione Batch con Active Directory

Le applicazioni che chiamano il servizio Gestione Azure Batch eseguono l'autenticazione con Microsoft Authentication Library (MICROSOFT Entra ID). Microsoft Entra ID è il servizio di gestione delle identità e della directory basato su cloud multi-tenant di Microsoft. Azure usa l'ID Microsoft Entra per l'autenticazione dei clienti, degli amministratori dei servizi e degli utenti dell'organizzazione.

La libreria .NET per la gestione di Batch espone tipi per l'uso di account Batch, chiavi dell'account, applicazioni e pacchetti dell'applicazione. La libreria .NET per la gestione di Batch è un client del provider di risorse di Azure e viene usata in combinazione con Azure Resource Manager per gestire tali risorse a livello di codice. L'ID Microsoft Entra è necessario per autenticare le richieste effettuate tramite qualsiasi client del provider di risorse di Azure, inclusa la libreria .NET di gestione batch e tramite Azure Resource Manager.

In questo articolo viene illustrato l'uso di Microsoft Entra ID per l'autenticazione da applicazioni che usano la libreria .NET di gestione batch. Viene illustrato come usare Microsoft Entra ID per autenticare un amministratore della sottoscrizione o un coamministratore, usando l'autenticazione integrata. Viene usato il progetto di esempio AccountManagement , disponibile in GitHub, per esaminare l'uso dell'ID Microsoft Entra con la libreria .NET di gestione batch.

Per altre informazioni sull'uso della libreria .NET per la gestione di Batch e dell'esempio AccountManagement, vedere Gestire le quote e gli account Batch con la libreria client di gestione Batch per .NET.

Registrare l'applicazione con Microsoft Entra ID

Microsoft Authentication Library (MSAL) fornisce un'interfaccia programmatica all'ID Microsoft Entra da usare all'interno delle applicazioni. Per chiamare MSAL dall'applicazione, è necessario registrare l'applicazione in un tenant di Microsoft Entra. Quando si registra l'applicazione, si specifica Microsoft Entra ID con informazioni sull'applicazione, incluso un nome all'interno del tenant di Microsoft Entra. Microsoft Entra ID fornisce quindi un ID applicazione usato per associare l'applicazione all'ID Microsoft Entra in fase di esecuzione. Per altre informazioni sull'ID applicazione, vedere Oggetti applicazione e entità servizio in Microsoft Entra ID.

Per registrare l'applicazione di esempio AccountManagement, seguire la procedura descritta nella sezione Aggiunta di un'applicazione in Integrazione di applicazioni con Microsoft Entra ID. Specificare Nativa come tipo di applicazione. L'URI OAuth 2.0 standard per l'URI di reindirizzamento è urn:ietf:wg:oauth:2.0:oob. Tuttavia, è possibile specificare qualsiasi URI valido (ad esempio http://myaccountmanagementsample) per l'URI di reindirizzamento, in quanto non deve essere un endpoint reale.

Adding an application

Al termine del processo di registrazione, verranno elencati l'ID applicazione e l'ID oggetto (entità servizio) dell'applicazione.

Completed registration process

Concedere all'API di Azure Resource Manager l'accesso all'applicazione

Successivamente, sarà necessario delegare l'accesso all'applicazione all'API di Azure Resource Manager. L'identificatore Microsoft Entra per l'API di Resource Manager è l'API gestione dei servizi di Windows Azure.

Seguire questa procedura nel portale di Azure:

  1. Nel riquadro di spostamento sinistro del portale di Azure scegliere Tutti i servizi e fare clic su Registrazioni per l'app e quindi su Aggiungi.

  2. Cercare il nome dell'applicazione nell'elenco di registrazioni di app:

    Search for your application name

  3. Visualizzare il pannello Impostazioni. Nella sezione Accesso all'API selezionare Autorizzazioni necessarie.

  4. Fare clic su Aggiungi per aggiungere una nuova autorizzazione necessaria.

  5. Nel passaggio 1 immettere API di gestione del servizio Microsoft Azure, selezionare tale API nell'elenco dei risultati e fare clic sul pulsante Seleziona.

  6. Nel passaggio 2 selezionare la casella di controllo accanto ad Access Azure classic deployment model as organization users (Accedi a modello di distribuzione classica di Azure come utente dell'organizzazione) e fare clic sul pulsante Seleziona.

  7. Fare clic sul pulsante Fine.

Il pannello Autorizzazioni necessarie mostra ora che le autorizzazioni per l'applicazione vengono concesse alle API MSAL e Resource Manager. Le autorizzazioni vengono concesse a MSAL per impostazione predefinita quando si registra per la prima volta l'app con Microsoft Entra ID.

Delegate permissions to the Azure Resource Manager API

Endpoint di Microsoft Entra

Per autenticare le soluzioni di gestione batch con Microsoft Entra ID, sono necessari due endpoint noti.

  • L'endpoint comune di Microsoft Entra fornisce un'interfaccia generica di raccolta delle credenziali quando non viene fornito un tenant specifico, come nel caso dell'autenticazione integrata:

    https://login.microsoftonline.com/common

  • L'endpoint di Azure Resource Manager consente di acquisire un token per autenticare le richieste al servizio di gestione Batch:

    https://management.core.windows.net/

L'applicazione di esempio AccountManagement definisce le costanti per tali endpoint. Lasciare invariate queste costanti:

// Azure Active Directory "common" endpoint.
private const string AuthorityUri = "https://login.microsoftonline.com/common";
// Azure Resource Manager endpoint
private const string ResourceUri = "https://management.core.windows.net/";

Fare riferimento all'ID applicazione

L'applicazione client usa l'ID applicazione (detto anche ID client) per accedere all'ID Microsoft Entra in fase di esecuzione. Dopo aver registrato l'applicazione nel portale di Azure, aggiornare il codice per usare l'ID applicazione fornito da Microsoft Entra ID per l'applicazione registrata. Nell'applicazione di esempio AccountManagement, copiare l'ID applicazione dal portale di Azure alla costante appropriata:

// Specify the unique identifier (the "Client ID") for your application. This is required so that your
// native client application (i.e. this sample) can access the Microsoft Graph API. For information
// about registering an application in Azure Active Directory, please see "Register an application with the Microsoft identity platform" here:
// https://learn.microsoft.com/azure/active-directory/develop/quickstart-register-app
private const string ClientId = "<application-id>";

Copiare anche l'URI di reindirizzamento specificato durante il processo di registrazione. L'URI specificato nel codice di reindirizzamento deve corrispondere a quello specificato quando è stata registrata l'applicazione.

// The URI to which Azure AD will redirect in response to an OAuth 2.0 request. This value is
// specified by you when you register an application with AAD (see ClientId comment). It does not
// need to be a real endpoint, but must be a valid URI (e.g. https://accountmgmtsampleapp).
private const string RedirectUri = "http://myaccountmanagementsample";

Acquisire un token di autenticazione Di Microsoft Entra

Dopo aver registrato l'esempio AccountManagement nel tenant di Microsoft Entra e aggiornare il codice sorgente di esempio con i valori, l'esempio è pronto per l'autenticazione usando Microsoft Entra ID. Quando si esegue l'esempio, MSAL tenta di acquisire un token di autenticazione. A questo punto, richiede all'utente credenziali Microsoft:

// Obtain an access token using the "common" AAD resource. This allows the application
// to query AAD for information that lies outside the application's tenant (such as for
// querying subscription information in your Azure account).
AuthenticationContext authContext = new AuthenticationContext(AuthorityUri);
AuthenticationResult authResult = authContext.AcquireToken(ResourceUri,
                                                        ClientId,
                                                        new Uri(RedirectUri),
                                                        PromptBehavior.Auto);

Dopo che sono state specificate le credenziali, l'applicazione di esempio può procedere con l'invio di richieste autenticate al servizio di gestione di Batch.

Passaggi successivi