Usare l'autenticazione di Azure AD per accedere all'API di Servizi multimediali di Azure con .NETUse Azure AD authentication to access Azure Media Services API with .NET

A partire da windowsazure.mediaservices 4.0.0.4, Servizi multimediali di Azure supporta l'autenticazione basata su Azure Active Directory (Azure AD).Starting with windowsazure.mediaservices 4.0.0.4, Azure Media Services supports authentication based on Azure Active Directory (Azure AD). In questo argomento viene illustrato come usare l'autenticazione di Azure AD per accedere all'API Servizi multimediali di Microsoft Azure con .NET.This topic shows you how to use Azure AD authentication to access Azure Media Services API with Microsoft .NET.

PrerequisitiPrerequisites

Quando si usa l'autenticazione di Azure AD con Servizi multimediali di Azure, è possibile eseguire l'autenticazione in uno di due modi:When you're using Azure AD authentication with Azure Media Services, you can authenticate in one of two ways:

  • L'autenticazione utente consente di eseguire l'autenticazione di una persona che usa l'app per interagire con le risorse di Servizi multimediali di Azure.User authentication authenticates a person who is using the app to interact with Azure Media Services resources. L'applicazione interattiva deve prima richiedere all'utente le credenziali.The interactive application should first prompt the user for credentials. Un esempio è un'app della console di gestione usata dagli utenti autorizzati per monitorare i processi di codifica o lo streaming live.An example is a management console app that's used by authorized users to monitor encoding jobs or live streaming.
  • L'autenticazione basata su un'entità servizio consente di eseguire l'autenticazione di un servizio.Service principal authentication authenticates a service. Le applicazioni che usano in genere questo metodo di autenticazione sono app che eseguono servizi daemon, servizi di livello intermedio o processi pianificati, ad esempio app Web, app per le funzioni, app per la logica, API o microservizi.Applications that commonly use this authentication method are apps that run daemon services, middle-tier services, or scheduled jobs, such as web apps, function apps, logic apps, APIs, or microservices.

Importante

Attualmente, Servizi multimediali di Azure supporta un modello di autenticazione di Servizio di controllo di accesso Azure.Azure Media Service currently supports an Azure Access Control Service authentication model. L'autorizzazione di Controllo di accesso, tuttavia, verrà dichiarata deprecata il 1° giugno 2018.However, Access Control authorization is going to be deprecated on June 1, 2018. È consigliabile eseguire la migrazione all'autenticazione di Azure Active Directory il più presto possibile.We recommend that you migrate to an Azure Active Directory authentication model as soon as possible.

Ottenere un token di accesso di Azure ADGet an Azure AD access token

Per connettersi all'API Servizi multimediali di Azure con l'autenticazione Azure AD, l'app client deve richiedere un token di accesso di Azure AD.To connect to the Azure Media Services API with Azure AD authentication, the client app needs to request an Azure AD access token. Quando si usa l'SDK del client .NET di Servizi multimediali, molte informazioni dettagliate su come acquisire un token di accesso di Azure AD sono riepilogate e semplificate nelle classi AzureAdTokenProvider e AzureAdTokenCredentials.When you use the Media Services .NET client SDK, many of the details about how to acquire an Azure AD access token are wrapped and simplified for you in the AzureAdTokenProvider and AzureAdTokenCredentials classes.

Ad esempio, non è necessario fornire dettagli sull'autorità di Azure AD, sull'URI di risorsa di Servizi multimediali o sull'applicazione Azure AD nativa.For example, you don't need to provide the Azure AD authority, Media Services resource URI, or native Azure AD application details. Si tratta di valori noti già configurati per la classe del provider del token di accesso di Azure AD.These are well-known values that are already configured by the Azure AD access token provider class.

Se non si usa l'SDK .NET di Servizi multimediali di Azure, è consigliabile usare Azure AD Authentication Library.If you are not using Azure Media Service .NET SDK, we recommend that you use the Azure AD Authentication Library. Per ottenere i valori dei parametri da usare con Azure Active Directory Authentication Library, vedere Utilizzo del portale di Azure per accedere alle impostazioni di autenticazione di Azure AD.To get values for the parameters that you need to use with Azure AD Authentication Library, see Use the Azure portal to access Azure AD authentication settings.

È anche possibile sostituire l'implementazione predefinita di AzureAdTokenProvider con la propria implementazione.You also have the option of replacing the default implementation of the AzureAdTokenProvider with your own implementation.

Installare e configurare l'SDK .NET di Servizi multimediali di AzureInstall and configure Azure Media Services .NET SDK

Nota

Per usare l'autenticazione di Azure AD con l'SDK .NET di Servizi Multimediali, è necessario disporre del pacchetto NuGet più recente.To use Azure AD authentication with the Media Services .NET SDK, you need to have the latest NuGet package. Aggiungere anche un riferimento all'assembly Microsoft.IdentityModel.Clients.ActiveDirectory.Also, add a reference to the Microsoft.IdentityModel.Clients.ActiveDirectory assembly. Se si usa un'app esistente, includere l'assembly Microsoft.WindowsAzure.MediaServices.Client.Common.Authentication.dll.If you are using an existing app, include the Microsoft.WindowsAzure.MediaServices.Client.Common.Authentication.dll assembly.

  1. Creare una nuova applicazione console C# in Visual Studio.Create a new C# console application in Visual Studio.
  2. Usare il pacchetto NuGet windowsazure.mediaservices per installare l'SDK .NET di Servizi multimediali di Azure.Use the windowsazure.mediaservices NuGet package to install Azure Media Services .NET SDK.

    Per aggiungere riferimenti usando NuGet, seguire questa procedura: in Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto e quindi scegliere Gestisci pacchetti NuGet.To add references by using NuGet, take the following steps: in Solution Explorer, right-click the project name, and then select Manage NuGet packages. Cercare quindi windowsazure.mediaservices e fare clic su Installa.Then, search for windowsazure.mediaservices and select Install.

    -oppure--or-

    Eseguire il comando seguente nella finestra Console di Gestione pacchetti in Visual Studio.Run the following command in Package Manager Console in Visual Studio.

     Install-Package windowsazure.mediaservices -Version 4.0.0.4
    
  3. Aggiungere mediante al codice sorgente.Add using to your source code.

     using Microsoft.WindowsAzure.MediaServices.Client; 
    

Usare l'autenticazione utenteUse user authentication

Per connettersi all'API Servizi multimediali di Azure con l'opzione di autenticazione utente, l'app client deve richiedere un token di Azure AD tramite i parametri seguenti:To connect to the Azure Media Service API with the user authentication option, the client app needs to request an Azure AD token by using the following parameters:

  • Endpoint del tenant di Azure AD.Azure AD tenant endpoint. Le informazioni sul tenant possono essere recuperate dal portale di Azure.The tenant information can be retrieved from the Azure portal. Passare il mouse sull'utente connesso nell'angolo superiore destro.Hover over the signed-in user in the upper-right corner.
  • URI di risorsa per Servizi multimediali.Media Services resource URI.
  • ID client dell'applicazione Servizi multimediali (nativa).Media Services (native) application client ID.
  • URI di reindirizzamento dell'applicazione Servizi multimediali (nativa).Media Services (native) application redirect URI.

I valori per questi parametri sono reperibili in AzureEnvironments.AzureCloudEnvironment.The values for these parameters can be found in AzureEnvironments.AzureCloudEnvironment. La costante AzureEnvironments.AzureCloudEnvironment è un helper nell'SDK .NET che consente di ottenere le impostazioni delle variabili di ambiente ideali per un data center Azure pubblico.The AzureEnvironments.AzureCloudEnvironment constant is a helper in the .NET SDK to get the right environment variable settings for a public Azure Data Center.

Contiene le impostazioni di ambiente predefinite per l'accesso a Servizi multimediali esclusivamente nei data center pubblici.It contains pre-defined environment settings for accessing Media Services in the public data centers only. Per le regioni cloud sovrane o governative è possibile usare rispettivamente AzureChinaCloudEnvironment, AzureUsGovernmentEnvironment o AzureGermanCloudEnvironment.For sovereign or government cloud regions, you can use AzureChinaCloudEnvironment, AzureUsGovernmentEnvrionment, or AzureGermanCloudEnvironment respectively.

L'esempio di codice seguente mostra come creare un token:The following code example creates a token:

var tokenCredentials = new AzureAdTokenCredentials("microsoft.onmicrosoft.com", AzureEnvironments.AzureCloudEnvironment);
var tokenProvider = new AzureAdTokenProvider(tokenCredentials);

Prima di iniziare la programmazione basata su Servizi multimediali, è necessario creare un'istanza di CloudMediaContext che rappresenta il contesto del server.To start programming against Media Services, you need to create a CloudMediaContext instance that represents the server context. CloudMediaContext contiene riferimenti a raccolte importanti composte da processi, asset, file, criteri di accesso e localizzatori.The CloudMediaContext includes references to important collections including jobs, assets, files, access policies, and locators.

È anche necessario passare l'URI di risorsa per i servizi REST multimediali al costruttore CloudMediaContext.You also need to pass the resource URI for Media REST Services to the CloudMediaContext constructor. Per ottenere l'URI di risorsa per i servizi REST multimediali, accedere al portale di Azure, selezionare l'account Servizi multimediali di Azure, fare clic su Accesso API, quindi selezionare Connettersi all'API Servizi multimediali di Azure con l'autorizzazione utente (interattiva).To get the resource URI for Media REST Services, sign in to the Azure portal, select your Azure Media Services account, select API access, and then select Connect to Azure Media Services with user authentication.

L'esempio di codice seguente mostra come creare un'istanza CloudMediaContext:The following code example creates a CloudMediaContext instance:

CloudMediaContext context = new CloudMediaContext(new Uri("YOUR REST API ENDPOINT HERE"), tokenProvider);

L'esempio seguente mostra come creare il token di Azure AD e il contesto:The following example shows how to create the Azure AD token and the context:

namespace AADAuthSample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Specify your Azure AD tenant domain, for example "microsoft.onmicrosoft.com".
            var tokenCredentials = new AzureAdTokenCredentials("{YOUR AAD TENANT DOMAIN HERE}", AzureEnvironments.AzureCloudEnvironment);

            var tokenProvider = new AzureAdTokenProvider(tokenCredentials);

            // Specify your REST API endpoint, for example "https://accountname.restv2.westcentralus.media.azure.net/API".
            CloudMediaContext context = new CloudMediaContext(new Uri("YOUR REST API ENDPOINT HERE"), tokenProvider);

            var assets = context.Assets;
            foreach (var a in assets)
            {
                Console.WriteLine(a.Name);
            }
        }

    }
}

Nota

Se si verifica un'eccezione che indica "Errore del server remoto: (401) Non autorizzato", vedere la sezione Controllo di accesso di Accesso all'interfaccia API di Servizi multimediali di Azure con l'autenticazione di Azure Active Directory.If you get an exception that says "The remote server returned an error: (401) Unauthorized," see the Access control section of Accessing Azure Media Services API with Azure AD authentication overview.

Usare l'autenticazione basata su entità servizioUse service principal authentication

Per connettersi all'API Servizi multimediali di Azure con l'opzione dell'entità servizio, l'app di livello intermedio (API o applicazione Web) deve richiedere un token di Azure AD con i parametri seguenti:To connect to the Azure Media Services API with the service principal option, your middle-tier app (web API or web application) needs to requests an Azure AD token with the following parameters:

  • Endpoint del tenant di Azure AD.Azure AD tenant endpoint. Le informazioni sul tenant possono essere recuperate dal portale di Azure.The tenant information can be retrieved from the Azure portal. Passare il mouse sull'utente connesso nell'angolo superiore destro.Hover over the signed-in user in the upper-right corner.
  • URI di risorsa per Servizi multimediali.Media Services resource URI.
  • Valori dell'applicazione Azure AD: ID client e Segreto client.Azure AD application values: the Client ID and Client secret.

I valori per i parametri ID client e Segreto client sono reperibili nel portale di Azure.The values for the Client ID and Client secret parameters can be found in the Azure portal. Per altre informazioni, vedere Introduzione all'autenticazione di Azure AD tramite il portale di Azure.For more information, see Getting started with Azure AD authentication using the Azure portal.

L'esempio di codice seguente mostra come creare un token tramite il costruttore AzureAdTokenCredentials che accetta AzureAdClientSymmetricKey come parametro:The following code example creates a token by using the AzureAdTokenCredentials constructor that takes AzureAdClientSymmetricKey as a parameter:

var tokenCredentials = new AzureAdTokenCredentials("{YOUR Azure AD TENANT DOMAIN HERE}", 
                            new AzureAdClientSymmetricKey("{YOUR CLIENT ID HERE}", "{YOUR CLIENT SECRET}"), 
                            AzureEnvironments.AzureCloudEnvironment);

var tokenProvider = new AzureAdTokenProvider(tokenCredentials);

È anche possibile specificare il costruttore AzureAdTokenCredentials che accetta AzureAdClientCertificate come parametro.You can also specify the AzureAdTokenCredentials constructor that takes AzureAdClientCertificate as a parameter.

Per istruzioni su come creare e configurare un certificato in un modulo utilizzabile da Azure AD, vedere Authenticating to Azure AD in daemon apps with certificates - manual configuration steps (Autenticazione in Azure AD nelle app daemon con certificati - Passaggi di configurazione manuale).For instructions about how to create and configure a certificate in a form that can be used by Azure AD, see Authenticating to Azure AD in daemon apps with certificates - manual configuration steps.

var tokenCredentials = new AzureAdTokenCredentials("{YOUR Azure AD TENANT DOMAIN HERE}", 
                            new AzureAdClientCertificate("{YOUR CLIENT ID HERE}", "{YOUR CLIENT CERTIFICATE THUMBPRINT}"), 
                            AzureEnvironments.AzureCloudEnvironment);

Prima di iniziare la programmazione basata su Servizi multimediali, è necessario creare un'istanza di CloudMediaContext che rappresenta il contesto del server.To start programming against Media Services, you need to create a CloudMediaContext instance that represents the server context. È anche necessario passare l'URI di risorsa per i servizi REST multimediali al costruttore CloudMediaContext.You also need to pass the resource URI for Media REST Services to the CloudMediaContext constructor. È possibile ottenere dal portale di Azure anche il valore dell'URI di risorsa per i servizi REST multimediali.You can get the resource URI for Media REST Services value from the Azure portal as well.

L'esempio di codice seguente mostra come creare un'istanza CloudMediaContext:The following code example creates a CloudMediaContext instance:

CloudMediaContext context = new CloudMediaContext(new Uri("YOUR REST API ENDPOINT HERE"), tokenProvider);

L'esempio seguente mostra come creare il token di Azure AD e il contesto:The following example shows how to create the Azure AD token and the context:

namespace AADAuthSample
{

    class Program
    {
        static void Main(string[] args)
        {
            var tokenCredentials = new AzureAdTokenCredentials("{YOUR Azure AD TENANT DOMAIN HERE}", 
                                        new AzureAdClientSymmetricKey("{YOUR CLIENT ID HERE}", "{YOUR CLIENT SECRET}"), 
                                        AzureEnvironments.AzureCloudEnvironment);

            var tokenProvider = new AzureAdTokenProvider(tokenCredentials);

            // Specify your REST API endpoint, for example "https://accountname.restv2.westcentralus.media.azure.net/API".      
            CloudMediaContext context = new CloudMediaContext(new Uri("YOUR REST API ENDPOINT HERE"), tokenProvider);

            var assets = context.Assets;
            foreach (var a in assets)
            {
                Console.WriteLine(a.Name);
            }

            Console.ReadLine();
        }

    }
}

Passaggi successiviNext steps

Introduzione al caricamento di file nell'account.Get started with uploading files to your account.