Łączenie usługi Azure SQL Database z aplikacją wdrożną w usłudze Azure Spring Apps przy użyciu tożsamości zarządzanej

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy: ✔️ Java ✔️ C#

Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ✔️ Enterprise

W tym artykule pokazano, jak utworzyć tożsamość zarządzaną dla aplikacji wdrożonej w usłudze Azure Spring Apps i używać jej do uzyskiwania dostępu do usługi Azure SQL Database.

Azure SQL Database to inteligentna, skalowalna, relacyjna usługa bazy danych utworzona dla chmury. Jest to zawsze aktualne, dzięki funkcjom opartym na sztucznej inteligencji i zautomatyzowanym, które optymalizują wydajność i trwałość. W opcji bezserwerowych zasobów obliczeniowych i magazynowych w warstwie Hiperskala zasoby są automatycznie skalowane na żądanie, a więc możesz skupić się na tworzeniu nowych aplikacji bez konieczności martwienia się o rozmiar magazynu czy zarządzanie zasobami.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
  • Interfejs wiersza polecenia platformy Azure w wersji 2.45.0 lub nowszej.
  • Postępuj zgodnie z samouczkiem Spring Data JPA, aby aprowizować usługę Azure SQL Database i pracować z aplikacją Java lokalnie.
  • Postępuj zgodnie z samouczkiem dotyczącym tożsamości zarządzanej przypisanej przez system usługi Azure Spring Apps, aby aprowizować aplikację w usłudze Azure Spring Apps z włączoną tożsamością zarządzaną.

Połączenie do usługi Azure SQL Database z tożsamością zarządzaną

Aplikację można połączyć z usługą Azure SQL Database przy użyciu tożsamości zarządzanej, wykonując kroki ręczne lub korzystając z Połączenie or usługi.

Udzielanie uprawnień tożsamości zarządzanej

Połączenie do serwera SQL i uruchom następujące zapytanie SQL:

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

Wartość symbolu zastępczego <managed-identity-name> jest zgodna z regułą <service-instance-name>/apps/<app-name>, na przykład: myspringcloud/apps/sqldemo. Możesz również użyć następującego polecenia, aby wykonać zapytanie dotyczące nazwy tożsamości zarządzanej za pomocą interfejsu wiersza polecenia platformy Azure:

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

Konfigurowanie aplikacji Java do używania tożsamości zarządzanej

Otwórz plik src/main/resources/application.properties, a następnie dodaj Authentication=ActiveDirectoryMSI; na końcu spring.datasource.url wiersza, jak pokazano w poniższym przykładzie. Pamiętaj, aby użyć poprawnej wartości dla zmiennej $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;

Kompilowanie i wdrażanie aplikacji w usłudze Azure Spring Apps

Skompiluj aplikację i wdróż ją w aprowizowanej usłudze Azure Spring Apps w drugim punkcie w obszarze Wymagania wstępne. Masz teraz aplikację Spring Boot uwierzytelnianą przez tożsamość zarządzaną, która używa interfejsu JPA do przechowywania i pobierania danych z usługi Azure SQL Database w usłudze Azure Spring Apps.

Następne kroki