Implantar aplicativos Java JBoss EAP no Serviço de Aplicativo do Azure
Este artigo mostra como implantar um aplicativo JBoss EAP com a entrada da conta do Microsoft Entra no Serviço de Aplicativo 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:
- Habilitar o login para aplicativos Java JBoss EAP usando Microsoft Entra ID
- Habilitar a entrada para aplicativos Java JBoss EAP por meio do MSAL4J com o Azure Active Directory B2C
- habilitar aplicativos Java JBoss EAP para conectar usuários e acessar o Microsoft Graph
- Proteger aplicativos Java JBoss EAP usando funções e declarações de função
- Proteja aplicativos Java JBoss EAP usando grupos e reivindicações de grupo
Pré-requisitos
Plug-in do Maven para aplicativos do Serviço de Aplicativo do Azure
Se o Maven não for sua ferramenta de desenvolvimento preferencial, confira os seguintes tutoriais semelhantes que usam outras ferramentas:
Configurar o plugin do Maven
O processo de implantação para o Serviço de Aplicativos do Azure usa automaticamente suas credenciais do Azure pela CLI do Azure. Se a CLI do Azure não estiver instalada localmente, o plug-in do Maven será autenticado com o OAuth ou a entrada do dispositivo. Para obter mais informações, confira autenticação com plug-ins do Maven.
Use as seguintes etapas para configurar o plug-in:
Execute o comando Maven mostrado ao lado para configurar a implantação. Esse comando ajuda você a configurar o sistema operacional do Serviço de Aplicativo, a versão java e a versão do Tomcat.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
Para Criar nova configuração de execução, pressione Y, depois pressione Enter.
Em Definir valor para SO, pressione 2 para Linux e depois pressione Enter.
Em Definir valor para javaVersion, pressione 2 para Java 11 e depois pressione Enter.
Em Definir valor para webContainer, pressione 1 para JBosseap7 e depois pressione Enter.
Em Definir valor para pricingTier, pressione Enter para selecionar o nível P1v3 padrão.
Para Confirmar, pressione Y e depois pressione Enter.
O exemplo a seguir mostra a saída do processo de implantação:
Please confirm webapp properties
AppName : msal4j-servlet-auth-1707220080695
ResourceGroup : msal4j-servlet-auth-1707220080695-rg
Region : centralus
PricingTier : P1v3
OS : Linux
Java Version: Java 11
Web server stack: JBosseap 7
Deploy to slot : false
Confirm (Y/N) [Y]:
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.196 s
[INFO] Finished at: 2024-02-06T11:48:16Z
[INFO] ------------------------------------------------------------------------
Depois de confirmar suas opções, o plug-in adiciona a configuração do plug-in e as configurações necessárias ao arquivo pom.xml do projeto para configurar seu aplicativo para ser executado no Serviço de Aplicativo do Azure.
A parte relevante do arquivo pom.xml deve ser semelhante ao seguinte exemplo:
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
Você pode modificar as configurações do Serviço de Aplicativo diretamente em seu pom.xml. Algumas configurações comuns são listadas na tabela a seguir:
Propriedade | Necessário | Descrição | Versão |
---|---|---|---|
schemaVersion |
falso | A versão do esquema de configuração. Os valores com suporte são v1 e v2 . |
1.5.2 |
subscriptionId |
falso | A ID da assinatura. | 0.1.0+ |
resourceGroup |
verdadeiro | O grupo de recursos do Azure para seu aplicativo. | 0.1.0+ |
appName |
verdadeiro | O nome do seu aplicativo. | 0.1.0+ |
region |
falso | A região na qual hospedar seu aplicativo. O valor padrão é centralus . Para regiões válidas, consulte Regiões com suporte. |
0.1.0+ |
pricingTier |
falso | A faixa de preço do seu aplicativo. O valor padrão é P1v2 para uma carga de trabalho de produção. O valor mínimo recomendado para desenvolvimento e teste de Java é B2 . Para saber mais, consulte Preço do Serviço de Aplicativo |
0.1.0+ |
runtime |
falso | A configuração do ambiente de runtime. Para mais informações, confira Informações de configuração. | 0.1.0+ |
deployment |
falso | A configuração de implantação. Para mais informações, confira Informações de configuração. | 0.1.0+ |
Para obter a lista completa de configurações, consulte a documentação de referência do plug-in. Todos os plug-ins do Azure Maven compartilham um conjunto comum de configurações. Para essas configurações, consulte Configurações Comuns . Para configurações específicas do Serviço de Aplicativo do Azure, consulte aplicativo do Azure: Detalhes de Configuração.
Salve os valores appName
e resourceGroup
para uso posterior.
Preparar o aplicativo para implantação
Quando você implanta seu aplicativo no Serviço de Aplicativo, a URL de redirecionamento muda para a URL de redirecionamento da instância do aplicativo implantada. Use as seguintes etapas para alterar essas configurações no arquivo de propriedades:
Navegue até o arquivo authentication.properties do aplicativo e altere o valor de
app.homePage
para o nome de domínio do aplicativo implantado, conforme mostrado no exemplo a seguir. Por exemplo, se você escolheuexample-domain
para o nome do aplicativo na etapa anterior, agora deve usarhttps://example-domain.azurewebsites.net
para o valorapp.homePage
. Verifique se você também alterou o protocolo dehttp
parahttps
.# app.homePage is by default set to dev server address and app context path on the server # for apps deployed to azure, use https://your-sub-domain.azurewebsites.net app.homePage=https://<your-app-name>.azurewebsites.net
Depois de salvar esse arquivo, use o seguinte comando para recompilar seu aplicativo:
mvn clean package
Atualizar o registro do aplicativo Microsoft Entra ID
Como o URI de redirecionamento é alterado para o aplicativo implantado no Serviço de Aplicativo 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 Registros de aplicativo da plataforma de identidade da Microsoft para desenvolvedores.
Use a caixa de pesquisa para pesquisar 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 seu aplicativo, acrescentando
/auth/redirect
– por exemplo,https://<your-app-name>.azurewebsites.net/auth/redirect
.Selecione Salvar.
Implantar o aplicativo
Agora você está pronto para implantar seu aplicativo no Serviço de Aplicativo do Azure. Use o seguinte comando para verificar se você está conectado ao seu ambiente do Azure para executar a implantação:
az login
Com toda a configuração pronta em seu arquivo pom.xml, agora você pode usar o seguinte comando para implantar seu aplicativo Java no Azure:
mvn package azure-webapp:deploy
Depois que a implantação for concluída, seu aplicativo estará pronto em http://<your-app-name>.azurewebsites.net/
. Abra a URL com seu navegador da Web local, onde você deverá ver a página inicial do aplicativo msal4j-servlet-auth
.
Remover valores secretos
O arquivo authentication.properties do aplicativo atualmente contém o valor do segredo do cliente no parâmetro aad.secret
. Não é uma boa prática manter esse valor neste arquivo. Você também pode estar correndo risco se confirmar esse valor em um repositório Git.
Como uma etapa extra de segurança, você pode armazenar esse valor no Azure Key Vault e usar Referências do Key Vault para disponibilizá-lo em seu aplicativo.
Use as seguintes etapas para mover o valor de aad.secret
para o Key Vault e usá-lo em seu código:
Use os seguintes comandos para criar uma instância do Azure Key Vault:
export RESOURCE_GROUP=<your-resource-group-name> export KEY_VAULT=<your-key-vault-name> az keyvault create \ --resource-group $RESOURCE_GROUP \ --name $KEY_VAULT
Use os seguintes comandos para adicionar o valor secreto de
aad.secret
ao key vault como um novo segredo:az keyvault secret set \ --vault-name $KEY_VAULT \ --name "AADSECRET" \ --value "<the-value-of-your-client-secret>"
Agora você precisa conceder ao seu aplicativo acesso ao cofre de chaves. Para fazer essa tarefa, primeiro crie uma nova identidade para seu aplicativo usando os seguintes comandos:
export WEB_APP_NAME=<your-web-app-name> az webapp identity assign \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME
Use os seguintes comandos para conceder a esta identidade
get
elist
permissão aos segredos do seu Key Vault:export IDENTITY=$(az webapp identity show \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME \ --query principalId \ --output tsv) az keyvault set-policy \ --resource-group $RESOURCE_GROUP \ --name $KEY_VAULT \ --secret-permissions get list \ --object-id $IDENTITY
Use o seguinte comando para criar uma configuração de aplicação em seu app que usa uma referência ao segredo no seu key vault. Essa configuração disponibiliza o valor do segredo para seu aplicativo como uma variável de ambiente.
az webapp config appsettings set \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME \ --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
Use o código a seguir para carregar esse valor das variáveis de ambiente. No arquivo \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java, na linha 41, altere a instrução atual para a seguinte linha:
public static final String SECRET = System.getenv("AADSECRET");
Agora você pode excluir a chave
aad.secret
e o valor do arquivo authentication.properties.Recompile o código usando o seguinte comando:
mvn clean package
Reimplante o aplicativo usando o seguinte comando:
mvn package azure-webapp:deploy
Sua implantação agora está concluída.
Mais informações
- MSAL (Biblioteca de Autenticação da Microsoft) para Java
- plataforma de identidade da Microsoft
- Guia de Início Rápido : Registro de um Aplicativo com a Plataforma de Identidade da Microsoft
- Entendendo as experiências de consentimento do aplicativo Microsoft Entra ID
- Entenda o consentimento de usuários e administradores
- exemplos de código MSAL