Autenticar acesso e conexões a recursos do Azure com identidades gerenciadas nos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)

Quando você usa uma identidade gerenciada para autenticar o acesso ou conexões com recursos protegidos do Microsoft Entra a partir do fluxo de trabalho do aplicativo lógico, não é necessário fornecer credenciais, segredos ou tokens 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 proteger as informações de autenticação, pois você não precisa gerenciar essas informações confidenciais. Para obter mais informações, consulte O que são identidades gerenciadas para recursos do Azure?.

O Aplicativos Lógicos do Azure dá suporte à identidade gerenciada atribuída pelo sistema e à identidade gerenciada atribuída pelo usuário. 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 pelo sistema.

  • Um recurso de aplicativo lógico pode compartilhar a mesma identidade atribuída pelo usuário em um grupo de outros recursos do aplicativo lógico.

Este guia mostra como é possível realizar as seguintes tarefas:

  • Habilite e configure a identidade gerenciada atribuída pelo 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 uma identidade atribuída pelo usuário usando o portal do Azure e o modelo do Gerenciador de Recursos do Azure (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 ao usuário
CLI do Azure Criar identidade atribuída ao usuário
API REST do Azure Criar identidade atribuída ao usuário

Aplicativos lógicos de Consumo versus Standard

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:

Aplicativo lógico Ambiente Suporte de identidade gerenciada
Consumo - Aplicativos Lógicos do Azure Multitenant

- Ambiente do serviço de integração (ISE)
– Seu aplicativo lógico pode habilitar o tipo de identidade atribuído pelo sistema ouo tipo de identidade atribuído pelo usuário.

– Você pode usar a identidade gerenciada no nível de recurso do aplicativo lógico e no nível da conexão.

– Se você habilitar a identidade atribuída pelo usuário, seu aplicativo lógico poderá ter apenas uma identidade atribuída pelo usuário por vez.
Padrão - Aplicativos Lógicos do Azure de locatário único

- Ambiente do Serviço de Aplicativo v3 (ASEv3)

- Aplicativos Lógicos habilitados para o 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ê pode usar a identidade gerenciada no nível de recurso do aplicativo lógico e no nível da conexão.

- Se você habilitar a identidade atribuída pelo usuário, seu recurso de aplicativo lógico poderá ter várias identidades atribuídas pelo usuário ao mesmo tempo.

Para obter informações sobre limites de identidade gerenciada em Aplicativos Lógicos do Azure, consulte Limites de identidades gerenciadas para aplicativos lógicos. Para obter mais informações sobre os tipos de recursos e ambientes de 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 Tipos de autenticação para gatilhos e ações que dão suporte à autenticação e Serviços do Azure que dão suporte à autenticação do Microsoft Entra com identidades gerenciadas.

Para um fluxo de trabalho de aplicativo lógico de consumo, a tabela a seguir lista os conectores que oferecem suporte à autenticação de identidade gerenciada:

Tipo de conector Conectores com suporte
Interno - Azure API Management
- Serviços de Aplicativo do Azure
- Azure Functions
- HTTP
- HTTP + Webhook

Observação: as operações HTTP podem autenticar conexões com contas do Armazenamento do Azure por trás de firewalls do Azure com a identidade atribuída pelo sistema. No entanto, elas não suportam a identidade gerenciada atribuída pelo usuário para autenticar as mesmas conexões.

Gerenciado – Serviço de Aplicativo do Azure
- Automação do Azure
- Armazenamento de Blobs do Azure
– Instância de Contêiner do Azure
– Azure Cosmos DB
- Azure Data Explorer
– Azure Data Factory
– Azure Data Lake
- Grade de Eventos do Azure
- Hubs de eventos do Azure
– Azure IoT Central V2
– Azure IoT Central V3
– Azure Key Vault
– Azure Log Analytics
– Filas do Azure
- Azure Resource Manager
- Barramento de Serviço do Azure
– Azure Sentinel
– Armazenamento de Tabelas do Azure
– VM do Azure
- HTTP com o Microsoft Entra ID
- SQL Server

Pré-requisitos

  • Uma conta e uma assinatura do Azure. Se você não tem uma assinatura, inscreva-se em uma conta gratuita do Azure. A identidade gerenciada e o recurso do Azure de destino em que você precisa de acesso devem usar a mesma assinatura do Azure.

  • O recurso do Azure de destino que você deseja acessar. Nesse recurso, você adicionará a função necessária para que a identidade gerenciada acesse o recurso em nome do aplicativo lógico ou da 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 a identidades no locatário correspondente do Microsoft Entra.

  • O fluxo de trabalho e o recurso do aplicativo lógico em que você deseja usar o gatilho ou as ações que dão suporte a identidades gerenciadas.

Habilitar a identidade atribuída pelo sistema no portal do Azure

  1. Abra o recurso de aplicativo lógico no portal do Azure.

  2. No menu do aplicativo lógico, em Configurações, selecione Identidade.

  3. Na página Identidade, em Sistema atribuído, selecione Ao>salvar. Quando o Azure solicitar que você confirme, selecione Sim.

    Screenshot shows Azure portal, Consumption logic app, Identity page, and System assigned tab with selected options, On and Save.

    Observação

    Se você receber o erro de que só é possível ter uma identidade gerenciada, seu aplicativo lógico já estará associado à identidade atribuída ao 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.

    O recurso de aplicativo lógico agora pode usar a identidade atribuída pelo sistema. Essa identidade é registrada no Microsoft Entra ID e é representada por uma ID de objeto.

    Screenshot shows Consumption logic app, Identity page, and object ID for system-assigned identity.

    Propriedade Valor Descrição
    ID do objeto (principal) <identity-resource-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.
  4. Agora, siga as etapas que dão a essa identidade acesso ao recurso mais adiante neste guia.

Habilitar a identidade atribuída ao sistema no modelo do ARM

Para automatizar a criação e a de recursos de aplicativo lógico, como os aplicativos lógicos, você pode usar modelos do ARM. Para habilitar a identidade atribuída ao sistema para seu aplicativo lógico no modelo, adicione o objeto identity e a propriedade secundária 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 identity obtém estas outras propriedades:

"identity": {
   "type": "SystemAssigned",
   "principalId": "<principal-ID>",
   "tenantId": "<Azure-AD-tenant-ID>"
}
Propriedade (JSON) Valor Descrição
principalId <principal-ID> O GUID (Identificador Global exclusivo) do objeto da entidade de serviço para a identidade gerenciada que representa seu aplicativo lógico no locatário do Microsoft Entra. Esse GUID, às vezes, é exibido como uma "ID de objeto" ou objectID.
tenantId <Azure-AD-tenant-ID> O GUID (Identificador Global exclusivo) que representa o locatário do Microsoft Entra no qual o aplicativo lógico é agora um membro. No locatário do Microsoft Entra, a entidade de serviço tem o mesmo nome da instância do aplicativo lógico.

Criar identidade atribuída ao usuário no portal do Azure

Antes de habilitar a identidade atribuída pelo usuário em seu 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.

  1. Na caixa de pesquisa do portal do Azure, insira identidades gerenciadas e selecione Identidades Gerenciadas.

    Screenshot shows Azure portal with selected option named Managed Identities.

  2. Na página Identidades Gerenciadas, selecione Criar.

    Screenshot shows Managed Identities page and selected option for Create.

  3. Forneça informações sobre sua identidade gerenciada e selecione Revisar + Criar, por exemplo:

    Screenshot shows page named Create User Assigned Managed Identity, with managed identity details.

    Propriedade Obrigatório Valor Descrição
    Assinatura Sim <Azure-subscription-name> O nome da assinatura do Azure
    Grupo de recursos Sim <Azure-resource-group-name> O nome do grupo de recursos do Azure. Crie um grupo ou selecione um existente. Este exemplo cria um novo grupo chamado fabrikam-managed-identities-RG.
    Região Sim <Azure-region> A região do Azure na qual armazenar informações sobre seu recurso. Este exemplo usa Oeste dos EUA.
    Nome Sim <user-assigned-identity-name> O nome a ser dado à sua identidade atribuída ao usuário. Este exemplo usa Fabrikam-user-assigned-identity.

    Depois que o Azure validar as informações, o Azure criará 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

  1. Abra o recurso de aplicativo lógico no portal do Azure.

  2. No menu do aplicativo lógico, em Configurações, selecione Identidade.

  3. Na página Identidade, selecione Adicionar atribuído>ao usuário.

    Screenshot shows Consumption logic app and Identity page with selected option for Add.

  4. No painel Adicionar identidade gerenciada atribuída pelo usuário, siga estas etapas:

    1. Na lista Assinatura , selecione sua assinatura do Azure.

    2. 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, insira o nome da identidade ou do grupo de recursos.

      Screenshot shows Consumption logic app and selected user-assigned identity.

    3. Quando terminar, selecione Adicionar.

      Observação

      Se você receber um erro de que você pode ter apenas uma identidade gerenciada, seu aplicativo lógico já estará associado à identidade atribuída ao sistema. Para adicionar a identidade atribuída ao usuário, primeiro desabilite a identidade atribuída ao sistema.

    Seu aplicativo lógico agora está associado à identidade gerenciada atribuída ao usuário.

    Screenshot shows Consumption logic app with associated user-assigned identity.

  5. Agora, siga as etapas que dão a essa identidade acesso ao recurso mais adiante neste guia.

Criar a identidade atribuída ao usuário no modelo do ARM

Para automatizar a criação e a de recursos de aplicativo lógico, como os aplicativos lógicos, você pode usar modelos do ARM. Esses modelos dão suporte a identidades atribuídas pelo usuário para autenticação.

Na seção resources do seu modelo, a definição de recurso do aplicativo lógico requer estes itens:

  • Um objeto identity com a propriedade type definida como UserAssigned

  • Um objeto userAssignedIdentities filho que especifica o nome e o recurso 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 não parametrizado identity . A resposta à solicitação PUT e à operação GET subsequente também inclui este identity objeto:

{
   "$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 identity. O exemplo a seguir mostra como o objeto filho userAssignedIdentities faz referência a uma userAssignedIdentityName variável que você define na seção do variables modelo. Essa variável referencia a ID de recurso para sua identidade atribuída ao 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": {}
      }
  ]
}

Conceder à identidade acesso aos recursos

Antes de usar a identidade gerenciada do aplicativo lógico para autenticação, você precisa configurar o acesso da identidade no recurso do Azure em que deseja usar tal identidade. A maneira como você configura o acesso varia de acordo com o recurso que você deseja que a identidade acesse.

Observação

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, primeiro você precisa 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 conceder acesso de identidade ao grupo de recursos, não apenas ao recurso. Da mesma forma, se for necessário selecionar sua assinatura antes de selecionar o recurso de destino, você deverá conceder acesso de identidade à assinatura.

Em alguns casos, talvez você precise 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 de um fluxo de trabalho. Você deve fornecer a essa identidade acesso ao aplicativo lógico associado.

Por exemplo, para acessar uma conta de armazenamento de Blobs do Azure com sua identidade gerenciada, você precisa configurar o acesso usando o RBAC do Azure (controle de acesso baseado em função do Azure) e atribuir a função apropriada para essa identidade à conta de armazenamento. As etapas nesta seção descrevem como concluir essa tarefa usando o modelo doportal do Azuree 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

No entanto, para acessar um cofre de chaves do Azure com sua identidade gerenciada, você precisa criar uma política de acesso para essa identidade 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 Gerenciador de Recursos, 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 do Key Vault
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 de identidade gerenciada no 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, exigem que você crie uma política de acesso que tenha as permissões apropriadas no recurso de destino para essa identidade.

  1. No portal do Azure, abra o recurso em que você deseja usar a identidade.

  2. No menu de recursos, selecione Controle de acesso (IAM)>Adicionar>atribuição de função.

    Observação

    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, confira Funções internas do Microsoft Entra.

  3. Agora, 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.

    Para este exemplo, atribua a função chamada Colaborador de dados do armazenamento de blob, que inclui acesso de gravação para blobs em um contêiner de Armazenamento do Azure. Para obter mais informações sobre funções de contêiner de armazenamento específicas, consulte Funções que podem acessar blobs em um contêiner de Armazenamento do Azure.

  4. Em seguida, escolha a identidade gerenciada na qual você deseja atribuir a função. Em Atribuir acesso a, escolha Identidade gerenciada>Adicionar membros.

  5. Com base no tipo de identidade gerenciada, escolha ou informe os seguintes valores:

    Tipo Criar instância de serviço Assinatura Membro
    System-assigned Aplicativo Lógico <Azure-subscription-name> <your-logic-app-name>
    Atribuída pelo usuário Não aplicável <Azure-subscription-name> <your-user-assigned-identity-name>

    Para obter mais informações sobre como atribuir funções, consulte Atribuir funções usando o portal do Azure.

  6. Depois de concluir, você pode usar a identidade para autenticar o acesso a gatilhos e ações que suportam identidades gerenciadas.

Para obter mais informações gerais sobre essa tarefa, consulte Atribuir um acesso de identidade gerenciada a outro recurso usando o RBAC do Azure.

Criar política de acesso no portal do Azure

Para usar uma identidade gerenciada para autenticação, alguns recursos do Azure, como cofres de chaves do Azure, 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.

  1. No portal do Azure, abra o recurso de destino em que você deseja usar a identidade. Este exemplo usa um cofre de chaves do Azure como o recurso de destino.

  2. No menu do recurso, selecione Políticas de acesso>Criar, que abre o painel Criar uma política de acesso.

    Observação

    Se o recurso não tiver a opção Políticas de acesso, tente atribuir uma atribuição de função.

    Screenshot shows Azure portal and key vault example with open pane named Access policies.

  3. Na guia Permissões, selecione as permissões necessárias que a identidade precisa para acessar o recurso de destino.

    Por exemplo, para usar a identidade com a operação Listar os segredosdo conector Azure Key Vault, a identidade precisa de permissões de Lista. Portanto, na coluna Permissões secretas, selecione Lista.

    Screenshot shows Permissions tab with selected List permissions.

  4. Quando estiver pronto, selecione Próximo. Na guia Entidade de segurança, encontre e selecione a identidade gerenciada, que é uma identidade atribuída pelo usuário neste exemplo.

  5. Ignore a etapa opcional Aplicativo, selecione Próximo e termine de criar a política de acesso.

A próxima seção discute o uso de uma identidade gerenciada para autenticar o acesso para um gatilho ou ação. O exemplo continua com as etapas de uma seção anterior em que você configura o acesso para uma identidade gerenciada usando o RBAC, sem usar o Azure Key Vault como exemplo. No entanto, as etapas gerais para usar uma identidade gerenciada para autenticação são as mesmas.

Autenticar o acesso com a identidade gerenciada

Depois de habilitar a identidade gerenciada para seu aplicativo lógico e conceder a essa identidade acesso ao recurso ou à entidade de destino, 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 em que deseja usar a identidade atribuída pelo sistema, primeiro habilite a autenticação para o Azure Functions.

Estas etapas mostram como usar a identidade gerenciada com um gatilho ou uma ação por meio do portal do Azure. Para especificar a identidade gerenciada em uma definição de JSON subjacente de um gatilho ou uma ação, confira Autenticação de identidade gerenciada.

  1. Abra o recurso de aplicativo lógico no portal do Azure.

  2. Se você ainda não tiver feito isso, adicione o gatilho ou a ação que dá suporte a identidades gerenciadas.

    Observação

    Nem todas as operações de conector oferecem suporte a permitir que você adicione um tipo de autenticação. Para saber mais, consulte Tipos de autenticação para gatilhos e ações que dão suporte à autenticação.

  3. No gatilho ou ação que você adicionou, siga estas etapas:

    • Operações de conector internas que oferecem suporte à autenticação de identidade gerenciada

      1. Na lista Adicionar novo parâmetro, adicione a propriedade de Autenticação, caso a propriedade não tenha aparecido.

        Screenshot shows Consumption workflow with built-in action and opened list named Add new parameter, with selected option for Authentication.

      2. Na lista Tipo de autenticação, selecione Identidade Gerenciada.

        Screenshot shows Consumption workflow with built-in action and opened list named Authentication type, with selected option for Managed identity.

      Para saber mais, consulte Exemplo: autenticar gatilho ou ação interno com uma identidade gerenciada.

    • Operações de conector gerenciado que dão suporte à autenticação de identidade gerenciada

      1. Na página de seleção de locatário, selecione Conectar-se com a identidade gerenciada, por exemplo:

        Screenshot shows Consumption workflow with Azure Resource Manager action and selected option for Connect with managed identity.

      2. Na próxima página, indique um nome de uso para a conexão em Nome da conexão.

      3. Para o tipo de autenticação, escolha uma das seguintes opções com base em seu conector gerenciado:

        • Autenticação única: esses conectores dão suporte a apenas um tipo de autenticação. Na lista Identidade gerenciada, selecione a identidade gerenciada atualmente habilitada, se ainda não estiver selecionada, e, em seguida, selecione Criar, por exemplo:

          Screenshot shows Consumption workflow, connection name box, and selected option for system-assigned managed identity.

        • Várias autenticações: Esses conectores mostram vários tipos de autenticação, mas você ainda pode selecionar apenas um tipo. Na lista Tipo de autenticação, selecione Identidade Gerenciada dos Aplicativos Lógicos>Criar, por exemplo:

          Screenshot shows Consumption workflow, connection name box, and selected option for Logic Apps Managed Identity.

        Para saber mais, consulte Exemplo: autenticar gatilho ou ação do conector gerenciado com uma identidade gerenciada.

Exemplo: autenticar um gatilho ou ação interno com uma identidade gerenciada

O gatilho ou a ação HTTP pode usar a identidade atribuída pelo sistema que você habilitou para o recurso de aplicativo lógico. No geral, o gatilho ou a ação HTTP usa essas propriedades para especificar o recurso ou a entidade que você deseja acessar:

Propriedade Obrigatório Descrição
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 a entidade ou o recurso do Azure de destino. A sintaxe do URI geralmente inclui a ID do recurso para o recurso ou serviço do Azure.
Cabeçalhos Não Todos os valores de cabeçalho que você precisa ou deseja incluir na solicitação de saída, como o tipo de conteúdo
Consultas Não Os parâmetros de consulta que você deseja incluir na solicitação. Por exemplo, consulte parâmetros 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 à entidade de destino

Como um exemplo específico, suponha que você queira executar a operação Blob de Instantâneo em um blob na conta de Armazenamento do Azure em que você configurou o acesso para sua identidade anteriormente. No entanto, o conector do Armazenamento de Blobs do Azure não oferece essa operação no momento. Em vez disso, você pode executar essa operação usando a ação HTTP ou outra operação da API REST de Serviço Blob.

Importante

Para acessar as contas de armazenamento do Azure por trás de firewalls usando o conector de Blob do Azure e identidades gerenciadas, verifique se 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 estas propriedades:

Propriedade Obrigatório Valor de exemplo Descrição
Método Sim PUT O método HTTP usado pela operação Blob de Instantâneo
URI Sim https://<storage-account-name>/<folder-name>/{name} A ID de recurso para um arquivo do Armazenamento de Blobs do Azure no ambiente do Azure Global (público), que usa essa sintaxe
Cabeçalhos Para o Armazenamento do Azure x-ms-blob-type = BlockBlob

x-ms-version = 2019-02-02

x-ms-date = @{formatDateTime(utcNow(),'r')}

Os valores de cabeçalho x-ms-blob-type, x-ms-version e x-ms-date são necessários para operações do Armazenamento do Azure.

Importante: no gatilho HTTP de saída e nas solicitações de ação para o Armazenamento do Azure, o cabeçalho requer a propriedade x-ms-version e a versão da API para a operação que você deseja executar. A data atual deve ser x-ms-date. Caso contrário, seu fluxo de trabalho falhará com um erro 403 FORBIDDEN. Para obter a data atual no formato necessário, use 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 da operação.

O exemplo a seguir mostra uma ação HTTP de exemplo com todos os valores de propriedade descritos anteriormente para uso em uma operação de Blob de Instantâneos:

Screenshot shows Azure portal, Consumption workflow, and HTTP action set up to access resources.

  1. Depois de adicionar a ação HTTP, adicione a propriedade de Autenticação à ação HTTP. Na lista Adicionar novo parâmetro, selecione Autenticação.

    Screenshot shows Consumption workflow with HTTP action and opened Add new parameter list with selected property named Authentication.

    Observação

    Nem todos os gatilhos e ações dão suporte para permitir que você adicione um tipo de autenticação. Para saber mais, consulte Tipos de autenticação para gatilhos e ações que dão suporte à autenticação.

  2. Na lista Tipo de autenticação, selecione Identidade Gerenciada.

    Screenshot shows Consumption workflow, HTTP action, and Authentication property with selected option for Managed identity.

  3. Na lista de identidades gerenciadas, selecione entre as opções disponíveis com base em seu cenário.

    • Se você configurou a identidade atribuída ao sistema, selecione Identidade Gerenciada Atribuída ao Sistema, se ainda não tiver selecionado.

      Screenshot shows Consumption workflow, HTTP action, and Managed identity property with selected option for System-assigned managed identity.

    • Se você configurou uma identidade atribuída ao usuário, selecione essa identidade, se ainda não tiver selecionado.

      Screenshot shows Consumption workflow, HTTP action, and Managed identity property with selected user-assigned identity.

    Este exemplo continua com a Identidade Gerenciada Atribuída pelo Sistema.

  4. Em alguns gatilhos e ações, a propriedade Público-alvo também é exibida para que você defina a ID do recurso de destino. Defina a propriedade Público-alvo como a ID de recurso para o recurso ou serviço de destino. Caso contrário, por padrão, a propriedade Público-alvo usa a ID de recurso https://management.azure.com/, que é a ID de recurso para o Azure Resource Manager.

    Por exemplo, se você quiser autenticar o acesso a um recurso do Key Vault na nuvem global do Azure, deverá definir a propriedade Público-alvoexatamente como a seguinte ID de recurso: https://vault.azure.net. Eessa ID de recurso específica não contém nenhuma barra. Na verdade, a inclusão de uma barra pode produzir um erro 400 Bad Request ou 401 Unauthorized.

    Importante

    Verifique se a ID de Recurso de Destino corresponde exatamente ao valor que o Microsoft Entra ID espera, incluindo quaisquer barras invertidas necessárias ao final. Por exemplo, a ID de recurso para todas as contas de Armazenamento de Blobs do Azure requer uma barra à direita. No entanto, a ID de recurso para uma conta de armazenamento específica não requer uma barra à direita. Verifique as IDs do recurso para os serviços do Azure que dão suporte ao Microsoft Entra ID.

    Este exemplo define a propriedade Público-alvo como https://storage.azure.com/ para 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 uma URL de serviço raiz, https://<your-storage-account>.blob.core.windows.net, para uma conta de armazenamento específica.

    Screenshot shows Consumption workflow, HTTP action, and Audience

    Para obter mais informações sobre como autorizar o acesso com a ID do Microsoft Entra para o Armazenamento do Azure, consulte a seguinte documentação:

  5. Continue criando o fluxo de trabalho da maneira desejada.

Exemplo: autenticar 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ê habilitou para o recurso de aplicativo lógico. Este exemplo mostra como usar a identidade gerenciada atribuída pelo sistema.

  1. Após adicionar a ação ao seu fluxo de trabalho e selecionar seu locatário do Microsoft Entra, selecione Conectar com a identidade gerenciada.

    Screenshot shows Consumption workflow, Azure Resource Manager action, and selected option for Connect with managed identity.

  2. Na página nome da conexão, forneça um nome para a conexão e selecione a identidade gerenciada que você deseja usar.

    A ação do Gerenciador de Recursos do Azure é uma ação de autenticação única, portanto, a caixa de informações de conexão mostra uma lista de identidades gerenciadas que seleciona automaticamente a identidade gerenciada que está habilitada no momento no recurso de aplicativo lógico. Se você habilitou uma identidade gerenciada atribuída pelo sistema, a lista de Identidades gerenciadas selecionará a Identidade gerenciada atribuída pelo sistema. Se você tiver habilitado uma identidade gerenciada atribuída pelo usuário, a lista selecionará essa identidade em vez disso.

    Se você estiver usando um gatilho ou ação de autenticação múltipla, como o Armazenamento de Blobs do Azure, a caixa de informações de conexão mostrará uma lista de tipos de autenticação que inclui a opção Identidade Gerenciada de Aplicativos Lógicos , entre outros tipos de autenticação.

    Neste exemplo, a Identidade gerenciada atribuída pelo sistema é a única seleção disponível.

    Screenshot shows Consumption workflow and Azure Resource Manager action with connection name entered and selected option for System-assigned managed identity.

    Observação

    Se a identidade gerenciada não estiver habilitada quando você tentar criar a conexão, alterar a conexão ou tiver sido removida enquanto uma conexão gerenciada com identidade habilitada ainda existir, você receberá um erro avisando que é necessário habilitar a identidade e conceder acesso ao recurso de destino.

  3. Quando estiver pronto, selecione Criar.

  4. 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.

  5. Continue criando o fluxo de trabalho da maneira desejada.

Conexões e definição de recurso de aplicativo lógico que usam uma identidade gerenciada

Uma conexão que habilita e usa identidades gerenciadas é um tipo especial de conexão que funciona apenas com elas. No tempo de execução, a conexão usa a identidade gerenciada habilitada no recurso do aplicativo lógico. Durante o tempo de execução, o serviço de Aplicativos Lógicos do Azure verifica se algum gatilho ou ação do conector gerenciado no aplicativo lógico está configurado para usar a identidade gerenciada e se todas as permissões necessárias estão configuradas para usá-la no acesso aos recursos de destino especificados pelo gatilho e pelas ações. Se for bem-sucedido, os Aplicativos Lógicos do Azure recuperarão o token do Microsoft Entra que está associado à identidade gerenciada e usam essa identidade para autenticar o acesso ao recurso de destino e executar a operação configurada no gatilho e nas ações.

Em um recurso de aplicativo lógico de consumo, a configuração de conexão é salva no objeto da definição de recurso do aplicativo lógico, que contém o $connections objeto que inclui ponteiros para a ID de recurso da conexão junto com a ID de parameters recurso da identidade, se a identidade atribuída pelo usuário estiver habilitada.

Este exemplo mostra como é a configuração quando o aplicativo lógico habilita a identidade gerenciada atribuída pelo sistema:

"parameters": {
   "$connections": {
      "value": {
         "<action-name>": {
            "connectionId": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/connections/{connection-name}",
            "connectionName": "{connection-name}",
            "connectionProperties": {
               "authentication": {
                  "type": "ManagedServiceIdentity"
               }
            },
            "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/{managed-connector-type}"
         }
      }
   }
}

Este exemplo mostra como é a configuração 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/{connection-name}",
            "connectionName": "{connection-name}",
            "connectionProperties": {
               "authentication": {
                  "type": "ManagedServiceIdentity",
                  "identity": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resourceGroupName}/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 o fluxo de trabalho incluir uma conexão de API, que é criada por um conector gerenciado, como Office 365 Outlook, Azure Key Vault e demais utilizadores de identidade gerenciada, você tem uma etapa a mais a ser tomada.

Em um modelo do ARM, a definição de recurso do conector subjacente difere com base em se você tem um aplicativo lógico de consumo ou padrão e se o conector mostra as opções de autenticação única ou de várias autenticações.

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, como a Automação do Azure, e um conector de autenticação múltipla, como o Armazenamento de Blobs do Azure.

Autenticação única

Este exemplo mostra a definição de recurso de conexão subjacente para uma ação de Automação do Azure em um aplicativo lógico de Consumo que usa uma identidade gerenciada em que a definição inclui os atributos:

  • A propriedade kind é definida como V1 para um aplicativo lógico de consumo.
  • A propriedade parameterValueType está definida como Alternative.
{
    "type": "Microsoft.Web/connections",
    "apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
    "name": "[variables('connections_azureautomation_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_azureautomation_name')]",
        "parameterValueSet": {},
        "parameterValueType": "Alternative"
    }
},

Autenticação múltipla

Este exemplo mostra a definição de recurso de conexão subjacente para uma ação de Armazenamento de Blobs do Azure em um aplicativo lógico de Consumo que usa uma identidade gerenciada em que a definição inclui os seguintes atributos:

  • A propriedade kind é definida como V1 para um aplicativo lógico de consumo.
  • O objeto parameterValueSet inclui uma propriedade name que é definida como managedIdentityAuth e uma propriedade values que é definida como um objeto vazio.
{
    "type": "Microsoft.Web/connections",
    "apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
    "name": "[variables('connections_azureblob_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_azureblob_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 usa uma conexão de API, que é criada por um conector gerenciado, como Office 365 Outlook, Azure Key Vault e assim por diante, o serviço Aplicativos Lógicos do Azure se comunica com o recurso de destino, como sua conta de email, cofre de chaves e assim por diante, usando duas conexões:

Conceptual diagram showing first connection with authentication between logic app and token store plus second connection between token store and target resource.

  • A conexão nº 1 é configurada com autenticação para o armazenamento de token interno.

  • A conexão nº 2 é configurada com autenticação para o recurso de destino.

Em um recurso de aplicativo lógico de Consumo, a conexão nº 1 é abstraída de você sem nenhuma opção de configuração. No tipo de recurso de um aplicativo lógico Padrão, você tem mais controle sobre seu aplicativo lógico. Por padrão, a conexão nº 1 é configurada automaticamente a usar a identidade atribuída pelo sistema.

No entanto, se seu cenário exigir um controle mais fino sobre a autenticação de conexões de API, você poderá, opcionalmente, alterar a autenticação da conexão nº 1 da identidade atribuída pelo sistema padrão 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 combinar identidades atribuídas pelo sistema e atribuídas pelo usuário entre diferentes conexões com o mesmo recurso de destino.

No arquivo connections.json do aplicativo lógico Padrão, que armazena informações sobre cada conexão de API, cada definição de conexão tem duas seções authentication, por exemplo:

"keyvault": {
   "api": {
      "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{region}/managedApis/keyvault"
   },
   "authentication": {
      "type": "ManagedServiceIdentity",
   },
   "connection": {
      "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/connections/<connection-name>"
   },
   "connectionProperties": {
      "authentication": {
         "audience": "https://vault.azure.net",
         "type": "ManagedServiceIdentity"
      }
   },
   "connectionRuntimeUrl": "<connection-runtime-URL>"
}
  • A primeira seção authentication mapeia para a conexão nº 1. Essa a seção descreve a autenticação usada para se comunicar com o armazenamento de token interno. No passado, esta seção sempre foi definida como ManagedServiceIdentity para um aplicativo implantado no Azure e não tinha opções configuráveis.

  • A segunda seção authentication mapeia para a conexão nº 2. Essa seção descreve a autenticação usada para se comunicar com o recurso de destino e 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 aplicativos lógicos, mas não adicionar a identidade atribuída pelo sistema para cada aplicativo lógico à política de acesso do recurso de destino.

Em outros cenários, talvez você não queira que a identidade atribuída pelo sistema seja totalmente configurada em seu aplicativo lógico, para que você possa alterar a autenticação para uma identidade atribuída pelo usuário e desabilitar completamente a identidade atribuída pelo sistema.

Alterar a autenticação para o armazenamento de tokens

  1. No portal do Azure, abra seu recurso de aplicativo lógico Padrão.

  2. No menu de recursos, em Fluxos de Trabalho, selecione Conexões.

  3. No painel Conexões, selecione Exibição JSON.

    Screenshot showing the Azure portal, Standard logic app resource,

  4. No editor JSON, encontre a seção managedApiConnections, que contém as conexões de API em todos os fluxos de trabalho em seu recurso de aplicativo lógico.

  5. Encontre a conexão na qual você deseja adicionar uma identidade gerenciada atribuída pelo usuário. Por exemplo, suponha que seu fluxo de trabalho tenha uma conexão do Azure Key Vault:

    "keyvault": {
       "api": {
          "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{region}/managedApis/keyvault"
       },
       "authentication": {
          "type": "ManagedServiceIdentity"
       },
       "connection": {
          "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/connections/<connection-name>"
       },
       "connectionProperties": {
          "authentication": {
             "audience": "https://vault.azure.net",
             "type": "ManagedServiceIdentity"
          }
       },
       "connectionRuntimeUrl": "<connection-runtime-URL>"
    }
    
  6. Na definição de conexão, conclua as seguintes etapas:

    1. Encontre a primeira seção authentication. Se nenhuma propriedade identity já existir nesta seção authentication, o aplicativo lógico usará implicitamente a identidade atribuída pelo sistema.

    2. Adicione uma propriedade identity usando o exemplo nesta etapa.

    3. 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/{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/<connection-name>"
       },
       "connectionProperties": {
          "authentication": {
             "audience": "https://vault.azure.net",
             "type": "ManagedServiceIdentity"
          }
       },
       "connectionRuntimeUrl": "<connection-runtime-URL>"
    }
    
  7. No portal do Azure, acesse 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 Azure Key Vault, 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.

Desabilitar identidade gerenciada

Para deixar de usar a identidade gerenciada para autenticação, primeiro remova o acesso da identidade ao recurso de destino. Em seguida, desative a identidade atribuída pelo sistema ou remova a identidade atribuída pelo usuário do seu aplicativo lógico.

Quando você desabilita a identidade gerenciada em seu recurso de aplicativo lógico, você remove a capacidade dessa identidade de solicitar acesso aos recursos do Azure em que a identidade tinha acesso.

Observação

Se você desabilitar a identidade atribuída pelo sistema, qualquer e todas as conexões usadas pelos fluxos de trabalho no fluxo de trabalho do aplicativo lógico não funcionarão durante o tempo de execução, mesmo que você habilite a identidade imediatamente. Esse comportamento ocorre porque a desabilitação da identidade exclui a ID do 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 elas usem a ID de objeto atual para a identidade atual atribuída pelo sistema.

Tente evitar desabilitar a identidade atribuída pelo sistema o máximo possível. 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 automaticamente removerá a identidade gerenciada do Microsoft Entra ID.

As etapas nesta seção abrangem o uso do portal do Azure e do modelo do Azure Resource Manager (modelo de ARM). Para Azure PowerShell, CLI do Azure e API REST do Azure, consulte a seguinte documentação:

Ferramenta Documentação
Azure PowerShell 1. Remover atribuição de função.
2. Excluir identidade atribuída pelo usuário.
CLI do Azure 1. Remover atribuição de função.
2. Excluir identidade atribuída pelo usuário.
API REST do Azure 1. Remover atribuição de função.
2. Excluir identidade atribuída pelo usuário.

Desabilitar a identidade gerenciada no portal do Azure

Para remover o acesso para a identidade gerenciada, remova a atribuição de função da identidade do recurso de destino e, em seguida, desabilite a identidade gerenciada.

Remover atribuição de função

As etapas a seguir removem o acesso ao recurso de destino da identidade gerenciada:

  1. No portal do Azure, acesse o recurso do Azure de destino em que você deseja remover o acesso para a identidade gerenciada.

  2. No menu do recurso de destino, selecione Controle de acesso (IAM) . Na barra de ferramentas, selecione Atribuições de função.

  3. Na lista de funções, selecione as identidades gerenciadas que você deseja remover. Na barra de ferramentas, selecione Remover.

    Dica

    Se a opção Remover estiver desabilitada, provavelmente você não terá 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 a identidade gerenciada no recurso do aplicativo lógico

  1. Abra o recurso de aplicativo lógico no portal do Azure.

  2. No menu do aplicativo lógico, em Configurações, selecione Identidade e, em seguida, siga as etapas para sua identidade:

    • Selecione Atribuída ao sistema>Ativada>Salvar. Quando o Azure solicitar que você confirme, selecione Sim.

    • Selecione Atribuído ao usuário e a identidade gerenciada e, em seguida, selecione Remover. Quando o Azure solicitar que você confirme, selecione Sim.

Desabilitar a identidade gerenciada em um modelo do ARM

Se você tiver criado a identidade gerenciada do aplicativo lógico usando um modelo do ARM, defina o a propriedade filha type de identity do objeto como None.

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

Próximas etapas