Criar um registro de aplicativo Microsoft Entra no Azure Data Explorer
Microsoft Entra autenticação de aplicativo é usada para aplicativos, como um serviço autônomo ou um fluxo agendado, que precisam acessar o Azure Data Explorer sem um usuário presente. Se você estiver se conectando a um banco de dados Data Explorer do Azure usando um aplicativo, como um aplicativo Web, deverá autenticar usando a autenticação de entidade de serviço. Este artigo detalha como criar e registrar uma entidade de serviço Microsoft Entra e autorizá-la a acessar um banco de dados do Azure Data Explorer.
Criar Microsoft Entra registro de aplicativo
Microsoft Entra autenticação de aplicativo requer a criação e o registro de um aplicativo com Microsoft Entra ID. Uma entidade de serviço é criada automaticamente quando o registro do aplicativo é criado em um locatário Microsoft Entra.
O registro do aplicativo pode ser criado no portal do Azure ou programaticamente com a CLI do Azure. Escolha a guia que se ajusta ao seu cenário.
Registre o aplicativo
Entre no portal do Azure e abra a folha Microsoft Entra ID.
Navegue até Registros de aplicativo e selecione Novo registro.
Nomeie o aplicativo, por exemplo, "example-app".
Selecione um tipo de conta com suporte, que determina quem poderá usar o aplicativo.
Em URI de redirecionamento, selecione Web para o tipo de aplicativo que deseja criar. O URI é opcional e, nesse caso, é deixado em branco.
Selecione Registrar.
Configurar a autenticação
Há dois tipos de autenticação disponíveis para as entidades de serviço: autenticação baseada em senha (segredo do aplicativo) e em certificado. A seção a seguir descreve como usar uma autenticação baseada em senha para as credenciais do aplicativo. Como alternativa, você pode usar um certificado X509 para autenticar seu aplicativo. Para obter mais informações, consulte Como configurar Microsoft Entra autenticação baseada em certificado.
Ao longo desta seção, você copiará os seguintes valores: ID do aplicativo e valor da chave. Cole esses valores em algum lugar, como um editor de texto, para uso na etapa configurar as credenciais do cliente para o banco de dados.
Navegue até a folha Visão geral .
Copie a ID do aplicativo (cliente) e a ID do diretório (locatário).
Observação
Você precisará da ID do aplicativo e da ID do locatário para autorizar a entidade de serviço a acessar o banco de dados.
Na folha Certificados & segredos , selecione Novo segredo do cliente.
Insira uma descrição e expiração.
Selecione Adicionar.
Copie o valor da chave.
Observação
Quando você sair dessa página, o valor da chave não poderá mais ser acessado.
Você criou o aplicativo do Microsoft Entra e a entidade de serviço.
Configurar permissões delegadas para o aplicativo – opcional
Se o aplicativo precisar acessar seu banco de dados usando as credenciais do usuário que está chamando, configure as permissões delegadas para seu aplicativo. Por exemplo, se você estiver criando uma API Web e quiser autenticar usando as credenciais do usuário que está chamando sua API.
Se você precisar apenas de acesso a um recurso de dados autorizado, ignore esta seção e continue concedendo a uma entidade de serviço acesso ao banco de dados.
Navegue até a folha Permissões de API do registro do aplicativo.
Selecione Adicionar uma permissão.
Selecione APIs que a minha organização usa.
Pesquise e selecione Azure Data Explorer.
Em Permissões delegadas, selecione a caixa user_impersonation .
Selecione Adicionar Permissões.
Conceder a uma entidade de serviço acesso ao banco de dados
Depois que o registro do aplicativo for criado, você precisará conceder à entidade de serviço correspondente acesso ao banco de dados. O exemplo a seguir fornece acesso ao visualizador. Para outras funções, consulte Gerenciar permissões de banco de dados.
Use os valores de ID do Aplicativo e ID do Locatário conforme copiado em uma etapa anterior.
Execute o seguinte comando no editor de consultas, substituindo os valores de espaço reservado ApplicationID e TenantID pelos valores reais:
.add database <DatabaseName> viewers ('aadapp=<ApplicationID>;<TenantID>') '<Notes>'
Por exemplo:
.add database Logs viewers ('aadapp=1234abcd-e5f6-g7h8-i9j0-1234kl5678mn;9876abcd-e5f6-g7h8-i9j0-1234kl5678mn') 'App Registration'
O último parâmetro é uma cadeia de caracteres que aparece como observações quando você consulta as funções associadas a um banco de dados.
Observação
Depois de criar o registro do aplicativo, pode haver um atraso de vários minutos até que ele possa ser referenciado. Se você receber um erro informando que o aplicativo não foi encontrado, aguarde e tente novamente.
Para obter mais informações sobre funções, consulte Controle de acesso baseado em função.
Usar credenciais de aplicativo para acessar um banco de dados
Use as credenciais do aplicativo para acessar programaticamente seu banco de dados usando a biblioteca de clientes.
. . .
string applicationClientId = "<myClientID>";
string applicationKey = "<myApplicationKey>";
string authority = "<myApplicationTenantID>";
. . .
var kcsb = new KustoConnectionStringBuilder($"https://{clusterName}.kusto.windows.net/{databaseName}")
.WithAadApplicationKeyAuthentication(
applicationClientId,
applicationKey,
authority);
var client = KustoClientFactory.CreateCslQueryProvider(kcsb);
var queryResult = client.ExecuteQuery($"{query}");
Observação
Especifique a ID do aplicativo e a chave do registro do aplicativo (entidade de serviço) criado anteriormente.
Para obter mais informações, consulte Como autenticar com a MSAL (Biblioteca de Autenticação da Microsoft) em aplicativos e usar o Azure Key Vault com o aplicativo Web .NET Core.
Solução de problemas
Erro de recurso inválido
Se o aplicativo for usado para autenticar usuários ou aplicativos para acesso, você deverá configurar permissões delegadas para o aplicativo de serviço. Declare que seu aplicativo pode autenticar usuários ou aplicativos para acesso. Caso isso não seja feito, ocorrerá um erro semelhante ao mostrado a seguir quando uma tentativa de autenticação for feita:
AADSTS650057: Invalid resource. The client has requested access to a resource which is not listed in the requested permissions in the client's application registration...
Você precisará seguir as instruções para configurar permissões delegadas para o aplicativo.
Erro ao habilitar o consentimento do usuário
Seu Microsoft Entra administrador de locatários pode aplicar uma política que impede que os usuários locatários dêem consentimento aos aplicativos. Isso resultará em um erro semelhante ao seguinte quando um usuário tentar entrar no aplicativo:
AADSTS65001: The user or administrator has not consented to use the application with ID '<App ID>' named 'App Name'
Você precisará entrar em contato com o administrador do Microsoft Entra para conceder consentimento a todos os usuários no locatário ou habilitar o consentimento do usuário para seu aplicativo específico.