Autenticar e acessar os recursos com identidades gerenciadas em Aplicativos Lógicos do AzureAuthenticate and access resources with managed identities in Azure Logic Apps

Para acessar recursos em outros locatários do Azure AD (Azure Active Directory) e autenticar sua identidade sem precisar entrar, o aplicativo lógico pode usar uma identidade gerenciada (anteriormente conhecida como Identidade de Serviço Gerenciada ou MSI), em vez de credenciais ou segredos.To access resources in other Azure Active Directory (Azure AD) tenants and authenticate your identity without signing in, your logic app can use a managed identity (formerly known as Managed Service Identity or MSI), rather than credentials or secrets. O Azure gerencia essa identidade para você e ajuda a proteger suas credenciais, porque você não precisa fornecer ou trocar segredos.Azure manages this identity for you and helps secure your credentials because you don't have to provide or rotate secrets. Este artigo mostra como é possível configurar e usar uma identidade gerenciada atribuída pelo sistema para seu aplicativo lógico.This article shows how you can set up and use a system-assigned managed identity for your logic app. Para obter mais informações sobre identidades gerenciadas, confira O que são identidades gerenciadas para recursos do Azure?For more information about managed identities, see What is managed identities for Azure resources?

Observação

Seu aplicativo lógico pode usar identidades gerenciadas somente com conectores que dão suporte a identidades gerenciadas.Your logic app can use managed identities only with connectors that support managed identities. Atualmente, somente o conector HTTP dá suporte a identidades gerenciadas.Currently, only the HTTP connector supports managed identities.

No momento, pode haver até 10 fluxos de trabalho de aplicativo lógico com identidades gerenciadas atribuídas pelo sistema em cada assinatura do Azure.You can currently have up to 10 logic app workflows with system-assigned managed identities in each Azure subscription.

Pré-requisitosPrerequisites

Habilitar identidade gerenciadaEnable managed identity

Para identidades gerenciadas atribuídas pelo sistema, você não precisa criar manualmente essa identidade.For system-assigned managed identities, you don't have to manually create that identity. Para configurar uma identidade gerenciada atribuída pelo sistema para seu aplicativo lógico, você pode usar estes recursos:To set up a system-assigned managed identity for your logic app, you can use these ways:

Portal do AzureAzure portal

Para habilitar uma identidade gerenciada atribuída pelo sistema para o seu aplicativo lógico usando o portal do Azure, ative a configuração Sistema atribuído nas configurações de identidade do seu aplicativo lógico.To enable a system-assigned managed identity for your logic app through the Azure portal, turn on the System assigned setting in your logic app's identity settings.

  1. No Portal do Azure, abra o aplicativo lógico no Designer do Aplicativo Lógico.In the Azure portal, open your logic app in Logic App Designer.

  2. No menu do aplicativo lógico, em Configurações, selecione Identidade.On the logic app menu, under Settings, select Identity.

  3. Em Sistema atribuído > Status, escolha Ativar.Under System assigned > Status, choose On. Em seguida, escolha Salvar > Sim.Then, choose Save > Yes.

    Habilitar a configuração de identidade gerenciada

    Agora, o aplicativo lógico tem uma identidade gerenciada atribuída pelo sistema registrada no Azure Active Directory:Your logic app now has a system-assigned managed identity registered in Azure Active Directory:

    GUIDs para ID de objeto

    PropriedadeProperty ValorValue DescriçãoDescription
    ID do objetoObject ID <identity-resource-ID><identity-resource-ID> Um GUID (Identificador Global Exclusivo) que representa a identidade gerenciada atribuída pelo sistema para o seu aplicativo lógico em um locatário do Azure Active DirectoryA Globally Unique Identifier (GUID) that represents the system-assigned managed identity for your logic app in an Azure AD tenant

Modelo do Azure Resource ManagerAzure Resource Manager template

Se você desejar automatizar a criação e a implantação de recursos do Azure, como os aplicativos lógicos, use os Modelos do Azure Resource Manager.When you want to automate creating and deploying Azure resources such as logic apps, you can use Azure Resource Manager templates. Para criar uma identidade gerenciada atribuída pelo sistema para seu aplicativo lógico por meio de um modelo, adicione o elemento "identity" e a propriedade "type" à definição de fluxo de trabalho do aplicativo lógico em seu modelo de implantação:To create a system-assigned managed identity for your logic app through a template, add the "identity" element and "type" property to your logic app workflow definition in your deployment template:

"identity": {
   "type": "SystemAssigned"
}

Por exemplo:For example:

{
   "apiVersion": "2016-06-01", 
   "type": "Microsoft.logic/workflows", 
   "name": "[variables('logicappName')]", 
   "location": "[resourceGroup().location]", 
   "identity": { 
      "type": "SystemAssigned" 
   }, 
   "properties": { 
      "definition": { 
         "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", 
         "actions": {}, 
         "parameters": {}, 
         "triggers": {}, 
         "contentVersion": "1.0.0.0", 
         "outputs": {} 
   }, 
   "parameters": {}, 
   "dependsOn": [] 
}

Quando o Azure cria o aplicativo lógico, a definição de fluxo de trabalho do aplicativo lógico inclui estas propriedades adicionais:When Azure creates your logic app, that logic app's workflow definition includes these additional properties:

"identity": {
   "type": "SystemAssigned",
   "principalId": "<principal-ID>",
   "tenantId": "<Azure-AD-tenant-ID>"
}
PropriedadeProperty ValorValue DescriçãoDescription
principalIdprincipalId <principal-ID><principal-ID> Um GUID (Identificador Global Exclusivo) que representa o aplicativo lógico no locatário do Azure Active Directory e, às vezes, aparece como "ID de objeto" ou objectIDA Globally Unique Identifier (GUID) that represents the logic app in the Azure AD tenant and sometimes appears as an "object ID" or objectID
tenantIdtenantId <Azure-AD-tenant-ID><Azure-AD-tenant-ID> Um GUID (identificador global exclusivo) que representa o locatário do Azure AD do qual o aplicativo lógico agora é membro.A Globally Unique Identifier (GUID) that represents the Azure AD tenant where the logic app is now a member. Dentro do locatário do Azure AD, a entidade de serviço tem o mesmo nome que a instância do aplicativo lógico.Inside the Azure AD tenant, the service principal has the same name as the logic app instance.

Acessar recursos com identidade gerenciadaAccess resources with managed identity

Depois de criar uma identidade gerenciada atribuída pelo sistema para seu aplicativo lógico, você poderá fornecer a essa identidade o acesso a outros recursos do Azure.After you create a system-assigned managed identity for your logic app, you can give that identity access to other Azure resources. Em seguida, você poderá usar essa identidade para autenticação, como qualquer outra entidade de serviço.You can then use that identity for authentication, just like any other service principal.

Observação

A identidade gerenciada atribuída pelo sistema e o recurso em que você deseja atribuir acesso precisam ter a mesma assinatura do Azure.Both the system-assigned managed identity and the resource where you want to assign access must have the same Azure subscription.

Atribuir acesso à identidade gerenciadaAssign access to managed identity

Para fornecer acesso a outro recurso do Azure para a identidade gerenciada atribuída pelo sistema do aplicativo lógico, siga estas etapas:To give access to another Azure resource for your logic app's system-assigned managed identity, follow these steps:

  1. No portal do Azure, acesse o recurso do Azure em que deseja atribuir acesso à identidade gerenciada.In the Azure portal, go to the Azure resource where you want to assign access for your managed identity.

  2. No menu do recurso, selecione controle de acesso (iam) .From the resource's menu, select Access control (IAM). Na barra de ferramentas, escolha Adicionar > Adicionar atribuição de função.On the toolbar, choose Add > Add role assignment.

    Adicionar atribuição de função

  3. Em Adicionar atribuição de função, selecione a Função desejada para a identidade.Under Add role assignment, select the Role you want for the identity.

  4. Na propriedade Atribuir acesso a, selecione Usuário, grupo ou entidade de serviço do Azure AD, se ainda não estiver selecionado.In the Assign access to property, select Azure AD user, group, or service principal, if not already selected.

  5. Na caixa Selecionar, iniciando com o primeiro caractere no nome do aplicativo lógico, insira o nome do aplicativo lógico.In the Select box, starting with the first character in your logic app's name, enter your logic app's name. Quando seu aplicativo lógico for exibido, selecione-o.When your logic app appears, select the logic app.

    Selecione o aplicativo lógico com a identidade gerenciada

  6. Quando terminar, escolha Salvar.When you're done, choose Save.

Autenticar com a identidade gerenciada no aplicativo lógicoAuthenticate with managed identity in logic app

Depois de configurar o aplicativo lógico com uma identidade gerenciada atribuída pelo sistema e atribuir o acesso ao recurso desejado para essa identidade, você poderá usar essa identidade para autenticação.After you set up your logic app with a system-assigned managed identity and assigned access to the resource you want for that identity, you can now use that identity for authentication. Por exemplo, você pode usar uma ação de HTTP para que seu aplicativo lógico possa enviar uma solicitação HTTP ou chamar esse recurso.For example, you can use an HTTP action so your logic app can send an HTTP request or call to that resource.

  1. No aplicativo lógico, adicione a ação HTTP.In your logic app, add the HTTP action.

  2. Forneça os detalhes necessários sobre essa ação, como o local do Método e do URI da solicitação ao recurso que você deseja chamar.Provide the necessary details for that action, such as the request Method and URI location for the resource you want to call.

    Por exemplo, suponha que você está usando a autenticação do AAD (Azure Active Directory) com um desses serviços do Azure que oferecem suporte ao Azure Active Directory.For example, suppose you're using Azure Active Directory (Azure AD) authentication with one of these Azure services that support Azure AD. Na caixa URI, digite a URL do ponto de extremidade para o serviço do Azure.In the URI box, enter the endpoint URL for that Azure service. Assim, se você está usando o Azure Resource Manager, insira esse valor na propriedade URI:So, if you're using Azure Resource Manager, enter this value in the URI property:

    https://management.azure.com/subscriptions/<Azure-subscription-ID>?api-version=2016-06-01

  3. Na ação de HTTP, escolha Mostrar opções avançadas.In the HTTP action, choose Show advanced options.

  4. Na lista Autenticação, selecione Identidade Gerenciada.From the Authentication list, select Managed Identity. Depois de selecionar essa autenticação, a propriedade Público-alvo aparece com o valor da ID do recurso padrão:After you select this authentication, the Audience property appears with the default resource ID value:

    selecione "Identidade Gerenciada"

    Importante

    Na propriedade Público-alvo, o valor da ID do recurso deve corresponder exatamente ao que o Azure Active Directory espera, incluindo todas as barras à direita necessárias.In the Audience property, the resource ID value must exactly match what Azure AD expects, including any required trailing slashes. Você pode encontrar esses valores de ID do recurso nesta tabela que descreve os serviços do Azure que oferecem suporte ao Azure Active Directory.You can find these resource ID values in this table describing Azure services that support Azure AD. Por exemplo, se você estiver usando a ID de recurso do Azure Resource Manager, o URI deverá ter uma barra à direita.For example, if you're using the Azure Resoruce Manager resource ID, make sure the URI has a trailing slash.

  5. Continue criando o aplicativo lógico da maneira desejada.Continue building the logic app the way you want.

Remover a identidade gerenciadaRemove managed identity

Para desabilitar uma identidade gerenciada atribuída pelo sistema no aplicativo lógico, siga as etapas semelhantes às de configuração da identidade usando o portal do Azure, dos modelos de implantação do Azure Resource Manager ou do Azure PowerShell.To disable a system-assigned managed identity on your logic app, you can follow the steps similar to how you set up the identity through the Azure portal, Azure Resource Manager deployment templates, or Azure PowerShell.

Quando você exclui o aplicativo lógico, o Azure remove automaticamente a identidade atribuída pelo sistema ao aplicativo lógico do Azure AD.When you delete your logic app, Azure automatically removes your logic app's system-assigned identity from Azure AD.

Portal do AzureAzure portal

Para remover uma identidade gerenciada atribuída pelo sistema para o seu aplicativo lógico usando o portal do Azure, desative a configuração Sistema atribuído nas configurações de identidade do seu aplicativo lógico.To remove a system-assigned managed identity for your logic app through the Azure portal, turn off the System assigned setting in your logic app's identity settings.

  1. No Portal do Azure, abra o aplicativo lógico no Designer do Aplicativo Lógico.In the Azure portal, open your logic app in Logic App Designer.

  2. No menu do aplicativo lógico, em Configurações, selecione Identidade.On the logic app menu, under Settings, select Identity.

  3. Em Sistema atribuído > Status, escolha Desativar.Under System assigned > Status, choose Off. Em seguida, escolha Salvar > Sim.Then, choose Save > Yes.

    Desligar a configuração de identidade gerenciada

Modelo de implantaçãoDeployment template

Se você criou a identidade gerenciada atribuída pelo sistema do aplicativo lógico com um modelo de implantação do Azure Resource Manager, defina a propriedade "type" do elemento "identity" para "None".If you created the logic app's system-assigned managed identity with an Azure Resource Manager deployment template, set the "identity" element's "type" property to "None". Essa ação também exclui a ID da entidade de segurança do Azure AD.This action also deletes the principal ID from Azure AD.

"identity": {
   "type": "None"
}

Obter suporteGet support