Dela via


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

Kommentar

Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.

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.

Ansluta 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 Connector.

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