Compartilhar via


Adicionar autenticação do Microsoft Entra para chamar APIs personalizadas dos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo)

Para aprimorar a segurança para chamadas às suas APIs, você pode configurar a autenticação do Microsoft Entra no portal do Azure para que não precise atualizar seu código. Ou você pode exigir e aplicar a autenticação por meio do seu código da API.

Você pode adicionar a autenticação das seguintes maneiras:

Autenticar chamadas para a API sem alterar o código

Eis as etapas gerais para este método:

  1. Crie duas identidades de aplicativo do Microsoft Entra (registro de aplicativo): uma para o recurso de aplicativo lógico e outra para seu aplicativo Web (ou aplicativo de API).

  2. Para autenticar chamadas à sua API, use as credenciais (ID do cliente e segredo) da entidade de serviço associada à identidade de aplicativo Microsoft Entra para o seu Logic App.

  3. Inclua as IDs de aplicativo na definição do fluxo de trabalho do aplicativo lógico.

Parte 1: Criar uma identidade de aplicativo do Microsoft Entra para seu aplicativo de lógica

Seu recurso de aplicativo lógico usa essa identidade de aplicativo do Microsoft Entra para se autenticar no Microsoft Entra ID. Você só precisa configurar essa identidade uma vez para seu locatário. Por exemplo, você pode optar por usar a mesma identidade para todos os seus aplicativos lógicos, embora possa criar identidades exclusivas para cada aplicativo lógico. É possível configurar essas identidades no Portal do Azure ou usar o PowerShell.

  1. Na caixa de pesquisa do portal do Azure , localize e selecione a ID do Microsoft Entra.

  2. Confirme se você está no mesmo locatário que seu aplicativo Web ou aplicativo de API.

    Dica

    Para alternar locatários, na barra de título do Azure, abra seu perfil e selecione Alternar diretório.

  3. No menu de recursos do locatário, em Gerenciar, selecione Registros de aplicativo.

    A página Cadastros de aplicativo mostra todos os cadastros de aplicativo em seu locatário. Para exibir apenas os registros do aplicativo, selecione Aplicativos proprietários.

  4. Na barra de ferramentas, selecione Novo registro.

    Uma captura de tela mostra o portal do Azure com o locatário do Microsoft Entra, o painel de Registros de Aplicativo e o comando selecionado para Novo registro.

  5. Na página Registrar um aplicativo , siga estas etapas:

    1. Para Nome, forneça um nome amigável voltado para o usuário para a identidade do aplicativo Logic.

    2. Em tipos de conta com suporte, selecione a opção que melhor descreve os tipos de conta que podem usar a identidade do aplicativo ou obter acesso à sua API.

    3. Em URI de Redirecionamento, selecione Web como a plataforma. Ao lado dessa opção, forneça uma URL exclusiva para o local retornar a resposta de autenticação.

      A captura de tela mostra o painel para registrar um aplicativo com o nome da identidade do aplicativo e a URL para onde enviar a resposta de autenticação.

    4. Quando terminar, selecione Registrar.

    A guia Aplicativos de Propriedade agora mostra a identidade do aplicativo criado. Se essa identidade não aparecer, na barra de ferramentas, selecione Atualizar.

    A captura de tela mostra a identidade do aplicativo para seu aplicativo de lógica.

  6. Na lista de registros de aplicativo, selecione sua nova identidade do aplicativo.

  7. No menu de navegação de identidade do aplicativo, selecione Visão geral.

  8. Na página Visão geral , em Essentials, copie e salve a ID do aplicativo (cliente) para usar como a ID do cliente para seu aplicativo lógico na Parte 3.

    A captura de tela mostra a ID do aplicativo (cliente) realçada.

  9. No menu de identidade do aplicativo, em Gerenciar, selecione Certificados & segredos.

  10. Na página Segredos do cliente , selecione Novo segredo do cliente.

  11. No painel Adicionar um segredo do cliente , para Descrição, forneça um nome para seu segredo. Para Expirar, selecione uma duração para seu segredo. Quando terminar, selecione Adicionar.

    A chave que você está criando atua como o “segredo” ou a senha da identidade do aplicativo para o seu aplicativo de lógica.

    Captura de tela mostra a criação de um segredo para a identidade do aplicativo.

    Na página Certificados > segredos , na guia Segredos do Cliente , seu segredo agora aparece junto com um valor secreto e uma ID secreta.

    A captura de tela mostra o valor secreto e a ID do segredo com o botão copiar para o valor do segredo selecionado.

  12. Copie o valor do segredo para usar depois. Quando você configurar seu aplicativo lógico na Parte 3, poderá especificar esta chave como o "segredo" ou a senha.

Parte 2: Criar uma identidade do aplicativo do Microsoft Entra para seu aplicativo Web ou aplicativo de API

Se seu aplicativo Web ou aplicativo de API já estiver implantado, você poderá ativar a autenticação e criar a identidade do aplicativo no Portal do Azure. Caso contrário, você pode ativar a autenticação quando implantar com um modelo do Azure Resource Manager.

Criar a identidade do aplicativo para um aplicativo Web implantado ou aplicativo de API no portal do Azure

  1. No portal do Azure, localize e selecione o aplicativo Web ou aplicativo de API.

  2. Em Configurações, selecione Autenticação>Adicionar provedor de identidade.

  3. Depois que o painel Adicionar um provedor de identidade for aberto, na guia Noções básicas, na lista de Provedores de identidade, selecione a Microsoft para usar identidades do Microsoft Entra e selecione Adicionar.

  4. Agora crie uma identidade do aplicativo para seu aplicativo Web ou aplicativo de API conforme mostrado aqui:

    1. Em Tipo de registro do aplicativo, selecione Criar novo registro de aplicativo.

    2. Para Nome, forneça um nome para a identidade do aplicativo.

    3. Para tipos de conta com suporte, selecione os tipos de conta apropriados para seu cenário.

    4. Para restringir o acesso, selecione Exigir autenticação.

    5. Para solicitações não autenticadas, selecione a opção com base em seu cenário.

    6. Quando terminar, selecione Adicionar.

    Na seção Provedor de identidade , a nova identidade de aplicativo para seu aplicativo Web ou aplicativo de API agora aparece:

    A captura de tela mostra a identidade do aplicativo recém-criado para aplicativo Web ou aplicativo de API.

    Dica

    Se essa identidade do aplicativo não aparecer, na barra de ferramentas, selecione Atualizar.

Agora você deve encontrar a ID do aplicativo (cliente) e a ID do locatário para a identidade do aplicativo que você acabou de criar para seu aplicativo web ou aplicativo de API. Você usará essas IDs na Parte 3. Portanto, continue com essas etapas para o Portal do Azure.

Encontre o ID do cliente e o ID do locatário da identidade do seu aplicativo Web ou aplicativo de API no Portal do Azure

  1. No menu do aplicativo Web, em Gerenciar, selecione Autenticação.

  2. Na seção Provedor de identidade , localize sua identidade de aplicativo criada anteriormente. Selecione o nome da identidade do aplicativo.

    A captura de tela mostra a página Autenticação aberta para a identidade do aplicativo recém-criado.

  3. Na página Visão geral, localize os valores da ID do aplicativo (cliente) e da ID do diretório (locatário). Copie e salve os valores para uso na Parte 3.

    A captura de tela mostra a página de Visão Geral aberta para a identidade do aplicativo web e os valores selecionados para a ID do aplicativo (cliente) e a ID do diretório (locatário).

    Você também pode usar o GUID de ID do locatário no modelo de implantação do seu aplicativo web ou aplicativo API, se necessário. Esse GUID é do seu locatário específico ("ID de locatário") e deve aparecer nesta URL: https://sts.windows.net/<tenant-GUID>

Configure a autenticação ao implantar com um modelo do Gerenciador de Recursos do Azure

Se você estiver usando um modelo do Azure Resource Manager (modelo do ARM), ainda é necessário criar uma identidade de aplicativo do Microsoft Entra para seu aplicativo web ou aplicativo de API, que difere da identidade do aplicativo para seu aplicativo lógico. Para criar a identidade do aplicativo e encontrar a ID do cliente e a ID do locatário, siga as etapas anteriores na Parte 2 para o portal do Azure. Você precisará usar tanto o ID do cliente quanto o ID do locatário no modelo de implantação do seu aplicativo e também na Parte 3.

Importante

Quando você cria a identidade do aplicativo do Microsoft Entra para seu aplicativo Web ou aplicativo de API, é necessário usar o Portal do Azure, não o PowerShell. O cmdlet do PowerShell não configura as permissões necessárias para conectar os usuários em um site.

Depois que você obtiver a ID do cliente e a ID do locatário, inclua essas IDs como um recurso secundário do seu aplicativo Web ou aplicativo de API no seu modelo de implantação:

"resources": [
   {
      "apiVersion": "2015-08-01",
      "name": "web",
      "type": "config",
      "dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
      "properties": {
         "siteAuthEnabled": true,
         "siteAuthSettings": {
            "clientId": "<client-ID>",
            "issuer": "https://sts.windows.net/<tenant-ID>/"
         }
      }
   }
]

Para implantar automaticamente um aplicativo Web em branco e um aplicativo lógico com a autenticação do Microsoft Entra, exiba o modelo completo aqui ou clique no botão Implantar no Azure:

Implantar no Azure

Parte 3: Preencher a seção Autorização no aplicativo lógico

O modelo anterior já tem essa seção de autorização definida, mas se você estiver criando a definição de aplicativo lógico diretamente, precisará incluir a seção de autorização completa.

  1. Abra sua definição de aplicativo lógico na exibição de código.

  2. Vá para a definição de ação HTTP, localize a seção Autorização e inclua as seguintes propriedades:

{
   "tenant": "<tenant-ID>",
   "audience": "<client-ID-from-Part-2-web-app-or-API app>",
   "clientId": "<client-ID-from-Part-1-logic-app>",
   "secret": "<secret-from-Part-1-logic-app>",
   "type": "ActiveDirectoryOAuth"
}
Propriedade Obrigatório Descrição
tenant Sim O GUID para o locatário do Microsoft Entra.
audience Sim O GUID para o recurso de destino que você deseja acessar, que é a ID de cliente da identidade do aplicativo para seu aplicativo web ou aplicativo API.
clientId Sim O identificador GUID para o cliente que solicita acesso, que é o ID do cliente da identidade do aplicativo para seu aplicativo lógico.
secret Sim O segredo ou a senha da identidade do aplicativo para o cliente que está solicitando o token de acesso.
type Sim O tipo de autenticação. Para autenticação de ActiveDirectoryOAuth, o valor é ActiveDirectoryOAuth.

Por exemplo:

{
   "actions": {
      "HTTP": {
         "inputs": {
            "method": "POST",
            "uri": "https://your-api-azurewebsites.net/api/your-method",
            "authentication": {
               "tenant": "tenant-ID",
               "audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
               "clientId": "client-ID-from-azure-ad-app-for-logic-app",
               "secret": "key-from-azure-ad-app-for-logic-app",
               "type": "ActiveDirectoryOAuth"
            }
         }
      }
   }
}

Proteger chamadas à API por meio de código

Autenticação de certificado

Para validar as solicitações recebidas do fluxo de trabalho do seu aplicativo lógica para o aplicativo Web ou aplicativo de API, você pode usar certificados de cliente. Para configurar seu código, aprenda a configurar a autenticação mútua TLS.

Importante

Sempre garanta a proteção de dados confidenciais e pessoais, como credenciais, segredos, chaves de acesso, cadeias de conexão, certificados, hashes e informações semelhantes, com o mais alto nível de segurança disponível ou suportado.

Certifique-se de armazenar essas informações com segurança usando o Microsoft Entra ID e o Azure Key Vault. Não codifique essas informações, compartilhe com outros usuários ou salve em texto sem formatação em qualquer lugar que outras pessoas possam acessar. Crie um plano para rotacionar ou revogar segredos caso eles sejam comprometidos. Para obter mais informações, consulte os seguintes recursos:

Na seção Autorização, inclua estas propriedades:

{
   "type": "ClientCertificate",
   "password": "<password>",
   "pfx": "<long-pfx-key>"
}
Propriedade Obrigatório Descrição
type Sim O tipo de autenticação. Para certificados de cliente TLS/SSL, o valor deve ser ClientCertificate.
password Não A senha para acessar o certificado do cliente (arquivo PFX).
pfx Sim O conteúdo codificado em base64 do certificado do cliente (arquivo PFX).

autenticação Básica

Para validar solicitações de entrada de seu aplicativo lógico para o aplicativo Web ou aplicativo de API, você pode usar a autenticação básica, como um nome de usuário e senha. Embora a autenticação básica seja um padrão comum e você possa usar essa autenticação em qualquer idioma usado para criar seu aplicativo Web ou aplicativo de API, sempre use o melhor nível de autenticação disponível ou com suporte.

Aviso

A Microsoft recomenda contra o uso dos seguintes fluxos para autenticação e autorização:

  • Credenciais de senha do proprietário do recurso (ROPC) para OAuth 2.0

    Esse fluxo permite que você entre em um aplicativo com uma senha. O fluxo é incompatível com a MFA (autenticação multifator), requer um alto grau de confiança no aplicativo e traz riscos que não existem em outros fluxos. Use esse fluxo somente se outros fluxos mais seguros não tiverem suporte ou estiverem disponíveis.

    Para obter mais informações, consulte credenciais de senha do proprietário do recurso Oauth 2.0.

  • Fluxo de concessão implícita para OAuth 2.0

    Esse fluxo baseado em token destina-se a aplicativos Web tradicionais em que o servidor tem controle mais seguro sobre o processamento POST de dados e geralmente é usado com o fluxo de código de autorização. Devido à forma como esse fluxo manipula e retorna tokens de ID ou tokens de acesso, o fluxo requer um grau muito alto de confiança no aplicativo e traz riscos que não existem em outros fluxos. Use esse fluxo somente quando outros fluxos mais seguros não tiverem suporte ou estiverem disponíveis.

    Para obter mais informações, consulte o fluxo de concessão implícita do OAuth 2.0.

Na seção Autorização, inclua estas propriedades:

{
   "type": "Basic",
   "username": "<username>",
   "password": "<password>"
}
Propriedade Obrigatório Descrição
type Sim O tipo de autenticação que você deseja usar. Para autenticação básica, o valor deve ser **Basic**.
username Sim O nome de usuário que você deseja usar para autenticação.
password Sim A senha que você deseja usar para autenticação.

Autenticação do Microsoft Entra usando código

Por padrão, a autenticação do Microsoft Entra que você ativa no portal do Azure não fornece autorizações refinadas. Por exemplo, essa autenticação bloqueia sua API para apenas um locatário específico, não para um usuário ou aplicativo específico.

Para restringir o acesso à sua API no Aplicativo Lógico através do código, extraia o cabeçalho que contém o JWT (JSON Web Token). Verifique a identidade do chamador e rejeite as solicitações que não correspondem.

Próximas etapas