Implantar aplicativos Java Spring Boot nos Aplicativos de Contêiner do Azure
Este artigo mostra como implantar um aplicativo Java Spring Boot com entrada pela conta do Microsoft Entra nos Aplicativos de Contêiner do Azure.
Este artigo pressupõe que você concluiu um dos artigos a seguir usando apenas a guia Executar localmente e agora deseja implantar no Azure. Essas instruções são as mesmas daquelas descritas na guia Implantar no Azure nestes artigos:
- Proteger aplicativos Java Spring Boot usando o Microsoft Entra ID
- Proteger aplicativos Java Spring Boot usando o Azure Active Directory B2C
- Habilitar aplicativos Java Spring Boot para conectar usuários e acessar o Microsoft Graph
- Proteger aplicativos Java Spring Boot usando funções e declarações de função
- Proteger aplicativos Java Spring Boot usando grupos e declarações de grupo
Pré-requisitos
- Uma conta do Azure. Crie uma conta gratuita se ainda não tiver a sua. Você precisa da permissão de Colaborador ou Proprietário na assinatura do Azure para continuar. Para obter mais informações, confira Atribuir funções do Azure usando o portal do Azure.
- O CLI do Azure.
- A extensão, versão
0.3.47
ou superior da CLI dos Aplicativos de Contêiner do Azure. Para instalar a versão mais recente, use o comandoaz extension add --name containerapp --upgrade --allow-preview
. - O Java Development Kit, versão 17 ou superior.
- Maven.
Preparar o projeto Spring
Use as etapas a seguir para preparar o projeto:
Use o comando Maven a seguir para criar o projeto:
mvn clean verify
Execute o projeto de exemplo localmente usando o seguinte comando:
mvn spring-boot:run
Instalação
Para entrar no Azure usando a CLIl, execute o comando a seguir e siga os prompts para concluir o processo de autenticação.
az login
Para garantir que você esteja executando a versão mais recente da CLI, execute o comando “upgrade”.
az upgrade
Em seguida, instale ou atualize a extensão dos Aplicativos de Contêiner do Azure para a CLI.
Se você receber erros sobre parâmetros ausentes ao executar comandos az containerapp
na CLI do Azure, verifique se você tem a versão mais recente da extensão dos Aplicativos de Contêiner do Azure instalada.
az extension add --name containerapp --upgrade
Observação
A partir de maio de 2024, as extensões da CLI do Azure já não permitem funcionalidades de versão prévia do recurso por padrão. Para acessar as versões prévias dos recursos dos Aplicativos de Contêiner, instale a extensão Aplicativos de Contêiner com --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Agora que a extensão ou módulo atual está instalado, registre os namespaces Microsoft.App
e Microsoft.OperationalInsights
.
Observação
Os recursos dos Aplicativos de Contêiner do Azure migraram do namespace Microsoft.Web
para o namespace Microsoft.App
. Consulte a migração de namespace de Microsoft.Web para Microsoft.App em março de 2022 para obter mais detalhes.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Criar o ambiente de Aplicativos de Contêiner do Azure
Agora que a configuração da CLI do Azure foi concluída, você pode definir as variáveis de ambiente que são usadas ao longo deste artigo.
Defina as variáveis a seguir no shell bash.
export RESOURCE_GROUP="ms-identity-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-ms-identity-containerapps"
export API_NAME="ms-identity-api"
export JAR_FILE_PATH_AND_NAME="./target/ms-identity-spring-boot-webapp-0.0.1-SNAPSHOT.jar"
Crie um grupos de recursos.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION \
Criar um ambiente com um espaço de trabalho da Análise de logs gerado automaticamente.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Mostrar o domínio padrão do ambiente do aplicativo de contêiner. Anote esse domínio para usar em seções posteriores.
az containerapp env show \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--query properties.defaultDomain
Preparar o aplicativo para implantação
Ao implantar seu aplicativo nos Aplicativos de Contêiner do Azure, a URL de redirecionamento é alterada para a URL de redirecionamento da instância do aplicativo implantado nos Aplicativos de Contêiner do Azure. Use as etapas a seguir para alterar essas configurações no arquivo application.yml:
Navegue até o arquivo src\main\resources\application.yml do aplicativo e altere o valor de
post-logout-redirect-uri
para o nome de domínio do aplicativo implantado, conforme mostrado no exemplo a seguir. Substitua<API_NAME>
e<default-domain-of-container-app-environment>
pelos valores atuais. Por exemplo, com o domínio padrão para o ambiente do Aplicativo de Contêiner do Azure da etapa anterior ems-identity-api
para o nome do aplicativo, você usariahttps://ms-identity-api.<default-domain>
para o valorpost-logout-redirect-uri
.post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>
Depois de salvar esse arquivo, use o seguinte comando para recompilar o aplicativo:
mvn clean package
Importante
O arquivo application.yml do aplicativo atualmente contém o valor do segredo do cliente no parâmetro client-secret
. Não é recomendável manter esse valor nesse arquivo. Você também pode estar correndo risco se confirmar o arquivo em um repositório Git. Para obter a abordagem recomendada, consulte Gerenciar segredos nos Aplicativos de Contêiner do Azure.
Atualizar seu registro de aplicativo do Microsoft Entra ID
Como o URI de redirecionamento é alterado para o aplicativo implantado nos Aplicativos de Contêiner do Azure, você também precisa alterar o URI de redirecionamento no registro do aplicativo Microsoft Entra ID. Use as seguintes etapas para fazer essa alteração:
Navegue até a página de registros de aplicativo da plataforma de identidade da Microsoft para desenvolvedores.
Use a caixa de pesquisa para procurar o registro do aplicativo. Por exemplo,
java-servlet-webapp-authentication
.Abra o registro do aplicativo selecionando seu nome.
Selecione Autenticação no menu.
Na seção Web - URIs de redirecionamento, selecione Adicionar URI.
Preencha o URI do aplicativo, anexando
/login/oauth2/code/
, por exemplo,https://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/
.Selecione Salvar.
Implantar o aplicativo
Implante o pacote JAR nos Aplicativos de Contêiner do Azure.
Observação
Se necessário, você pode especificar a versão do JDK nas variáveis de ambiente de build do Java. Para obter mais informações, confira Compilar variáveis de ambiente para Java em Aplicativos de Contêiner do Azure.
Agora você pode implantar o arquivo WAR com o comando da CLI az containerapp up
.
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--artifact <JAR_FILE_PATH_AND_NAME> \
--ingress external \
--target-port 8080 \
--query properties.configuration.ingress.fqdn
Observação
A versão padrão do JDK é 17. Se você precisar alterar a versão do JDK para compatibilidade com o seu aplicativo, poderá usar o argumento --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION>
para ajustar o número de versão.
Para obter mais variáveis de ambiente de compilação, consulte Compilar variáveis de ambiente para Java em Aplicativos de Contêiner do Azure.
Validar o aplicativo
Neste exemplo, o comando containerapp up
inclui o argumento --query properties.configuration.ingress.fqdn
, que retorna o FQDN (nome de domínio totalmente qualificado), também conhecido como URL do aplicativo. Use as seguintes etapas para verificar o log do aplicativo a fim de investigar qualquer problema de implantação:
Acesse a URL do aplicativo de saída na página Saídas da seção Implantação.
No painel de navegação da página Visão geral da instância de Aplicativos de Contêiner do Azure, selecione Logs para verificar os logs do aplicativo.
Mais informações
- Plataforma de identidade da Microsoft (Microsoft Entra ID para desenvolvedores)
- Visão geral da Biblioteca de autenticação da Microsoft (MSAL)
- Início rápido: registrar um aplicativo na plataforma de identidade da Microsoft
- Início Rápido: Configurar um aplicativo cliente para acessar APIs Web
- Noções básicas sobre as experiências de consentimento do aplicativo Microsoft Entra ID
- Entenda o consentimento do usuário e do administrador
- Objetos de entidade de serviço e aplicativo no Microsoft Entra ID
- Nuvens nacionais
- Exemplos de código do MSAL
- Biblioteca de cliente do Microsoft Entra ID Spring Boot Starter para Java
- Biblioteca de Autenticação da Microsoft para Java (MSAL4J)
- Wiki do MSAL4J
- Tokens de ID
- Tokens de acesso da plataforma de identidade da Microsoft
Próximas etapas
Para obter mais informações e outras opções de implantação, consulte os artigos a seguir: