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

Nota

Azure Spring Apps é o novo nome para o serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns lugares por um tempo enquanto trabalhamos para atualizar ativos, como capturas de tela, vídeos e diagramas.

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

Este artigo aplica-se a: ✔️ Basic/Standard ✔️ Enterprise

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

O Banco de Dados SQL do Azure é o serviço de banco de dados relacional, escalável e inteligente criado para a nuvem. Está sempre atualizado, com recursos automatizados e alimentados por IA que otimizam o desempenho e a durabilidade. A computação sem servidor e as opções de armazenamento do Hyperscale dimensionam os recursos automaticamente a pedido, pelo que se pode concentrar em criar aplicações novas sem se preocupar com a gestão do tamanho do armazenamento ou com os recursos.

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 Service Connector.

Conceder permissão à identidade gerenciada

Conecte-se ao seu servidor SQL 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

Configure seu aplicativo Java para usar uma identidade gerenciada

Abra o arquivo src/main/resources/application.properties e adicione Authentication=ActiveDirectoryMSI; no final da spring.datasource.url linha, conforme mostrado no exemplo a seguir. Certifique-se de usar 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

Recrie o aplicativo e implante-o no Azure Spring Apps provisionado no segundo ponto 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 no Azure Spring Apps.

Próximos passos