Łą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
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.
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ą.
Nawiązywanie połączenia z usługą Azure SQL Database przy użyciu tożsamości zarządzanej
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 łącznika usługi.
Udzielanie uprawnień tożsamości zarządzanej
Połącz się z serwerem 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
- Jak uzyskać dostęp do obiektu blob usługi Storage przy użyciu tożsamości zarządzanej w usłudze Azure Spring Apps
- Jak włączyć tożsamość zarządzaną przypisaną przez system dla aplikacji w usłudze Azure Spring Apps
- Co to są tożsamości zarządzane dla zasobów platformy Azure?
- Uwierzytelnianie usługi Azure Spring Apps za pomocą usługi Key Vault w funkcji GitHub Actions