Serviços de back-end seguros usando autenticação de certificado de cliente no Gerenciamento de API do Azure
APLICA-SE A: Todas as camadas de gerenciamento de API
O Gerenciamento de API permite que você proteja o acesso ao serviço de back-end de uma API usando certificados de cliente e autenticação TLS mútua. Este guia mostra como gerenciar certificados em uma instância de serviço de Gerenciamento de API do Azure usando o portal do Azure. Ele também explica como configurar uma API para usar um certificado para acessar um serviço de back-end.
Você também pode gerenciar certificados de Gerenciamento de API usando a API REST de Gerenciamento de API.
Opções de certificado
O Gerenciamento de API fornece duas opções para gerenciar certificados usados para proteger o acesso aos serviços de back-end:
- Fazer referência a um certificado gerenciado no Azure Key Vault
- Adicionar um ficheiro de certificado diretamente na Gestão de API
O uso de certificados de cofre de chaves é recomendado porque ajuda a melhorar a segurança do Gerenciamento de API:
- Os certificados armazenados em cofres de chaves podem ser reutilizados em todos os serviços
- Políticas de acesso granulares podem ser aplicadas a certificados armazenados em cofres de chaves
- Os certificados atualizados no cofre de chaves são alternados automaticamente no Gerenciamento de API. Após a atualização no cofre de chaves, um certificado no Gerenciamento de API é atualizado dentro de 4 horas. Você também pode atualizar manualmente o certificado usando o portal do Azure ou por meio da API REST de gerenciamento.
Pré-requisitos
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Se você ainda não criou uma instância de serviço de Gerenciamento de API, consulte Criar uma instância de serviço de Gerenciamento de API.
Você deve ter seu serviço de back-end configurado para autenticação de certificado de cliente. Para configurar a autenticação de certificado no Serviço de Aplicativo do Azure, consulte este artigo.
Você precisa acessar o certificado e a senha para gerenciamento em um cofre de chaves do Azure ou carregar para o serviço de Gerenciamento de API. O certificado deve estar no formato PFX . Certificados autoassinados são permitidos.
Se você usar um certificado autoassinado:
Instale certificados de CA raiz e intermediária confiáveis em sua instância de Gerenciamento de API.
Nota
Não há suporte para certificados de CA para validação de certificados na camada Consumo.
Pré-requisitos para integração do cofre de chaves
Nota
Atualmente, esse recurso não está disponível em espaços de trabalho.
Se ainda não tiver um cofre de chaves, crie um. Para conhecer as etapas para criar um cofre de chaves, consulte Guia de início rápido: criar um cofre de chaves usando o portal do Azure.
Para criar ou importar um certificado para o cofre de chaves, consulte Guia de início rápido: definir e recuperar um certificado do Cofre de Chaves do Azure usando o portal do Azure.
Habilite uma identidade gerenciada atribuída pelo sistema ou pelo usuário na instância de Gerenciamento de API.
Configurar o acesso ao cofre de chaves
No portal, navegue até o cofre das chaves.
No menu à esquerda, selecione Configuração do Access e anote o modelo de permissão que está configurado.
Dependendo do modelo de permissão, configure uma política de acesso ao cofre de chaves ou o acesso RBAC do Azure para uma identidade gerenciada pelo Gerenciamento de API.
Para adicionar uma política de acesso ao cofre de chaves:
- No menu à esquerda, selecione Políticas de acesso.
- Na página Políticas de acesso , selecione + Criar.
- No separador Permissões, em Permissões secretas, selecione Obter e Listar e, em seguida, selecione Seguinte.
- No separador Principal, Selecione entidade de segurança, procure o nome do recurso da sua identidade gerida e, em seguida, selecione Seguinte. Se você estiver usando uma identidade atribuída ao sistema, o principal será o nome da sua instância de Gerenciamento de API.
- Selecione Avançar novamente. No separador Rever + criar, selecione Criar.
Para configurar o acesso ao Azure RBAC:
- No menu à esquerda, selecione Controle de acesso (IAM).
- Na página Controle de acesso (IAM), selecione Adicionar atribuição de função.
- Na guia Função, selecione Usuário do Certificado do Cofre da Chave.
- Na guia Membros, selecione Identidade> gerenciada+ Selecionar membros.
- Na página Selecionar identidade gerenciada, selecione a identidade gerenciada atribuída ao sistema ou uma identidade gerenciada atribuída pelo usuário associada à sua instância de Gerenciamento de API e selecione Selecionar.
- Selecione Rever + atribuir.
Requisitos para o firewall do Key Vault
Se o firewall do Cofre da Chave estiver habilitado no cofre de chaves, os seguintes requisitos são adicionais:
Você deve usar a identidade gerenciada atribuída pelo sistema da instância de Gerenciamento de API para acessar o cofre de chaves.
No firewall do Cofre de Chaves, habilite a opção Permitir que Serviços Microsoft Confiáveis ignorem esse firewall .
Certifique-se de que o endereço IP do cliente local tenha permissão para acessar o cofre de chaves temporariamente enquanto seleciona um certificado ou segredo para adicionar ao Gerenciamento de API do Azure. Para obter mais informações, consulte Configurar configurações de rede do Cofre da Chave do Azure.
Depois de concluir a configuração, você pode bloquear o endereço do cliente no firewall do cofre de chaves.
Requisitos da rede virtual
Se a instância de Gerenciamento de API for implantada em uma rede virtual, defina também as seguintes configurações de rede:
- Habilite um ponto de extremidade de serviço para o Cofre de Chaves do Azure na sub-rede Gerenciamento de API.
- Configure uma regra NSG (grupo de segurança de rede) para permitir o tráfego de saída para as tags de serviço AzureKeyVault e AzureActiveDirectory.
Para obter detalhes, consulte Configuração de rede ao configurar o Gerenciamento de API do Azure em uma rede virtual.
Adicionar um certificado de cofre de chaves
Consulte Pré-requisitos para integração do cofre de chaves.
Importante
Ao adicionar um certificado de cofre de chaves à sua instância de Gerenciamento de API, você deve ter permissões para listar segredos do cofre de chaves.
Atenção
Ao usar um certificado de cofre de chaves no Gerenciamento de API, tenha cuidado para não excluir o certificado, o cofre de chaves ou a identidade gerenciada usada para acessar o cofre de chaves.
Para adicionar um certificado de cofre de chaves ao Gerenciamento de API:
No portal do Azure, navegue até sua instância de Gerenciamento de API.
Em Segurança, selecione Certificados.
Selecione Certificados>+ Adicionar.
Em Id, insira um nome de sua escolha.
Em Certificado, selecione Cofre de chaves.
Insira o identificador de um certificado do cofre de chaves ou escolha Selecionar para selecionar um certificado de um cofre de chaves.
Importante
Se você mesmo inserir um identificador de certificado do cofre de chaves, certifique-se de que ele não tenha informações de versão. Caso contrário, o certificado não será girado automaticamente no Gerenciamento de API após uma atualização no cofre de chaves.
Em Identidade do cliente, selecione uma identidade gerenciada atribuída pelo sistema ou pelo usuário. Saiba como adicionar ou modificar identidades gerenciadas em seu serviço de Gerenciamento de API.
Nota
A identidade precisa de permissões para obter e listar o certificado do cofre de chaves. Se você ainda não configurou o acesso ao cofre de chaves, o Gerenciamento de API solicitará que ele possa configurar automaticamente a identidade com as permissões necessárias.
Selecione Adicionar.
Selecione Guardar.
Carregar um certificado
Para carregar um certificado de cliente para o Gerenciamento de API:
No portal do Azure, navegue até sua instância de Gerenciamento de API.
Em Segurança, selecione Certificados.
Selecione Certificados>+ Adicionar.
Em Id, insira um nome de sua escolha.
Em Certificado, selecione Personalizado.
Navegue para selecionar o arquivo .pfx do certificado e digite sua senha.
Selecione Adicionar.
Selecione Guardar.
Depois que o certificado é carregado, ele é exibido na janela Certificados . Se você tiver muitos certificados, anote a impressão digital do certificado desejado para configurar uma API para usar um certificado de cliente para autenticação de gateway.
Configurar uma API para usar o certificado do cliente para autenticação de gateway
No portal do Azure, navegue até sua instância de Gerenciamento de API.
Em APIs, selecione APIs.
Selecione uma API na lista.
Na guia Design, selecione o ícone do editor na seção Back-end.
Em Credenciais de gateway, selecione Certificado de cliente e selecione seu certificado na lista suspensa.
Selecione Guardar.
Atenção
Essa alteração entra em vigor imediatamente e as chamadas para operações dessa API usarão o certificado para autenticação no servidor back-end.
Gorjeta
Quando um certificado é especificado para autenticação de gateway para o serviço de back-end de uma API, ele se torna parte da política para essa API e pode ser exibido no editor de políticas.
Desabilitar a validação da cadeia de certificados para certificados autoassinados
Se você estiver usando certificados autoassinados, precisará desabilitar a validação da cadeia de certificados para que o Gerenciamento de API se comunique com o sistema de back-end. Caso contrário, ele retornará um código de erro 500. Para configurar isso, você pode usar os New-AzApiManagementBackend
cmdlets do PowerShell (para novo back-end) ou Set-AzApiManagementBackend
(para back-end existente) e definir o -SkipCertificateChainValidation
parâmetro como True
.
$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true
Você também pode desabilitar a validação da cadeia de certificados usando a API REST de back-end .
Excluir um certificado de cliente
Para excluir um certificado, selecione-o e, em seguida, selecione Excluir no menu de contexto (...).
Importante
Se o certificado for referenciado por quaisquer políticas, uma tela de aviso será exibida. Para excluir o certificado, você deve primeiro removê-lo de todas as políticas configuradas para usá-lo.