Använda en hanterad identitet för att ansluta Azure SQL Database till en app som distribuerats till Azure Spring Apps

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

Den här artikeln gäller för: ✔️ Java ✔️ C#

Den här artikeln gäller för: ✔️ Basic/Standard ✔️ Enterprise

Den här artikeln visar hur du skapar en hanterad identitet för en app som distribueras till Azure Spring Apps och använder den för att få åtkomst till Azure SQL Database.

Azure SQL Database är den intelligenta, skalbara relationsdatabastjänsten som skapats för molnet. Den är alltid uppdaterad med AI-baserade och automatiserade funktioner som optimerar prestanda och hållbarhet. Serverlösa beräknings- och skalningsalternativ för lagring skalar automatiskt resurser på begäran, så att du kan fokusera på att skapa nya program utan att behöva bekymra dig om lagringsstorlek eller resurshantering.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
  • Azure CLI version 2.45.0 eller senare.
  • Följ självstudiekursen om Spring Data JPA för att etablera en Azure SQL Database och få den att fungera med en Java-app lokalt.
  • Följ självstudien om systemtilldelade hanterade identiteter i Azure Spring Apps för att etablera en app i Azure Spring Apps med hanterad identitet aktiverad.

Anslut till Azure SQL Database med en hanterad identitet

Du kan ansluta ditt program till en Azure SQL Database med en hanterad identitet genom att följa manuella steg eller använda Service Anslut or.

Bevilja behörighet till den hanterade identiteten

Anslut till SQL-servern och kör följande SQL-fråga:

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

Värdet för <managed-identity-name> platshållaren följer regeln <service-instance-name>/apps/<app-name>, till exempel: myspringcloud/apps/sqldemo. Du kan också använda följande kommando för att fråga det hanterade identitetsnamnet med Azure CLI:

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

Konfigurera din Java-app så att den använder en hanterad identitet

Öppna filen src/main/resources/application.properties och lägg sedan till Authentication=ActiveDirectoryMSI; i slutet av spring.datasource.url raden, enligt följande exempel. Se till att använda rätt värde för variabeln $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;

Skapa och distribuera appen till Azure Spring Apps

Återskapa appen och distribuera den till Azure Spring Apps som etablerats i den andra punktpunkten under Krav. Nu har du ett Spring Boot-program autentiserat av en hanterad identitet som använder JPA för att lagra och hämta data från en Azure SQL Database i Azure Spring Apps.

Nästa steg