Compartilhar via


Adicionar a autenticação para chamadas às APIs personalizadas dos Aplicativos Lógicos do Azure

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: uma para seu recurso do aplicativo lógico e um para seu aplicativo Web (ou aplicativo de API).

  2. Para autenticar chamadas à API, use as credenciais (ID do cliente e segredo) para a entidade de serviço associada à identidade do aplicativo do Microsoft Entra para seu aplicativo lógico.

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

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

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 diretó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. No portal do Azure, selecione Microsoft Entra ID.

  2. Confirme que você está no mesmo diretório que o aplicativo Web ou aplicativo de API.

    Dica

    Para mudar de diretório, selecione seu perfil e selecione outro diretório. Ou escolha Visão Geral>Mudar diretório.

  3. No menu de diretório, em Gerenciar, selecione Registros de aplicativo>Novo registro.

    A lista Todos os registros mostra todos os registros do aplicativo em seu diretório. Para exibir apenas os registros do aplicativo, selecione Aplicativos proprietários.

    Captura de tela mostrando o portal do Azure com a instância do Microsoft Entra, painel

  4. Forneça um nome voltado para o usuário para a identidade do aplicativo lógico. Selecione os tipos de conta com suporte. Para o URI de Redirecionamento, selecione Web, forneça uma URL exclusiva onde retornar a resposta de autenticação e selecione Registrar.

    Captura de tela mostrando o painel

    A lista de aplicativos de propriedade agora inclui sua identidade de aplicativo criada. Se essa identidade não aparecer, na barra de ferramentas, selecione Atualizar.

    Captura de tela mostrando a identidade do aplicativo para seu aplicativo lógico.

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

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

  7. No painel Visão geral, emConceitos básicos, copie e salve a ID do Aplicativo para usar como a “ID do cliente” para o aplicativo lógico na Parte 3.

    Captura de tela mostrando o ID do aplicativo do aplicativo (cliente) destacado.

  8. No menu de navegação de identidade do aplicativo, selecione Certificados e segredos.

  9. Na guia Segredos do cliente, selecione Novo segredo do cliente.

  10. Para Descrição, forneça um nome para seu segredo. Em Expira, selecione uma duração para o segredo. Quando terminar, selecione Adicionar.

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

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

    No painel Certificados e segredos, em Segredos do cliente, seu segredo agora aparece junto com um valor de segredo e uma ID do segredo.

    Captura de tela mostrando o valor secreto e a ID do segredo com o botão copiar para o valor secreto selecionado.

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

    A identidade do aplicativo que você acabou de criar para seu aplicativo Web ou aplicativo de API agora aparece na seção Provedor de identidade:

    Captura de tela mostrando a identidade do aplicativo recém-criado para o 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 cliente e a ID do locatário para a identidade do aplicativo associada ao aplicativo Web ou aplicativo de API. Você usará essas IDs na Parte 3. Portanto, continue com essas etapas para o Portal do Azure.

Localizar a ID do cliente e a ID do locatário da identidade do aplicativo do aplicativo Web ou aplicativo de API no Portal do Azure

  1. No menu de navegação do aplicativo Web, selecione Autenticação.

  2. Na seção Provedor de identidade, localize a identidade do aplicativo que você criou anteriormente. Selecione o nome da identidade do aplicativo.

    Captura de tela mostrando a identidade do aplicativo recém-criado com o painel 'Visão geral' aberto.

  3. Depois que o painel visão geral da identidade do aplicativo for aberto, 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.

    Captura de tela mostrando o painel 'Visão geral' da identidade do aplicativo aberto com o valor 'ID do aplicativo (cliente)' e o valor 'ID do diretório (inquilino)' sublinhado.

    Você também pode usar esse GUID de ID do locatário no modelo de implantação do aplicativo Web ou aplicativo de API, se necessário. Esse GUID é GUID específico do locatário ("ID de locatário") e deve aparecer nessa URL: https://sts.windows.net/{GUID}

Configurar a autenticação quando implantar com um modelo do Azure Resource Manager

Se você estiver usando um modelo do ARM (modelo do Azure Resource Manager), ainda precisará 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ê precisa salvar a ID do cliente e a ID do locatário para uso no modelo de implantação do aplicativo e 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 A GUID do locatário do Microsoft Entra
audience Yes O GUID do recurso de destino que você deseja acessar, que é a ID do cliente da identidade de aplicativo para seu aplicativo Web ou aplicativo de API
clientId Sim O GUID do cliente que solicita o acesso, que é a ID do cliente da identidade do aplicativo para seu aplicativo lógico
secret Sim A chave 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 para o aplicativo Web ou aplicativo de API, você pode usar certificados do cliente. Para configurar seu código, aprenda a configurar a autenticação mútua TLS.

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 por 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. A autenticação básica é um padrão comum e você pode usar essa autenticação em qualquer linguagem usada para compilar seu aplicativo Web ou aplicativo de API.

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 a 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 por meio do 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 à API para seu aplicativo lógico pelo código, extraia o cabeçalho que tem o JWT (Token Web JSON). Verifique a identidade do chamador e rejeite as solicitações que não correspondem.

Próximas etapas