O Azure Defender no Azure tem duas políticas para autenticação da Função Azure que não consigo implementar a partir de outros recursos do Azure que suportam chamadas http.
- Os aplicativos de funções devem ter certificados de cliente (certificados de cliente de entrada) habilitados
- Os aplicativos de funções devem ter a autenticação habilitada
No Azure Datafactory, se eu escolher a autenticação como identidade gerenciada pelo sistema e tentar passar um certificado nos cabeçalhos, ele não será suportado pela Microsoft (como me disseram em um tíquete de suporte "há ocasiões muito raras em que você pode autenticar com 2 tipos diferentes de autenticação ao mesmo tempo, a autenticação MSI deve ser suficiente.")
autenticação de identidade gerenciada pelo sistema
Alguém habilitou com êxito certificados de cliente e autenticação em um aplicativo de funções e conseguiu a autenticação do cliente? Você pode compartilhar a configuração no lado do cliente para um aplicativo lógico ou datafactory?
Responder1
Seria mais fácil responder à sua pergunta se você pudesse fornecer mais detalhes sobre seu caso de uso. No entanto, tentarei responder com minhas suposições. (em negrito)
Usando uma atividade Web no Azure Data Factory para chamar uma função do Azure.
Infelizmente, você não pode usar os métodos de autenticação de identidade gerenciada atribuída pelo sistema e certificado de cliente na atividade da Web simultaneamente.
Se você ainda quiser usar os dois métodos simultaneamente, então
- você precisa ativar a autenticação de identidade gerenciada na atividade da Web e
- passe o certificado em um cabeçalho personalizado e valide-o no código da Função Azure.
Observe que passar o certificado em um cabeçalho personalizado não tem nada a ver com o recurso interno do Azure FunctionModo de certificado de cliente. Você deve deixar o modo de certificado de cliente ativadoIgnorarestado nas configurações gerais da função Azure. Neste caso, o equilibrador de carga frontal da Função Azure encaminhará os cabeçalhos de forma transparente para o código do cliente.
Fornecendo dois métodos independentes para autenticação no Azure Function
Se você permitir que a Função do Azure forneça os dois métodos para seus clientes de forma independente, selecione opermitiropção nas configurações do modo de certificado do cliente na Função Azure. Nesse caso, os clientes serão solicitados primeiro pelo balanceador de carga de front-end a fornecer um certificado. Se nenhum certificado for fornecido, os balanceadores de carga encaminharão a solicitação ao middleware Easy-Auth para autenticar o chamador. Solicitações não autenticadas serão bloqueadas pelo middleware.
Com este método alternativo você pode fornecer dois métodos de autenticação de forma independente. Por favor, deixe-me saber se minhas suposições estão corretas ou se você precisa de mais detalhes sobre como configurar os componentes para realizar as soluções sugeridas.