Een beheerde identiteit gebruiken om Azure SQL Database te verbinden met een app die is geïmplementeerd in Azure Spring Apps

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

Dit artikel is van toepassing op: ✔️ Java ✔️ C#

Dit artikel is van toepassing op: ✔️ Basic/Standard ✔️ Enterprise

In dit artikel leest u hoe u een beheerde identiteit maakt voor een app die is geïmplementeerd in Azure Spring Apps en hoe u deze gebruikt voor toegang tot Azure SQL Database.

Azure SQL Database is de intelligente, schaalbare relationele databaseservice die is gebouwd voor de cloud. Het is altijd up-to-date, met ai-functies en geautomatiseerde functies die de prestaties en duurzaamheid optimaliseren. Met serverloze berekening en Hyperscale-opslagopties worden resources automatisch op aanvraag geschaald, zodat u zich kunt richten op het bouwen van nieuwe toepassingen zonder dat u zich zorgen hoeft te maken over de opslaggrootte of het resourcebeheer.

Vereisten

  • Een Azure-account met een actief abonnement. Gratis een account maken
  • Azure CLI versie 2.45.0 of hoger.
  • Volg de Spring Data JPA-zelfstudie om een Azure SQL Database in te richten en deze lokaal te laten werken met een Java-app.
  • Volg de zelfstudie over door het Azure Spring Apps-systeem toegewezen beheerde identiteit om een app in te richten in Azure Spring Apps waarvoor beheerde identiteit is ingeschakeld.

Verbinding maken naar Azure SQL Database met een beheerde identiteit

U kunt uw toepassing verbinden met een Azure SQL Database met een beheerde identiteit door handmatige stappen te volgen of service Verbinding maken or te gebruiken.

Machtigingen verlenen aan de beheerde identiteit

Verbinding maken naar uw SQL-server en voer de volgende SQL-query uit:

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

De waarde van de tijdelijke aanduiding volgt de <managed-identity-name> regel<service-instance-name>/apps/<app-name>, bijvoorbeeld: myspringcloud/apps/sqldemo U kunt ook de volgende opdracht gebruiken om een query uit te voeren op de naam van de beheerde identiteit met Azure CLI:

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

Uw Java-app configureren voor het gebruik van een beheerde identiteit

Open het bestand src/main/resources/application.properties en voeg Authentication=ActiveDirectoryMSI; deze toe aan het einde van de spring.datasource.url regel, zoals wordt weergegeven in het volgende voorbeeld. Zorg ervoor dat u de juiste waarde gebruikt voor de variabele $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;

De app bouwen en implementeren in Azure Spring Apps

Bouw de app opnieuw en implementeer deze in azure Spring Apps die zijn ingericht in het tweede opsommingsteken onder Vereisten. U hebt nu een Spring Boot-toepassing geverifieerd door een beheerde identiteit die gebruikmaakt van JPA om gegevens op te slaan en op te halen uit een Azure SQL Database in Azure Spring Apps.

Volgende stappen