Autenticação serviço a serviço com Azure Data Lake Storage Gen1 com o SDK .NET
Neste artigo, irá aprender a utilizar o SDK .NET para efetuar a autenticação serviço a serviço com o Azure Data Lake Storage Gen1. Para autenticação do utilizador final com Data Lake Storage Gen1 com o SDK .NET, veja Autenticação do utilizador final com Data Lake Storage Gen1 com o SDK .NET.
Pré-requisitos
Visual Studio 2013 ou superior. As instruções abaixo utilizam o Visual Studio 2019.
Uma subscrição do Azure. Consulte Obter versão de avaliação gratuita do Azure.
Crie uma Aplicação "Web" Microsoft Entra ID. Tem de ter concluído os passos em Autenticação serviço a serviço com Data Lake Storage Gen1 com Microsoft Entra ID.
Criar uma aplicação .NET
No Visual Studio, selecione o menu Ficheiro , Novo e, em seguida , Projeto.
Selecione Aplicação de Consola (.NET Framework) e, em seguida, selecione Seguinte.
Em Nome do projeto, introduza
CreateADLApplication
e, em seguida, selecione Criar.Adicione os pacotes NuGet ao seu projeto.
Clique com o botão direito do rato no nome do projeto no Explorador de Soluções e clique em Gerir Pacotes NuGet.
No separador Gestor de Pacotes NuGet, certifique-se de que a Origem do pacote está definida como nuget.org e que a caixa de verificação Incluir pré-lançamento está selecionada.
Procure e instale os seguintes pacotes NuGet:
Microsoft.Azure.Management.DataLake.Store
- Este tutorial utiliza a v2.1.3-preview.Microsoft.Rest.ClientRuntime.Azure.Authentication
- Este tutorial utiliza a v2.2.12.
Feche o Gestor de Pacotes NuGet.
Abra Program.cs, elimine o código existente e, em seguida, inclua as seguintes instruções para adicionar referências aos espaços de nomes.
using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Collections.Generic;
using System.Security.Cryptography.X509Certificates; // Required only if you are using an Azure AD application created with certificates
using Microsoft.Rest;
using Microsoft.Rest.Azure.Authentication;
using Microsoft.Azure.Management.DataLake.Store;
using Microsoft.Azure.Management.DataLake.Store.Models;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
Autenticação serviço a serviço com segredo do cliente
Adicione este fragmento na sua aplicação cliente .NET. Substitua os valores do marcador de posição pelos valores obtidos a partir de uma aplicação Web Microsoft Entra (listada como um pré-requisito). Este fragmento permite-lhe autenticar a sua aplicação de forma não interativa com Data Lake Storage Gen1 através do segredo/chave do cliente para Microsoft Entra aplicação Web.
private static void Main(string[] args)
{
// Service principal / application authentication with client secret / key
// Use the client ID of an existing AAD "Web App" application.
string TENANT = "<AAD-directory-domain>";
string CLIENTID = "<AAD_WEB_APP_CLIENT_ID>";
System.Uri ARM_TOKEN_AUDIENCE = new System.Uri(@"https://management.core.windows.net/");
System.Uri ADL_TOKEN_AUDIENCE = new System.Uri(@"https://datalake.azure.net/");
string secret_key = "<AAD_WEB_APP_SECRET_KEY>";
var armCreds = GetCreds_SPI_SecretKey(TENANT, ARM_TOKEN_AUDIENCE, CLIENTID, secret_key);
var adlCreds = GetCreds_SPI_SecretKey(TENANT, ADL_TOKEN_AUDIENCE, CLIENTID, secret_key);
}
O fragmento anterior utiliza uma função GetCreds_SPI_SecretKey
auxiliar . O código desta função auxiliar está disponível aqui no GitHub.
Autenticação serviço a serviço com certificado
Adicione este fragmento na sua aplicação cliente .NET. Substitua os valores do marcador de posição pelos valores obtidos a partir de uma aplicação Web Microsoft Entra (listada como um pré-requisito). Este fragmento permite-lhe autenticar a sua aplicação de forma não interativa com Data Lake Storage Gen1 com o certificado de uma aplicação Web Microsoft Entra. Para obter instruções sobre como criar uma aplicação Microsoft Entra, veja Criar principal de serviço com certificados.
private static void Main(string[] args)
{
// Service principal / application authentication with certificate
// Use the client ID and certificate of an existing AAD "Web App" application.
string TENANT = "<AAD-directory-domain>";
string CLIENTID = "<AAD_WEB_APP_CLIENT_ID>";
System.Uri ARM_TOKEN_AUDIENCE = new System.Uri(@"https://management.core.windows.net/");
System.Uri ADL_TOKEN_AUDIENCE = new System.Uri(@"https://datalake.azure.net/");
var cert = new X509Certificate2(@"d:\cert.pfx", "<certpassword>");
var armCreds = GetCreds_SPI_Cert(TENANT, ARM_TOKEN_AUDIENCE, CLIENTID, cert);
var adlCreds = GetCreds_SPI_Cert(TENANT, ADL_TOKEN_AUDIENCE, CLIENTID, cert);
}
O fragmento anterior utiliza uma função GetCreds_SPI_Cert
auxiliar . O código desta função auxiliar está disponível aqui no GitHub.
Passos seguintes
Neste artigo, aprendeu a utilizar a autenticação serviço a serviço para autenticar com Data Lake Storage Gen1 com o SDK .NET. Agora, pode ver os seguintes artigos que falam sobre como utilizar o SDK .NET para trabalhar com Data Lake Storage Gen1.