Usar uma identidade gerenciada para conectar o Banco de Dados SQL do Azure a um aplicativo implantado no Azure Spring Apps
Nota
Os planos Basic, 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 obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
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
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Azure CLI versão 2.45.0 ou superior.
- Siga o tutorial JPA do Spring Data para provisionar um Banco de Dados SQL do Azure e fazê-lo funcionar com um aplicativo Java localmente.
- Siga o tutorial de identidade gerenciada atribuída pelo sistema do Azure Spring Apps para provisionar um aplicativo no Azure Spring Apps com identidade gerenciada habilitada.
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
- Como acessar o blob de armazenamento com identidade gerenciada no Azure Spring Apps
- Como habilitar a identidade gerenciada atribuída pelo sistema para aplicativos no Azure Spring Apps
- O que são identidades geridas para recursos do Azure?
- Autenticar aplicativos do Azure Spring com o Key Vault em ações do GitHub