Autenticar acesso e conexões a recursos do Azure com identidades gerenciadas em Aplicativos Lógicos do Azure
Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)
Se quiser evitar fornecer, armazenar e gerenciar credenciais, segredos ou tokens do Microsoft Entra, você pode usar uma identidade gerenciada para autenticar o acesso ou conexões do fluxo de trabalho do aplicativo lógico para os recursos protegidos do Microsoft Entra. Nos Aplicativos Lógicos do Azure, algumas operações de conector dão suporte ao uso de uma identidade gerenciada quando você precisa autenticar o acesso a recursos protegidos pela ID do Microsoft Entra. O Azure gerencia essa identidade e ajuda a manter as informações de autenticação seguras para que você não precise gerenciar essas informações confidenciais. Para obter mais informações, consulte O que são identidades gerenciadas para recursos do Azure?
Os Aplicativos Lógicos do Azure dão suporte aos seguintes tipos de identidade gerenciada:
A lista a seguir descreve algumas diferenças entre esses tipos de identidade gerenciada:
Um recurso de aplicativo lógico pode habilitar e usar apenas uma identidade exclusiva atribuída ao sistema.
Um recurso de aplicativo lógico pode compartilhar a mesma identidade atribuída pelo usuário em um grupo de outros recursos de aplicativo lógico.
Este guia mostra como concluir as seguintes tarefas:
Habilite e configure a identidade atribuída ao sistema para seu recurso de aplicativo lógico. Este guia fornece um exemplo que mostra como usar a identidade para autenticação.
Crie e configure uma identidade atribuída pelo usuário. Este guia mostra como criar essa identidade usando o portal do Azure ou um modelo do Azure Resource Manager (modelo ARM) e como usar a identidade para autenticação. Para Azure PowerShell, CLI do Azure e API REST do Azure, consulte a seguinte documentação:
Ferramenta Documentação Azure PowerShell Criar identidade atribuída pelo usuário CLI do Azure Criar identidade atribuída pelo usuário API REST do Azure Criar identidade atribuída pelo usuário
Pré-requisitos
Uma conta e subscrição do Azure. Se não tiver uma subscrição, inscreva-se numa conta do Azure gratuita. Tanto a identidade gerenciada quanto o recurso do Azure de destino onde você precisa acessar devem usar a mesma assinatura do Azure.
O recurso do Azure de destino que você deseja acessar. Neste recurso, você deve adicionar a função necessária para que a identidade gerenciada acesse esse recurso em nome do seu aplicativo lógico ou conexão. Para adicionar uma função a uma identidade gerenciada, você precisa de permissões de administrador do Microsoft Entra que possam atribuir funções às identidades no locatário correspondente do Microsoft Entra.
O recurso do aplicativo lógico e o fluxo de trabalho onde você deseja usar o gatilho ou ações que dão suporte a identidades gerenciadas.
Diferenças de identidade gerenciadas entre aplicativos lógicos padrão e de consumo
Com base no tipo de recurso do aplicativo lógico, você pode habilitar a identidade atribuída pelo sistema, a identidade atribuída pelo usuário ou ambas ao mesmo tempo:
Aplicação lógica | Environment | Suporte de identidade gerenciado |
---|---|---|
Consumo | - Aplicativos Lógicos do Azure Multitenant | - Você pode habilitar a identidade atribuída pelo sistema ou a identidade atribuída pelo usuário, mas não ambas em seu aplicativo lógico. - Você pode usar a identidade gerenciada no nível de recursos do aplicativo lógico e no nível de conexão. - Se você criar e habilitar a identidade atribuída pelo usuário, seu aplicativo lógico poderá ter apenas uma identidade atribuída pelo usuário de cada vez. |
Standard | - Aplicativos Lógicos do Azure de locatário único - Ambiente de Serviço de Aplicativo v3 (ASEv3) - Aplicativos lógicos habilitados para Azure Arc |
- Você pode habilitar a identidade atribuída pelo sistema, que é habilitada por padrão, e a identidade atribuída pelo usuário ao mesmo tempo. Você também pode adicionar várias identidades atribuídas pelo usuário ao seu aplicativo lógico. No entanto, seu aplicativo lógico pode usar apenas uma identidade gerenciada de cada vez. - Você pode usar a identidade gerenciada no nível de recursos do aplicativo lógico e no nível de conexão. |
Para obter informações sobre limites de identidade gerenciada em Aplicativos Lógicos do Azure, consulte Limites em identidades gerenciadas para aplicativos lógicos. Para obter mais informações sobre os tipos de recursos e ambientes do aplicativo lógico Consumo e Padrão, consulte a seguinte documentação:
Onde você pode usar uma identidade gerenciada
Nos Aplicativos Lógicos do Azure, somente operações de conector internas e gerenciadas específicas que dão suporte a OAuth com ID do Microsoft Entra podem usar uma identidade gerenciada para autenticação. As tabelas a seguir fornecem apenas uma seleção de exemplo. Para obter uma lista mais completa, consulte a seguinte documentação:
Tipos de autenticação para gatilhos e ações que suportam autenticação
Serviços do Azure que dão suporte a identidades gerenciadas para recursos do Azure
Serviços do Azure que suportam a autenticação do Microsoft Entra
Para um fluxo de trabalho de aplicativo lógico de consumo, a tabela a seguir lista conectores de exemplo que oferecem suporte à autenticação de identidade gerenciada:
Tipo de conector | Conectores suportados |
---|---|
Incorporada | - Gerenciamento de API do Azure - Serviços de Aplicativo do Azure - Azure Functions - HTTP - HTTP + Webhook Observação: as operações HTTP podem autenticar conexões com contas de Armazenamento do Azure por trás de firewalls do Azure com a identidade atribuída ao sistema. No entanto, as operações HTTP não suportam a identidade atribuída pelo usuário para autenticar as mesmas conexões. |
Não gerido | - Serviço de Aplicativo do Azure - Azure Automation - Armazenamento de Blobs do Azure - Instância de contêiner do Azure - Azure Cosmos DB - Azure Data Explorer - Azure Data Factory - Azure Data Lake - Gêmeos Digitais do Azure - Grade de Eventos do Azure - Hubs de Eventos do Azure - Azure IoT Central V2 - Azure Key Vault -Azure Monitor Logs - Filas do Azure - Azure Resource Manager - Barramento de Serviço do Azure - Azure Sentinel - Armazenamento de Tabela do Azure - VM do Azure - SQL Server |
Habilitar a identidade atribuída ao sistema no portal do Azure
Em um recurso de aplicativo lógico de consumo, você deve habilitar manualmente a identidade atribuída ao sistema.
No portal do Azure, abra o recurso do aplicativo Lógica de consumo.
No menu do aplicativo lógico, em Configurações, selecione Identidade.
Na página Identidade, em Sistema atribuído, selecione Ao>salvar. Quando o Azure solicitar a confirmação, selecione Sim.
Nota
Se você receber um erro informando que pode ter apenas uma única identidade gerenciada, seu recurso de aplicativo lógico já está associado à identidade atribuída pelo usuário. Antes de adicionar a identidade atribuída pelo sistema, você deve primeiro remover a identidade atribuída pelo usuário do recurso do aplicativo lógico.
Seu recurso de aplicativo lógico agora pode usar a identidade atribuída ao sistema. Essa identidade é registrada com a ID do Microsoft Entra e é representada por uma ID de objeto.
Property valor Description ID do objeto (principal) <identidade-recurso-ID> Um GUID (Identificador Global Exclusivo) que representa a identidade atribuída pelo sistema para seu aplicativo lógico em um locatário do Microsoft Entra. Agora, siga as etapas que dão à identidade atribuída pelo sistema acesso ao recurso mais adiante neste guia.
Habilitar a identidade atribuída ao sistema em um modelo ARM
Para automatizar a criação e a implantação de recursos de aplicativos lógicos, você pode usar um modelo ARM. Para habilitar a identidade atribuída pelo sistema para seu recurso de aplicativo lógico no modelo, adicione o objeto identity e a propriedade filho type à definição de recurso do aplicativo lógico no modelo, por exemplo:
{
"apiVersion": "2016-06-01",
"type": "Microsoft.logic/workflows",
"name": "[variables('logicappName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "SystemAssigned"
},
"properties": {},
<...>
}
Quando o Azure cria sua definição de recurso de aplicativo lógico, o objeto de identidade obtém as seguintes outras propriedades:
"identity": {
"type": "SystemAssigned",
"principalId": "<principal-ID>",
"tenantId": "<Entra-tenant-ID>"
}
Propriedade (JSON) | valor | Description |
---|---|---|
principalId | <ID principal> | O GUID (Identificador Global Exclusivo) do objeto principal de serviço para a identidade gerenciada que representa seu aplicativo lógico no locatário do Microsoft Entra. Esse GUID às vezes aparece como um "object ID" ou objectID. |
tenantId | <Microsoft-Entra-ID-inquilino-ID> | O GUID (Identificador Globalmente Exclusivo) que representa o locatário do Microsoft Entra onde o aplicativo lógico agora é membro. Dentro do locatário do Microsoft Entra, a entidade de serviço tem o mesmo nome que a instância do aplicativo lógico. |
Criar identidade atribuída pelo usuário no portal do Azure
Antes de habilitar a identidade atribuída pelo usuário em um recurso de aplicativo lógico de consumo ou recurso de aplicativo lógico padrão, você deve criar essa identidade como um recurso separado do Azure.
Na caixa de pesquisa do portal do Azure, insira identidades gerenciadas. Na lista de resultados, selecione Identidades gerenciadas.
Na barra de ferramentas da página Identidades Gerenciadas , selecione Criar.
Forneça informações sobre sua identidade gerenciada e selecione Revisar + Criar, por exemplo:
Property Necessário Valor Description Subscrição Sim <Azure-subscrição-nome> O nome da assinatura do Azure Grupo de recursos Sim <Azure-recurso-grupo-nome> O nome do grupo de recursos do Azure. Crie um novo grupo ou selecione um grupo existente. Este exemplo cria um novo grupo chamado fabrikam-managed-identities-RG. Região Sim <Azure-region> A região do Azure onde armazenar informações sobre seu recurso. Este exemplo usa West US. Nome Sim <user-assigned-identity-name> O nome a ser atribuído pelo usuário. Este exemplo usa Fabrikam-user-assigned-identity. Depois que o Azure valida as informações, o Azure cria sua identidade gerenciada. Agora você pode adicionar a identidade atribuída pelo usuário ao recurso do aplicativo lógico.
Adicionar identidade atribuída pelo usuário ao aplicativo lógico no portal do Azure
No portal do Azure, abra o recurso do aplicativo Lógica de consumo.
No menu do aplicativo lógico, em Configurações, selecione Identidade.
Na página Identidade, selecione Usuário atribuído e, em seguida, selecione Adicionar.
No painel Adicionar identidade gerenciada atribuída ao usuário, siga estas etapas:
Na lista Selecione uma assinatura, selecione sua assinatura do Azure.
Na lista que tem todas as identidades gerenciadas em sua assinatura, selecione a identidade atribuída pelo usuário desejada. Para filtrar a lista, na caixa de pesquisa Identidades gerenciadas atribuídas ao usuário, digite o nome da identidade ou do grupo de recursos.
Quando terminar, selecione Adicionar.
Nota
Se você receber um erro informando que pode ter apenas uma única identidade gerenciada, seu aplicativo lógico já está associado à identidade atribuída pelo sistema. Antes de adicionar a identidade atribuída pelo usuário, você precisa primeiro desabilitar a identidade atribuída pelo sistema.
Seu aplicativo lógico agora está associado à identidade atribuída pelo usuário.
Agora, siga as etapas que dão à identidade acesso ao recurso mais adiante neste guia.
Criar identidade atribuída pelo usuário em um modelo ARM
Para automatizar a criação e a implantação de recursos de aplicativos lógicos, você pode usar um modelo ARM. Esses modelos oferecem suporte a identidades atribuídas pelo usuário para autenticação.
Na seção de recursos do modelo, a definição de recursos do aplicativo lógico requer os seguintes itens:
Um objeto de identidade com a propriedade type definida como UserAssigned
Um objeto filho userAssignedIdentities que especifica o recurso e o nome atribuídos pelo usuário
Este exemplo mostra um recurso de aplicativo lógico de consumo e uma definição de fluxo de trabalho para uma solicitação HTTP PUT com um objeto de identidade não parametrizado. A resposta à solicitação PUT e a operação GET subsequente também incluem este objeto de identidade :
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {<template-parameters>},
"resources": [
{
"apiVersion": "2016-06-01",
"type": "Microsoft.logic/workflows",
"name": "[variables('logicappName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>": {}
}
},
"properties": {
"definition": {<logic-app-workflow-definition>}
},
"parameters": {},
"dependsOn": []
},
],
"outputs": {}
}
Se o modelo também incluir a definição de recurso da identidade gerenciada, você poderá parametrizar o objeto de identidade . O exemplo a seguir mostra como o objeto filho userAssignedIdentities faz referência a uma variável userAssignedIdentityName que você define na seção de variáveis do modelo. Essa variável faz referência ao ID do recurso para sua identidade atribuída pelo usuário.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"Template_LogicAppName": {
"type": "string"
},
"Template_UserAssignedIdentityName": {
"type": "securestring"
}
},
"variables": {
"logicAppName": "[parameters(`Template_LogicAppName')]",
"userAssignedIdentityName": "[parameters('Template_UserAssignedIdentityName')]"
},
"resources": [
{
"apiVersion": "2016-06-01",
"type": "Microsoft.logic/workflows",
"name": "[variables('logicAppName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]": {}
}
},
"properties": {
"definition": {<logic-app-workflow-definition>}
},
"parameters": {},
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]"
]
},
{
"apiVersion": "2018-11-30",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[parameters('Template_UserAssignedIdentityName')]",
"location": "[resourceGroup().location]",
"properties": {}
}
]
}
Dar acesso de identidade aos recursos
Antes de poder usar a identidade gerenciada do seu aplicativo lógico para autenticação, você precisa configurar o acesso para a identidade no recurso do Azure de destino onde deseja usar a identidade. A maneira como você configura o acesso varia de acordo com o recurso de destino.
Nota
Quando uma identidade gerenciada tem acesso a um recurso do Azure na mesma assinatura, a identidade pode acessar somente esse recurso. No entanto, em alguns gatilhos e ações que dão suporte a identidades gerenciadas, você precisa primeiro selecionar o grupo de recursos do Azure que contém o recurso de destino. Se a identidade não tiver acesso no nível do grupo de recursos, nenhum recurso nesse grupo será listado, apesar de ter acesso ao recurso de destino.
Para lidar com esse comportamento, você também deve dar à identidade acesso ao grupo de recursos, não apenas ao recurso. Da mesma forma, se você tiver que selecionar sua assinatura antes de poder selecionar o recurso de destino, deverá conceder à identidade acesso à assinatura.
Em alguns casos, você pode precisar da identidade para obter acesso ao recurso associado. Por exemplo, suponha que você tenha uma identidade gerenciada para um aplicativo lógico que precisa de acesso para atualizar as configurações do aplicativo para esse mesmo aplicativo lógico a partir de um fluxo de trabalho. Você deve conceder a essa identidade acesso ao aplicativo lógico associado.
Por exemplo, para acessar uma conta de armazenamento de Blob do Azure ou um cofre de chaves do Azure com sua identidade gerenciada, você precisa configurar o controle de acesso baseado em função do Azure (RBAC do Azure) e atribuir a função apropriada para essa identidade à conta de armazenamento ou ao cofre de chaves, respectivamente.
As etapas nesta seção descrevem como atribuir acesso baseado em função usando o portal do Azure e o modelo do Azure Resource Manager (modelo ARM). Para Azure PowerShell, CLI do Azure e API REST do Azure, consulte a seguinte documentação:
Ferramenta | Documentação |
---|---|
Azure PowerShell | Adicionar atribuição de função |
CLI do Azure | Adicionar atribuição de função |
API REST do Azure | Adicionar atribuição de função |
Para um cofre de chaves do Azure, você também tem a opção de criar uma política de acesso para sua identidade gerenciada no cofre de chaves e atribuir as permissões apropriadas para essa identidade nesse cofre de chaves. As etapas posteriores nesta seção descrevem como concluir essa tarefa usando o portal do Azure. Para modelos do Resource Manager, PowerShell e CLI do Azure, consulte a seguinte documentação:
Ferramenta | Documentação |
---|---|
Modelo do Azure Resource Manager (modelo do ARM) | Definição de recursos da política de acesso ao Cofre da Chave |
Azure PowerShell | Atribuir uma política de acesso do Key Vault |
CLI do Azure | Atribuir uma política de acesso do Key Vault |
Atribuir acesso baseado em função a uma identidade gerenciada usando o portal do Azure
Para usar uma identidade gerenciada para autenticação, alguns recursos do Azure, como contas de armazenamento do Azure, exigem que você atribua essa identidade a uma função que tenha as permissões apropriadas no recurso de destino. Outros recursos do Azure, como cofres de chaves do Azure, oferecem suporte a várias opções, para que você possa escolher o acesso baseado em função ou uma política de acesso que tenha as permissões apropriadas no recurso de destino para essa identidade.
No portal do Azure, abra o recurso onde você deseja usar a identidade.
No menu de recursos, selecione Controle de acesso (IAM)>Adicionar>atribuição de função.
Nota
Se a opção Adicionar atribuição de função estiver desativada, você não terá permissões para atribuir funções. Para obter mais informações, veja Funções incorporadas do Microsoft Entra.
Atribua a função necessária à sua identidade gerenciada. Na guia Função, atribua uma função que dê à sua identidade o acesso necessário ao recurso atual.
Neste exemplo, atribua a função chamada Colaborador de Dados de Blob de Armazenamento, que inclui acesso de gravação para blobs em um contêiner de Armazenamento do Azure. Para obter mais informações sobre funções específicas de contêiner de armazenamento, consulte Funções que podem acessar blobs em um contêiner de Armazenamento do Azure.
Em seguida, escolha a identidade gerenciada à qual deseja atribuir a função. Em Atribuir acesso a, selecione Identidade>gerenciada Adicionar membros.
Com base no tipo de identidade gerenciada, selecione ou forneça os seguintes valores:
Type Instância de serviço do Azure Subscrição Membro Atribuído pelo sistema Aplicação Lógica <Azure-subscrição-nome> <nome-da-sua-aplicação-lógica> Atribuído pelo utilizador Não aplicável <Azure-subscrição-nome> <seu-usuário-atribuído-identidade-nome> Para obter mais informações sobre como atribuir funções, consulte Atribuir funções usando o portal do Azure.
Depois de terminar, você pode usar a identidade para autenticar o acesso a gatilhos e ações que oferecem suporte a identidades gerenciadas.
Para obter mais informações gerais sobre essa tarefa, consulte Atribuir um acesso de identidade gerenciado a um recurso do Azure ou outro recurso.
Criar uma política de acesso usando o portal do Azure
Para usar uma identidade gerenciada para autenticação, outros recursos do Azure também oferecem suporte ou exigem que você crie uma política de acesso que tenha as permissões apropriadas no recurso de destino para essa identidade. Outros recursos do Azure, como contas de armazenamento do Azure, exigem que você atribua essa identidade a uma função que tenha as permissões apropriadas no recurso de destino.
No portal do Azure, abra o recurso de destino onde você deseja usar a identidade. Este exemplo usa um cofre de chaves do Azure como o recurso de destino.
No menu de recursos, selecione Criar políticas>de acesso, que abre o painel Criar uma política de acesso.
Nota
Se o recurso não tiver a opção Políticas de acesso , tente atribuir uma atribuição de função.
Na guia Permissões, selecione as permissões necessárias de que a identidade precisa para acessar o recurso de destino.
Por exemplo, para usar a identidade com a operação de segredos de lista do conector gerenciado do Cofre de Chaves do Azure, a identidade precisa de permissões de lista. Portanto, na coluna Permissões secretas, selecione Lista.
Quando estiver pronto, selecione Avançar. Na guia Principal, localize e selecione a identidade gerenciada, que é uma identidade atribuída pelo usuário neste exemplo.
Ignore a etapa opcional Aplicativo, selecione Avançar e conclua a criação da política de acesso.
A próxima seção mostra como usar uma identidade gerenciada com um gatilho ou ação para autenticar o acesso. O exemplo continua com as etapas de uma seção anterior onde você configura o acesso para uma identidade gerenciada usando RBAC e uma conta de armazenamento do Azure como exemplo. No entanto, as etapas gerais para usar uma identidade gerenciada para autenticação são as mesmas.
Autenticar o acesso com identidade gerenciada
Depois de habilitar a identidade gerenciada para seu recurso de aplicativo lógico e conceder a essa identidade acesso ao recurso ou serviço de destino do Azure, você poderá usar essa identidade em gatilhos e ações que dão suporte a identidades gerenciadas.
Importante
Se você tiver uma função do Azure onde deseja usar a identidade atribuída ao sistema, primeiro habilite a autenticação para o Azure Functions.
As etapas a seguir mostram como usar a identidade gerenciada com um gatilho ou ação usando o portal do Azure. Para especificar a identidade gerenciada na definição JSON subjacente de um gatilho ou ação, consulte Autenticação de identidade gerenciada.
No portal do Azure, abra o recurso do aplicativo Lógica de consumo.
Se ainda não o fez, adicione o gatilho ou a ação que suporta identidades gerenciadas.
Nota
Nem todas as operações do conector oferecem suporte para adicionar um tipo de autenticação. Para obter mais informações, consulte Tipos de autenticação para gatilhos e ações que oferecem suporte à autenticação.
No gatilho ou ação que você adicionou, siga estas etapas:
Operações de conector integradas que suportam autenticação de identidade gerenciada
Essas etapas continuam usando a ação HTTP como exemplo.
Na lista Parâmetros avançados, adicione a propriedade Authentication, se a propriedade ainda não aparecer.
Agora, a propriedade Authentication e a lista Authentication Type aparecem na ação.
Na lista Tipo de autenticação, selecione Identidade gerenciada.
A seção Autenticação agora mostra as seguintes opções:
Uma lista de Identidades Gerenciadas a partir da qual você pode selecionar uma identidade gerenciada específica
A propriedade Audience aparece em gatilhos e ações específicos para que você possa definir a ID do recurso ou serviço de destino do Azure. Caso contrário, por padrão, a propriedade Audience usa a ID do
https://management.azure.com/
recurso, que é a ID do recurso para o Gerenciador de Recursos do Azure.
Na lista Identidade gerenciada, selecione a identidade que deseja usar, por exemplo:
Nota
A opção selecionada por padrão é a identidade gerenciada atribuída ao sistema, mesmo quando você não tem nenhuma identidade gerenciada habilitada.
Para usar com êxito uma identidade gerenciada, você deve primeiro habilitar essa identidade em seu aplicativo lógico. Em um aplicativo de lógica de consumo, você pode ter a identidade gerenciada atribuída ao sistema ou ao usuário, mas não ambas.
Para obter mais informações, consulte Exemplo: autenticar gatilho ou ação interna com uma identidade gerenciada.
Operações de conector gerenciado que suportam autenticação de identidade gerenciada
No painel Criar Conexão, na lista Autenticação, selecione Identidade Gerenciada, por exemplo:
No painel seguinte, para Nome da Conexão, forneça um nome a ser usado para a conexão.
Para o tipo de autenticação, escolha uma das seguintes opções com base no conector gerenciado:
Autenticação única: esses conectores suportam apenas um tipo de autenticação, que é a identidade gerenciada neste caso.
Na lista Identidade gerenciada, selecione a identidade gerenciada habilitada no momento.
Quando estiver pronto, selecione Criar novo.
Multiautenticação: esses conectores suportam vários tipos de autenticação, mas você pode selecionar e usar apenas um tipo de cada vez.
Essas etapas continuam usando uma ação de Armazenamento de Blob do Azure como exemplo.
Para obter mais informações, consulte Exemplo: autenticar gatilho ou ação do conector gerenciado com uma identidade gerenciada.
Exemplo: autenticar gatilho ou ação interna com uma identidade gerenciada
O gatilho ou ação HTTP interna pode usar a identidade atribuída ao sistema que você habilita no recurso do aplicativo lógico. Em geral, o gatilho ou ação HTTP usa as seguintes propriedades para especificar o recurso ou entidade que você deseja acessar:
Property | Necessário | Description |
---|---|---|
Método | Sim | O método HTTP usado pela operação que você deseja executar |
URI | Sim | A URL do ponto de extremidade para acessar o recurso ou entidade do Azure de destino. A sintaxe do URI geralmente inclui a ID do recurso para o recurso ou serviço do Azure de destino. |
Cabeçalhos | Não | Quaisquer valores de cabeçalho que você precise ou queira incluir na solicitação de saída, como o tipo de conteúdo |
Consultas | Não | Quaisquer parâmetros de consulta que você precise ou queira incluir na solicitação. Por exemplo, parâmetros de consulta para uma operação específica ou para a versão da API da operação que você deseja executar. |
Autenticação | Sim | O tipo de autenticação a ser usado para autenticar o acesso ao recurso ou serviço de destino do Azure |
Como um exemplo específico, suponha que você queira executar a operação de Blob de Instantâneo em um blob na conta de Armazenamento do Azure onde você configurou anteriormente o acesso para sua identidade. No entanto, o conector de Armazenamento de Blob do Azure não oferece atualmente essa operação. Em vez disso, você pode executar essa operação usando a ação HTTP ou outra operação da API REST do Serviço de Blob.
Importante
Para acessar contas de armazenamento do Azure atrás de firewalls usando o conector de Armazenamento de Blob do Azure e identidades gerenciadas, certifique-se de que você também configurou sua conta de armazenamento com a exceção que permite o acesso por serviços confiáveis da Microsoft.
Para executar a operação Blob de instantâneo, a ação HTTP especifica as seguintes propriedades:
Property | Necessário | Valor de exemplo | Description |
---|---|---|---|
URI | Sim | https://<storage-account-name>/<folder-name>/{name} |
A ID de recurso para um arquivo de Armazenamento de Blob do Azure no ambiente Global (público) do Azure, que usa essa sintaxe |
Método | Sim | PUT |
O método HTTP que a operação Snapshot Blob usa |
Cabeçalhos | Para o Armazenamento do Azure | x-ms-blob-type = BlockBlob x-ms-version = 2024-05-05 x-ms-date = formatDateTime(utcNow(),'r') |
Os x-ms-blob-type valores , x-ms-version e x-ms-date cabeçalho são necessários para operações de Armazenamento do Azure. Importante: Em solicitações de ação e gatilho HTTP de saída para o Armazenamento do Azure, o cabeçalho requer a x-ms-version propriedade e a versão da API para a operação que você deseja executar. A x-ms-date deve ser a data atual. Caso contrário, o fluxo de trabalho falhará com um 403 FORBIDDEN erro. Para obter a data atual no formato necessário, você pode usar a expressão no valor de exemplo. Para obter mais informações, consulte a seguinte documentação: - Cabeçalhos de solicitação - Blob de instantâneo - Controle de versão para serviços de Armazenamento do Azure |
Consultas | Somente para a operação de Blob de Instantâneo | comp = snapshot |
O nome e o valor do parâmetro de consulta para a operação. |
No designer de fluxo de trabalho, adicione qualquer gatilho desejado e adicione a ação HTTP .
O exemplo a seguir mostra uma ação HTTP de exemplo com todos os valores de propriedade descritos anteriormente a serem usados para a operação de Blob de Instantâneo:
Na ação HTTP, adicione a propriedade Authentication. Na lista Parâmetros avançados , selecione Autenticação.
A seção Autenticação agora aparece na sua ação HTTP .
Nota
Nem todos os gatilhos e ações suportam permitir que você adicione um tipo de autenticação. Para obter mais informações, consulte Tipos de autenticação para gatilhos e ações que oferecem suporte à autenticação.
Na lista Tipo de autenticação, selecione Identidade gerenciada.
Na lista Identidade Gerenciada, selecione uma das opções disponíveis com base no seu cenário.
Se você configurar a identidade atribuída ao sistema, selecione Identidade gerenciada atribuída ao sistema.
Se você configurar a identidade atribuída pelo usuário, selecione essa identidade.
Este exemplo continua com a identidade gerenciada atribuída ao sistema.
Em alguns gatilhos e ações, a propriedade Audience aparece para que você possa definir a ID do recurso para o recurso ou serviço do Azure de destino.
Por exemplo, para autenticar o acesso a um recurso do Cofre da Chave na nuvem global do Azure, você deve definir a propriedade Audiência exatamente como a seguinte ID de recurso:
https://vault.azure.net
Se você não definir a propriedade Audience , por padrão, a propriedade Audience usará a ID do
https://management.azure.com/
recurso, que é a ID do recurso para o Gerenciador de Recursos do Azure.Importante
Certifique-se de que a ID do recurso de destino corresponde exatamente ao valor esperado pela ID do Microsoft Entra. Caso contrário, você pode receber um
400 Bad Request
erro ou um401 Unauthorized
erro. Portanto, se o ID do recurso incluir barras à direita, certifique-se de incluí-las. Caso contrário, não os inclua.Por exemplo, a ID do recurso para todas as contas de Armazenamento de Blob do Azure requer uma barra à direita. No entanto, o ID do recurso para uma conta de armazenamento específica não requer uma barra à direita. Verifique as IDs de recurso para os serviços do Azure que suportam a ID do Microsoft Entra.
Este exemplo define a propriedade Audience para
https://storage.azure.com/
que os tokens de acesso usados para autenticação sejam válidos para todas as contas de armazenamento. No entanto, você também pode especificar a URL do serviço raiz,https://<your-storage-account>.blob.core.windows.net
, para uma conta de armazenamento específica.Para obter mais informações sobre como autorizar o acesso com o Microsoft Entra ID para Armazenamento do Azure, consulte a seguinte documentação:
Continue criando o fluxo de trabalho da maneira desejada.
Exemplo: autenticar o gatilho ou ação do conector gerenciado com uma identidade gerenciada
O conector gerenciado do Azure Resource Manager tem uma ação chamada Ler um recurso, que pode usar a identidade gerenciada que você habilita em seu recurso de aplicativo lógico. Este exemplo mostra como usar a identidade gerenciada atribuída ao sistema com um conector gerenciado.
No designer de fluxo de trabalho, adicione a ação do Azure Resource Manager chamada Ler um recurso.
No painel Criar Ligação, na lista Autenticação, selecione Identidade Gerida e, em seguida, selecione Iniciar sessão.
Nota
Em outros conectores, a lista Tipo de Autenticação mostra a Identidade Gerenciada de Aplicativos Lógicos, portanto, selecione esta opção.
Forneça um nome para a conexão e selecione a identidade gerenciada que você deseja usar.
Se você habilitou a identidade atribuída ao sistema, a lista Identidade gerenciada selecionará automaticamente a identidade gerenciada atribuída ao sistema. Se, em vez disso, você tiver habilitado uma identidade atribuída pelo usuário, a lista selecionará automaticamente a identidade atribuída pelo usuário.
Neste exemplo, a identidade gerenciada atribuída ao sistema é a única seleção disponível.
Nota
Se a identidade gerenciada não estiver habilitada quando você tentar criar ou alterar a conexão, ou se a identidade gerenciada tiver sido removida enquanto uma conexão habilitada para identidade gerenciada ainda existir, você receberá um erro dizendo que você deve habilitar a identidade e conceder acesso ao recurso de destino.
Quando estiver pronto, selecione Criar novo.
Depois que o designer cria a conexão com êxito, ele pode buscar quaisquer valores dinâmicos, conteúdo ou esquema usando a autenticação de identidade gerenciada.
Continue criando o fluxo de trabalho da maneira desejada.
Definição de recursos de aplicativo lógico e conexões que usam uma identidade gerenciada
Uma conexão que habilita e usa uma identidade gerenciada é um tipo de conexão especial que funciona apenas com uma identidade gerenciada. No tempo de execução, a conexão usa a identidade gerenciada habilitada no recurso do aplicativo lógico. Os Aplicativos Lógicos do Azure verificam se quaisquer operações de conector gerenciado no fluxo de trabalho estão configuradas para usar a identidade gerenciada e se todas as permissões necessárias existem para usar a identidade gerenciada para acessar os recursos de destino especificados pelas operações do conector. Se essa verificação for bem-sucedida, os Aplicativos Lógicos do Azure recuperarão o token do Microsoft Entra associado à identidade gerenciada, usarão essa identidade para autenticar o acesso ao recurso do Azure de destino e executarão as operações configuradas no fluxo de trabalho.
Em um recurso de aplicativo lógico de consumo, a configuração de conexão é salva no objeto da definição de parameters
recurso, que contém o $connections
objeto que inclui ponteiros para a ID de recurso da conexão junto com a ID de recurso da identidade gerenciada quando a identidade atribuída pelo usuário está habilitada.
Este exemplo mostra a configuração do parameters
objeto quando o aplicativo lógico habilita a identidade atribuída ao sistema:
"parameters": {
"$connections": {
"value": {
"<action-name>": {
"connectionId": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>",
"connectionName": "<connector-name>",
"connectionProperties": {
"authentication": {
"type": "ManagedServiceIdentity"
}
},
"id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/<managed-connector-type>"
}
}
}
}
Este exemplo mostra a configuração do parameters
objeto quando o aplicativo lógico habilita a identidade gerenciada atribuída pelo usuário:
"parameters": {
"$connections": {
"value": {
"<action-name>": {
"connectionId": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>",
"connectionName": "<connector-name>",
"connectionProperties": {
"authentication": {
"type": "ManagedServiceIdentity",
"identity": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/microsoft.managedidentity/userassignedidentities/<managed-identity-name>"
}
},
"id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/<managed-connector-type>"
}
}
}
}
Modelo ARM para conexões de API e identidades gerenciadas
Se você usar um modelo ARM para automatizar a implantação e seu fluxo de trabalho incluir uma conexão de API, que é criada por um conector gerenciado que usa uma identidade gerenciada, você terá uma etapa extra a ser executada.
Em um modelo ARM, a definição de recurso do conector subjacente difere com base no fato de você ter um recurso de aplicativo lógico Consumo ou Padrão e se o conector mostra opções de autenticação única ou multiautenticação.
Os exemplos a seguir se aplicam aos recursos do aplicativo lógico de consumo e mostram como a definição de recurso do conector subjacente difere entre um conector de autenticação única e um conector de multiautenticação.
Autenticação única
Este exemplo mostra a definição de recurso de conexão subjacente para uma ação de conector que suporta apenas um tipo de autenticação e usa uma identidade gerenciada em um fluxo de trabalho de aplicativo lógico de consumo onde a definição inclui os seguintes atributos:
A
kind
propriedade é definida comoV1
para um aplicativo lógico de consumo.A propriedade
parameterValueType
está definida comoAlternative
.
{
"type": "Microsoft.Web/connections",
"apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
"name": "[variables('connections_<connector-name>_name')]",
"location": "[parameters('location')]",
"kind": "V1",
"properties": {
"alternativeParameterValues": {},
"api": {
"id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), 'azureautomation')]"
},
"authenticatedUser": {},
"connectionState": "Enabled",
"customParameterValues": {},
"displayName": "[variables('connections_<connector-name>_name')]",
"parameterValueSet": {},
"parameterValueType": "Alternative"
}
},
Multi-autenticação
Este exemplo mostra a definição de recurso de conexão subjacente para uma ação de conector que oferece suporte a vários tipos de autenticação e usa uma identidade gerenciada em um fluxo de trabalho de aplicativo lógico de consumo, onde a definição inclui os seguintes atributos:
A
kind
propriedade é definida comoV1
para um aplicativo lógico de consumo.O
parameterValueSet
objeto inclui umaname
propriedade definida comomanagedIdentityAuth
e umavalues
propriedade definida como um objeto vazio.
{
"type": "Microsoft.Web/connections",
"apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
"name": "[variables('connections_<connector-name>_name')]",
"location": "[parameters('location')]",
"kind": "V1",
"properties": {
"alternativeParameterValues":{},
"api": {
"id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), 'azureblob')]"
},
"authenticatedUser": {},
"connectionState": "Enabled",
"customParameterValues": {},
"displayName": "[variables('connections_<connector-name>_name')]",
"parameterValueSet":{
"name": "managedIdentityAuth",
"values": {}
},
"parameterValueType": "Alternative"
}
}
Configurar o controle avançado sobre a autenticação de conexão de API
Quando o fluxo de trabalho do aplicativo lógico padrão usa uma conexão de API, que é criada por um conector gerenciado, os Aplicativos Lógicos do Azure se comunicam com o recurso de destino, como sua conta de email, cofre de chaves e assim por diante, usando duas conexões:
A conexão #1 é configurada com autenticação para o armazenamento de token interno.
A conexão #2 é configurada com autenticação para o recurso de destino.
No entanto, quando um fluxo de trabalho de aplicativo lógico de consumo usa uma conexão de API, a conexão #1 é abstraída de você sem nenhuma opção de configuração. Com o recurso Aplicativo lógico padrão, você tem mais controle sobre seu aplicativo lógico e fluxos de trabalho. Por padrão, a conexão #1 é configurada automaticamente para usar a identidade atribuída pelo sistema.
Se o seu cenário exigir um controle mais preciso sobre a autenticação de conexões de API, você pode, opcionalmente, alterar a autenticação da conexão #1 da identidade padrão atribuída pelo sistema para qualquer identidade atribuída pelo usuário que você adicionou ao seu aplicativo lógico. Essa autenticação se aplica a cada conexão de API, para que você possa misturar identidades atribuídas ao sistema e ao usuário em diferentes conexões com o mesmo recurso de destino.
No arquivo connections.json do aplicativo de lógica padrão, que armazena informações sobre cada conexão de API, cada definição de conexão tem duas authentication
seções, por exemplo:
"keyvault": {
"api": {
"id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault"
},
"authentication": {
"type": "ManagedServiceIdentity",
},
"connection": {
"id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>"
},
"connectionProperties": {
"authentication": {
"audience": "https://vault.azure.net",
"type": "ManagedServiceIdentity"
}
},
"connectionRuntimeUrl": "<connection-runtime-URL>"
}
A primeira
authentication
seção mapeia para a conexão #1.Esta seção descreve a autenticação usada para se comunicar com o armazenamento de token interno. No passado, esta seção sempre foi definida para
ManagedServiceIdentity
um aplicativo que implanta no Azure e não tinha opções configuráveis.A segunda
authentication
seção mapeia para a conexão #2.Esta seção descreve que a autenticação usada para se comunicar com o recurso de destino pode variar, com base no tipo de autenticação selecionado para essa conexão.
Por que alterar a autenticação para o armazenamento de tokens?
Em alguns cenários, talvez você queira compartilhar e usar a mesma conexão de API em vários recursos do aplicativo lógico, mas não adicionar a identidade atribuída ao sistema para cada recurso do aplicativo lógico à política de acesso do recurso de destino.
Em outros cenários, talvez você não queira ter a identidade atribuída ao sistema totalmente configurada em seu aplicativo lógico, para que possa alterar a autenticação para uma identidade atribuída pelo usuário e desabilitar completamente a identidade atribuída ao sistema.
Alterar a autenticação para o armazenamento de tokens
No portal do Azure, abra seu recurso de aplicativo lógico padrão.
No menu de recursos, em Fluxos de trabalho, selecione Conexões.
No painel Conexões, selecione Exibição JSON.
No editor JSON, localize a
managedApiConnections
seção que contém as conexões de API em todos os fluxos de trabalho em seu recurso de aplicativo lógico.Encontre a conexão onde você deseja adicionar uma identidade gerenciada atribuída pelo usuário.
Por exemplo, suponha que seu fluxo de trabalho tenha uma conexão do Cofre da Chave do Azure:
"keyvault": { "api": { "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault" }, "authentication": { "type": "ManagedServiceIdentity" }, "connection": { "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>" }, "connectionProperties": { "authentication": { "audience": "https://vault.azure.net", "type": "ManagedServiceIdentity" } }, "connectionRuntimeUrl": "<connection-runtime-URL>" }
Na definição de conexão, conclua as seguintes etapas:
Encontre a primeira
authentication
seção. Se nenhumaidentity
propriedade existir nestaauthentication
seção, o aplicativo lógico usará implicitamente a identidade atribuída ao sistema.Adicione uma
identity
propriedade usando o exemplo nesta etapa.Defina o valor da propriedade como a ID do recurso para a identidade atribuída pelo usuário.
"keyvault": { "api": { "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault" }, "authentication": { "type": "ManagedServiceIdentity", // Add "identity" property here "identity": "/subscriptions/<Azure-subscription-ID>/resourcegroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-resource-ID>" }, "connection": { "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>" }, "connectionProperties": { "authentication": { "audience": "https://vault.azure.net", "type": "ManagedServiceIdentity" } }, "connectionRuntimeUrl": "<connection-runtime-URL>" }
No portal do Azure, vá para o recurso de destino e dê acesso à identidade gerenciada atribuída pelo usuário, com base nas necessidades do recurso de destino.
Por exemplo, para o Cofre de Chaves do Azure, adicione a identidade às políticas de acesso do cofre de chaves. Para o Armazenamento de Blobs do Azure, atribua a função necessária para a identidade à conta de armazenamento.
Desativar identidade gerenciada
Para parar de usar a identidade gerenciada para autenticação, primeiro remova o acesso da identidade ao recurso de destino. Em seguida, no recurso do aplicativo lógico, desative a identidade atribuída pelo sistema ou remova a identidade atribuída pelo usuário.
Ao desabilitar a identidade gerenciada em seu recurso de aplicativo lógico, você remove o recurso dessa identidade para solicitar acesso aos recursos do Azure onde a identidade tinha acesso.
Nota
Se você desabilitar a identidade atribuída ao sistema, toda e qualquer conexão usada pelos fluxos de trabalho no fluxo de trabalho desse aplicativo lógico não funcionará em tempo de execução, mesmo que você habilite imediatamente a identidade novamente. Esse comportamento acontece porque desativar a identidade exclui sua ID de objeto. Cada vez que você habilita a identidade, o Azure gera a identidade com uma ID de objeto diferente e exclusiva. Para resolver esse problema, você precisa recriar as conexões para que eles usem o ID de objeto atual para a identidade atribuída ao sistema atual.
Tente evitar ao máximo desativar a identidade atribuída ao sistema. Se você quiser remover o acesso da identidade aos recursos do Azure, remova a atribuição de função da identidade do recurso de destino. Se você excluir seu recurso de aplicativo lógico, o Azure removerá automaticamente a identidade gerenciada da ID do Microsoft Entra.
As etapas nesta seção abrangem o uso do portal do Azure e do modelo do Azure Resource Manager (modelo ARM). Para Azure PowerShell, CLI do Azure e API REST do Azure, consulte a seguinte documentação:
Ferramenta | Documentação |
---|---|
Azure PowerShell | 1. Remova a atribuição de função. 2. Exclua a identidade atribuída pelo usuário. |
CLI do Azure | 1. Remova a atribuição de função. 2. Exclua a identidade atribuída pelo usuário. |
API REST do Azure | 1. Remova a atribuição de função. 2. Exclua a identidade atribuída pelo usuário. |
Para obter mais informações, veja Remover atribuições de funções do Azure.
Desabilitar identidade gerenciada no portal do Azure
Para remover o acesso à identidade gerenciada, remova a atribuição de função da identidade do recurso de destino e desabilite a identidade gerenciada.
Remover atribuição de função
As etapas a seguir removem o acesso ao recurso de destino da identidade gerenciada:
No portal do Azure, vá para o recurso do Azure de destino onde você deseja remover o acesso para a identidade gerenciada.
No menu do recurso de destino, selecione Controle de acesso (IAM). Na barra de ferramentas, selecione Atribuições de função.
Na lista de funções, selecione as identidades gerenciadas que você deseja remover. Na barra de ferramentas, selecione Remover.
Gorjeta
Se a opção Remover estiver desativada, é provável que não tenha permissões. Para obter mais informações sobre as permissões que permitem gerenciar funções para recursos, consulte Permissões de função de administrador na ID do Microsoft Entra.
Desabilitar identidade gerenciada no recurso de aplicativo lógico
No portal do Azure, abra seu recurso de aplicativo lógico.
No menu de recursos do aplicativo lógico, em Configurações, selecione Identidade e siga as etapas para sua identidade:
Selecione Sistema atribuído ao>>salvar. Quando o Azure solicitar a confirmação, selecione Sim.
Selecione Usuário atribuído e a identidade gerenciada e, em seguida, selecione Remover. Quando o Azure solicitar a confirmação, selecione Sim.
Desabilitar identidade gerenciada em um modelo ARM
Se você criou a identidade gerenciada do aplicativo lógico usando um modelo ARM, defina a identity
propriedade filho do type
objeto como None
.
"identity": {
"type": "None"
}