Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Note
Os planos Basic, Standarde Enterprise entraram em um período de aposentadoria em 17 de março de 2025. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
Este artigo aplica-se a:✅ Empresa Básica/Padrão ✅
Este artigo mostra como criar uma identidade gerenciada para um aplicativo hospedado no Azure Spring Apps e usá-la para invocar funções acionadas por HTTP.
Tanto o Azure Functions quanto os Serviços de Aplicativo têm suporte interno para a autenticação do Microsoft Entra. Usando esse recurso de autenticação interno junto com Identidades Gerenciadas para Aplicativos Spring do Azure, você pode invocar serviços RESTful usando semântica OAuth moderna. Esse método não requer o armazenamento de segredos no código e fornece controles mais granulares para controlar o acesso a recursos externos.
Prerequisites
- Uma assinatura do Azure. Se você não tiver uma assinatura, crie uma conta gratuita antes de começar.
- Azure CLI versão 2.45.0 ou superior.
- Git.
- Apache Maven versão 3.0 ou superior.
- Instale as Ferramentas Principais do Azure Functions versão 4.x.
Criar um grupo de recursos
Um grupo de recursos é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Use o seguinte comando para criar um grupo de recursos para conter um aplicativo Function:
az group create --name <resource-group-name> --location <location>
Para obter mais informações, consulte o comando az group create .
Criar um aplicativo de função
Para criar um aplicativo Function, você deve primeiro criar uma conta de armazenamento de backup. Você pode usar o comando az storage account create .
Important
Cada aplicativo Function e conta de armazenamento deve ter um nome exclusivo.
Use o comando a seguir para criar a conta de armazenamento. Substitua <function-app-name> pelo nome do seu aplicativo Function e <storage-account-name> pelo nome da sua conta de armazenamento.
az storage account create \
--resource-group <resource-group-name> \
--name <storage-account-name> \
--location <location> \
--sku Standard_LRS
Depois que a conta de armazenamento for criada, use o seguinte comando para criar o aplicativo Function:
az functionapp create \
--resource-group <resource-group-name> \
--name <function-app-name> \
--consumption-plan-location <location> \
--os-type windows \
--runtime node \
--storage-account <storage-account-name> \
--functions-version 4
Anote o valor retornado hostNames , que está no formato https://<your-functionapp-name>.azurewebsites.net. Use esse valor na URL raiz do aplicativo Function para testar o aplicativo Function.
Habilitar a autenticação do Microsoft Entra
Use as etapas a seguir para habilitar a autenticação do Microsoft Entra para acessar seu aplicativo Function.
- No portal do Azure, navegue até seu grupo de recursos e abra o aplicativo Função que você criou.
- No painel de navegação, selecione Autenticação e, em seguida, selecione Adicionar provedor de identidade no painel principal.
- Na página Adicionar um provedor de identidade, selecione Microsoft no menu suspenso Provedor de identidade.
- Selecione Adicionar.
- Para as configurações básicas na página Adicionar um provedor de identidade, configure os tipos de conta suportados como Qualquer diretório do Microsoft Entra - Multi-inquilino.
- Defina solicitações não autenticadas como HTTP 401 Não autorizado: recomendado para APIs. Essa configuração garante que todas as solicitações não autenticadas sejam negadas (resposta 401).
- Selecione Adicionar.
Depois de adicionar as configurações, a aplicação de Função será reiniciada e todas as solicitações subsequentes terão de iniciar sessão através do Microsoft Entra ID. Você pode testar se as solicitações não autenticadas estão sendo rejeitadas com a URL raiz da aplicação Function (retornada na hostNames saída do comando az functionapp create). Em seguida, você deve ser redirecionado para a tela de entrada do Microsoft Entra da sua organização.
Você precisa da ID do Aplicativo e do URI da ID do Aplicativo para uso posterior. No portal do Azure, navegue até o aplicativo Função que você criou.
Para obter a ID da aplicação, selecione Autenticação no painel de navegação e copie o valor da ID da aplicação (cliente) para o provedor de identidade que inclui o nome da aplicação Função.
Para obter o URI da ID do Aplicativo, selecione Expor uma API no painel de navegação e copie o valor do URI da ID do Aplicativo .
Criar uma função acionada por HTTP
Em um diretório local vazio, use os seguintes comandos para criar um novo aplicativo de função e adicionar uma função acionada por HTTP:
func init --worker-runtime node
func new --template HttpTrigger --name HttpTrigger
Por padrão, as funções usam autenticação baseada em chave para proteger pontos de extremidade HTTP. Para habilitar a autenticação do Microsoft Entra para proteger o acesso às funções, defina a authLevel chave como anonymous no arquivo function.json , conforme mostrado no exemplo a seguir:
{
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
...
}
]
}
Para obter mais informações, consulte a secção Pontos de Extremidade HTTP Seguros de Proteção das Funções Azure.
Use o seguinte comando para publicar o aplicativo na instância criada na etapa anterior:
func azure functionapp publish <function-app-name>
A saída do comando publish deve listar a URL para sua função recém-criada, conforme mostrado na saída a seguir:
Deployment completed successfully.
Syncing triggers...
Functions in <your-functionapp-name>:
HttpTrigger - [httpTrigger]
Invoke url: https://<function-app-name>.azurewebsites.net/api/httptrigger
Criar uma instância de serviço e um aplicativo do Azure Spring Apps
Use os seguintes comandos para adicionar a extensão spring e criar uma nova instância do Azure Spring Apps:
az extension add --upgrade --name spring
az spring create \
--resource-group <resource-group-name> \
--name <Azure-Spring-Apps-instance-name> \
--location <location>
Use o comando a seguir para criar um aplicativo nomeado msiapp com uma identidade gerenciada atribuída ao sistema, conforme solicitado pelo --assign-identity parâmetro:
az spring app create \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name "msiapp" \
--assign-endpoint true \
--assign-identity
Crie um aplicativo Spring Boot de exemplo para invocar a função
Este exemplo invoca a função acionada por HTTP solicitando primeiro um token de acesso do ponto de extremidade MSI e usando esse token para autenticar a solicitação HTTP da função. Para obter mais informações, consulte a seção Obter um token usando HTTP de Como usar identidades gerenciadas para recursos do Azure em uma VM do Azure para adquirir um token de acesso.
Use o seguinte comando clone o projeto de exemplo:
git clone https://github.com/Azure-Samples/azure-spring-apps-samples.gitUse o seguinte comando para especificar o URI da função e o nome do gatilho nas propriedades do aplicativo:
cd azure-spring-apps-samples/managed-identity-function vim src/main/resources/application.propertiesPara usar a identidade gerenciada para aplicativos do Azure Spring Apps, adicione as seguintes propriedades com esses valores a src/main/resources/application.properties:
azure.function.uri=https://<function-app-name>.azurewebsites.net azure.function.triggerPath=httptrigger azure.function.application-id.uri=<function-app-application-ID-uri>Use o seguinte comando para empacotar seu aplicativo de exemplo:
mvn clean packageUse o seguinte comando para implantar o aplicativo no Azure Spring Apps:
az spring app deploy \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name "msiapp" \ --artifact-path target/asc-managed-identity-function-sample-0.1.0.jarUse o seguinte comando para acessar o ponto de extremidade público ou o ponto de extremidade de teste para testar seu aplicativo:
curl https://<Azure-Spring-Apps-instance-name>-msiapp.azuremicroservices.io/func/springcloudA mensagem seguinte é retornada no corpo da resposta.
Function Response: Hello, springcloud. This HTTP triggered function executed successfully.