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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Interfaccia della riga di comando di Azure versione 2.45.0 o successiva.
- Seguire l'esercitazione su Spring Data JPA per effettuare il provisioning di un database SQL di Azure e usarlo con un'app Java in locale.
- Seguire l'esercitazione sull'identità gestita assegnata dal sistema di Azure Spring Apps per effettuare il provisioning di un'app in App Spring di Azure con identità gestita abilitata.
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.