Usare un'identità gestita per connettere database SQL di Azure a un'app distribuita in Azure Spring Apps

Nota

I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.

Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.

Questo articolo si applica a: ✔️ Java ✔️ C#

Questo articolo si applica a: ✔️ Basic/Standard ✔️ Enterprise

Questo articolo illustra come creare un'identità gestita per un'app distribuita in Azure Spring Apps e usarla per accedere alle database SQL di Azure.

database SQL di Azure è il servizio di database relazionale intelligente, scalabile e progettato per il cloud. È sempre aggiornato, con funzionalità automatizzate e basate su intelligenza artificiale che ottimizzano le prestazioni e la durabilità. Le risorse di calcolo serverless e le opzioni di archiviazione Hyperscale dimensionano automaticamente le risorse on demand, per permetterti di concentrarti sulla creazione di nuove applicazioni senza doverti preoccupare delle dimensioni delle risorse di archiviazione o della gestione delle risorse.

Prerequisiti

Connettersi a database SQL di Azure con un'identità gestita

È possibile connettere l'applicazione a un database SQL di Azure con un'identità gestita seguendo i passaggi manuali o usando Service Connector.

Concedere l'autorizzazione all'identità gestita

Connettersi al server SQL ed eseguire la query SQL seguente:

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

Il valore del <managed-identity-name> segnaposto segue la regola <service-instance-name>/apps/<app-name>; ad esempio: myspringcloud/apps/sqldemo. È anche possibile usare il comando seguente per eseguire query sul nome dell'identità gestita con l'interfaccia della riga di comando di Azure:

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

Configurare l'app Java per l'uso di un'identità gestita

Aprire il file src/main/resources/application.properties , quindi aggiungere Authentication=ActiveDirectoryMSI; alla fine della spring.datasource.url riga, come illustrato nell'esempio seguente. Assicurarsi di usare il valore corretto per la variabile $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;

Compilare e distribuire l'app in Azure Spring Apps

Ricompilare l'app e distribuirla in Azure Spring Apps di cui è stato effettuato il provisioning nel secondo punto elenco in Prerequisiti. È ora disponibile un'applicazione Spring Boot autenticata da un'identità gestita che usa JPA per archiviare e recuperare dati da un database SQL di Azure in Azure Spring Apps.

Passaggi successivi