Autenticare le soluzioni di gestione Batch con Active DirectoryAuthenticate Batch Management solutions with Active Directory

Le applicazioni che chiamano il servizio di gestione di Azure Batch vengono autenticate con Azure Active Directory (Azure AD).Applications that call the Azure Batch Management service authenticate with Azure Active Directory (Azure AD). Azure AD è il servizio Microsoft di gestione di identità e directory basato sul cloud e multi-tenant.Azure AD is Microsoft’s multi-tenant cloud based directory and identity management service. Azure stesso usa Azure AD per l'autenticazione dei relativi clienti, amministratori del servizio e utenti dell'organizzazione.Azure itself uses Azure AD for the authentication of its customers, service administrators, and organizational users.

La libreria .NET per la gestione di Batch espone tipi per l'uso di account Batch, chiavi dell'account, applicazioni e pacchetti dell'applicazione.The Batch Management .NET library exposes types for working with Batch accounts, account keys, applications, and application packages. 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.The Batch Management .NET library is an Azure resource provider client, and is used together with Azure Resource Manager to manage these resources programmatically. Azure AD è necessario per autenticare le richieste effettuate tramite qualsiasi client del provider di risorse di Azure, inclusa la libreria .NET per la gestione di Batch, e tramite Azure Resource Manager.Azure AD is required to authenticate requests made through any Azure resource provider client, including the Batch Management .NET library, and through Azure Resource Manager.

Questo articolo illustra l'uso di Azure AD per eseguire l'autenticazione dalle applicazioni che usano la libreria .NET per la gestione di Batch.In this article, we explore using Azure AD to authenticate from applications that use the Batch Management .NET library. Viene descritto come usare Azure AD per autenticare un amministratore o un co-amministratore della sottoscrizione tramite l'autenticazione integrata.We show how to use Azure AD to authenticate a subscription administrator or co-administrator, using integrated authentication. In questa sezione si usa il progetto di esempio AccountManagement, disponibile in GitHub, per illustrare l'uso di Azure AD con la libreria .NET per la gestione di Batch.We use the AccountManagment sample project, available on GitHub, to walk through using Azure AD with the Batch Management .NET library.

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.To learn more about using the Batch Management .NET library and the AccountManagement sample, see Manage Batch accounts and quotas with the Batch Management client library for .NET.

Registrare l'applicazione in Azure ADRegister your application with Azure AD

Azure Active Directory Authentication Library (ADAL) offre un'interfaccia programmatica per Azure AD da usare nelle applicazioni.The Azure Active Directory Authentication Library (ADAL) provides a programmatic interface to Azure AD for use within your applications. Per chiamare ADAL da un'applicazione, è necessario registrare l'applicazione in un tenant di Azure AD.To call ADAL from your application, you must register your application in an Azure AD tenant. Quando si registra l'applicazione, si specificano in Azure AD le informazioni relative all'applicazione, incluso un nome per l'applicazione nel tenant di Azure AD.When you register your application, you supply Azure AD with information about your application, including a name for it within the Azure AD tenant. Azure AD fornisce quindi un ID applicazione che viene usato per associare l'applicazione ad Azure AD in fase di esecuzione.Azure AD then provides an application ID that you use to associate your application with Azure AD at runtime. Per altre informazioni sull'ID applicazione, vedere Oggetti applicazione e oggetti entità servizio in Azure Active Directory.To learn more about the application ID, see Application and service principal objects in Azure Active Directory.

Per registrare l'applicazione di esempio AccountManagement, seguire la procedura descritta nella sezione Aggiunta di un'applicazione dell'articolo Integrazione di applicazioni con Azure Active Directory.To register the AccountManagement sample application, follow the steps in the Adding an Application section in Integrating applications with Azure Active Directory. Specificare Nativa come tipo di applicazione.Specify Native Client Application for the type of application. L'URI OAuth 2.0 standard per l'URI di reindirizzamento è urn:ietf:wg:oauth:2.0:oob.The industry standard OAuth 2.0 URI for the Redirect URI is urn:ietf:wg:oauth:2.0:oob. In URI di reindirizzamento è possibile specificare qualsiasi URI valido, ad esempio http://myaccountmanagementsample, perché non è necessario che sia un endpoint reale:However, you can specify any valid URI (such as http://myaccountmanagementsample) for the Redirect URI, as it does not need to be a real endpoint:

Al termine del processo di registrazione, verranno elencati l'ID applicazione e l'ID oggetto (entità servizio) dell'applicazione.Once you complete the registration process, you'll see the application ID and the object (service principal) ID listed for your application.

Concedere all'API di Azure Resource Manager l'accesso all'applicazioneGrant the Azure Resource Manager API access to your application

Successivamente, sarà necessario delegare l'accesso all'applicazione all'API di Azure Resource Manager.Next, you'll need to delegate access to your application to the Azure Resource Manager API. L'identificatore di Azure AD per l'API di Resource Manager è API di gestione del servizio Microsoft Azure.The Azure AD identifier for the Resource Manager API is Windows Azure Service Management API.

Seguire questa procedura nel portale di Azure:Follow these steps in the Azure portal:

  1. Nel riquadro di spostamento sinistro del portale di Azure scegliere Altri servizi e fare clic su Registrazioni per l'app e quindi su Aggiungi.In the left-hand navigation pane of the Azure portal, choose More Services, click App Registrations, and click Add.
  2. Cercare il nome dell'applicazione nell'elenco di registrazioni di app:Search for the name of your application in the list of app registrations:

    Cercare il nome dell'applicazione

  3. Visualizzare il pannello Impostazioni.Display the Settings blade. Nella sezione Accesso all'API selezionare Autorizzazioni necessarie.In the API Access section, select Required permissions.

  4. Fare clic su Aggiungi per aggiungere una nuova autorizzazione necessaria.Click Add to add a new required permission.
  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.In step 1, enter Windows Azure Service Management API, select that API from the list of results, and click the Select button.
  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.In step 2, select the check box next to Access Azure classic deployment model as organization users, and click the Select button.
  7. Fare clic sul pulsante Fine.Click the Done button.

Il pannello Autorizzazioni necessarie mostra ora che le autorizzazioni per l'applicazione sono concesse sia ad ADAL che alle API di Resource Manager.The Required Permissions blade now shows that permissions to your application are granted to both the ADAL and Resource Manager APIs. Le autorizzazioni vengono concesse ad ADAL per impostazione predefinita quando si registra per la prima volta l'app in Azure AD.Permissions are granted to ADAL by default when you first register your app with Azure AD.

Delegare le autorizzazioni all'API di Azure Resource Manager

Endpoint di Azure Active DirectoryAzure AD endpoints

Per autenticare le soluzioni di gestione Batch con Azure AD, è necessario usare due endpoint noti.To authenticate your Batch Management solutions with Azure AD, you'll need two well-known endpoints.

  • L'endpoint comune di Azure AD consente di usare un'interfaccia di raccolta di credenziali generiche quando non è disponibile un tenant specifico, come nel caso l'autenticazione integrata:The Azure AD common endpoint provides a generic credential gathering interface when a specific tenant is not provided, as in the case of integrated authentication:

    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:The Azure Resource Manager endpoint is used to acquire a token for authenticating requests to the Batch management service:

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

L'applicazione di esempio AccountManagement definisce le costanti per tali endpoint.The AccountManagement sample application defines constants for these endpoints. Lasciare invariate queste costanti:Leave these constants unchanged:

// 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 applicazioneReference your application ID

L'ID applicazione (detto anche ID client) viene usato dall'applicazione client per accedere ad Azure AD in fase di esecuzione.Your client application uses the application ID (also referred to as the client ID) to access Azure AD at runtime. Dopo aver registrato l'applicazione nel portale di Azure, aggiornare il codice per usare l'ID applicazione fornito da Azure AD per l'applicazione registrata.Once you've registered your application in the Azure portal, update your code to use the application ID provided by Azure AD for your registered application. Nell'applicazione di esempio AccountManagement, copiare l'ID applicazione dal portale di Azure alla costante appropriata:In the AccountManagement sample application, copy your application ID from the Azure portal to the appropriate constant:

// 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 Azure AD Graph API. For information
// about registering an application in Azure Active Directory, please see "Adding an Application" here:
// https://azure.microsoft.com/documentation/articles/active-directory-integrating-applications/
private const string ClientId = "<application-id>";

Copiare anche l'URI di reindirizzamento specificato durante il processo di registrazione.Also copy the redirect URI that you specified during the registration process. L'URI specificato nel codice di reindirizzamento deve corrispondere a quello specificato quando è stata registrata l'applicazione.The redirect URI specified in your code must match the redirect URI that you provided when you registered the application.

// 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 Azure ADAcquire an Azure AD authentication token

Dopo aver registrare l'esempio AccountManagement nel tenant di Azure AD e aggiornato il codice sorgente di esempio con i valori appropriati, l'esempio è pronto per eseguire l'autenticazione tramite Azure AD.After you register the AccountManagement sample in the Azure AD tenant and update the sample source code with your values, the sample is ready to authenticate using Azure AD. Quando si esegue l'esempio, ADAL tenta di acquisire un token di autenticazione.When you run the sample, the ADAL attempts to acquire an authentication token. A questo punto, richiede all'utente credenziali Microsoft:At this step, it prompts you for your Microsoft credentials:

// 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.After you provide your credentials, the sample application can proceed to issue authenticated requests to the Batch management service.

Passaggi successiviNext steps

Per altre informazioni sull'esecuzione dell'applicazione di esempio AccountManagement, vedere Gestire le quote e gli account Batch con la libreria client di gestione Batch per .NET.For more information on running the AccountManagement sample application, see Manage Batch accounts and quotas with the Batch Management client library for .NET.

Per altre informazioni su Azure AD, vedere Documentazione di Azure Active Directory.To learn more about Azure AD, see the Azure Active Directory Documentation. Esempi dettagliati dell'uso di ADAL sono disponibili nella libreria degli esempi di codice per Azure.In-depth examples showing how to use ADAL are available in the Azure Code Samples library.

Per eseguire l'autenticazione di applicazioni del servizio Batch con Azure AD, vedere Authenticate Batch service solutions with Active Directory (Autenticare le soluzioni del servizio Batch con Active Directoy).To authenticate Batch service applications using Azure AD, see Authenticate Batch service solutions with Active Directory.