Usar uma identidade gerenciada para conectar o Banco de Dados SQL do Azure a um aplicativo implantado nos Aplicativos Spring do Azure

Observação

Os planos Básico, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.

O plano Consumo Standard e dedicado será preterido a partir de 30 de setembro de 2024, com desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira Migrar o plano dedicado e consumo Standard dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.

Este artigo aplica-se a: ✔️ Java ✔️ C#

Este artigo se aplica ao: ✔️ nível Básico/Standard ✔️ nível Enterprise

Este artigo mostra como criar uma identidade gerenciada para um aplicativo implantado nos Aplicativos Spring do Azure e usá-la para acessar o Banco de Dados SQL do Azure.

O Banco de Dados SQL do Azure é um serviço de banco de dados inteligente, escalonável, relacional desenvolvido para a nuvem. Ele está sempre atualizado, com recursos automatizados da plataforma de IA, que otimizam o desempenho e a durabilidade. As opções de armazenamento de hiperescala e computação sem servidor dimensionam automaticamente os recursos sob demanda, para que você possa se concentrar na criação de aplicativos sem se preocupar com o gerenciamento de recursos ou com o tamanho do armazenamento.

Pré-requisitos

Conectar-se ao Banco de Dados SQL do Azure com uma identidade gerenciada

Você pode conectar seu aplicativo a um Banco de Dados SQL do Azure com uma identidade gerenciada seguindo etapas manuais ou usando o Conector de Serviço.

Conceder permissão para a identidade gerenciada

Conecte-se ao seu SQL Server e execute a seguinte consulta SQL:

CREATE USER [<managed-identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<managed-identity-name>];
GO

O valor do espaço reservado <managed-identity-name> segue a regra <service-instance-name>/apps/<app-name>; por exemplo: myspringcloud/apps/sqldemo. Você também pode usar o seguinte comando para consultar o nome da identidade gerenciada com a CLI do Azure:

az ad sp show --id <identity-object-ID> --query displayName

Configurar o seu aplicativo Java para usar a identidade gerenciada

Abra o arquivo src/main/resources/application.properties e adicione Authentication=ActiveDirectoryMSI; no final da linha spring.datasource.url, conforme mostrado no exemplo a seguir. Verifique se você está usando o valor correto para a variável $AZ _DATABASE_NAME.

spring.datasource.url=jdbc:sqlserver://$AZ_DATABASE_NAME.database.windows.net:1433;database=demo;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;Authentication=ActiveDirectoryMSI;

Criar e implantar o aplicativo no Azure Spring Apps

Recompile o aplicativo e implante-o nos Aplicativos Spring do Azure provisionados no segundo marcador, em Pré-requisitos. Agora você tem um aplicativo Spring Boot autenticado por uma identidade gerenciada que usa JPA para armazenar e recuperar dados de um Banco de Dados SQL do Azure nos Aplicativos Spring do Azure.

Próximas etapas