Usare un'identità gestita per connettere database SQL di Azure a un'app distribuita in Azure Spring Apps
Nota
Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.
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.
Connessione per 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 Connessione or.
Concedere l'autorizzazione all'identità gestita
Connessione 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_DATABA edizione Standard_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.