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

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.

Passaggi successivi