Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure Database for PostgreSQL egy nyílt forráskódú Postgres-adatbázismotoron alapuló relációs adatbázis-szolgáltatás. Ez egy teljes mértékben felügyelt adatbázis szolgáltatásként, amely kiszámítható teljesítménnyel, biztonsággal, magas rendelkezésre állással és dinamikus skálázhatósággal képes kezelni a kritikus fontosságú számítási feladatokat.
A 4.5.0verziótól kezdve a Spring Cloud Azure különböző típusú hitelesítő adatokat támogat a rugalmas Azure Database for PostgreSQL-kiszolgálóhoz való hitelesítéshez.
Támogatott PostgreSQL-verzió
A támogatott verziókról a Támogatott PostgreSQL-főverziók az Azure Database for PostgreSQL rugalmas kiszolgálóicímű témakörben olvashat.
Alapvető funkciók
Jelszó nélküli kapcsolat
A jelszó nélküli kapcsolat Microsoft Entra-hitelesítést használ az Azure-szolgáltatásokhoz való csatlakozáshoz anélkül, hogy hitelesítő adatokat tárolnál az alkalmazásban, annak konfigurációs fájljaiban vagy környezeti változókban. A Microsoft Entra-hitelesítés az Azure Database for PostgreSQL-hez való csatlakozás mechanizmusa a Microsoft Entra ID-ban meghatározott identitások használatával. A Microsoft Entra-hitelesítéssel központi helyen kezelheti az adatbázis felhasználói identitásait és egyéb Microsoft-szolgáltatásait, ami leegyszerűsíti az engedélykezelést.
Hogyan működik?
A Spring Cloud Azure az alkalmazáshitelesítés konfigurációjától függően először a következő típusú hitelesítő adatok egyikét fogja létrehozni:
ClientSecretCredentialClientCertificateCredentialUsernamePasswordCredentialManagedIdentityCredentialDefaultAzureCredential
Ha az ilyen típusú hitelesítő adatok egyike sem található, a DefaultAzureCredential hitelesítő adatok az alkalmazás tulajdonságaiból, környezeti változóiból, felügyelt identitásaiból vagy az IDE-ből lesznek lekértek. További információ: Spring Cloud Azure-hitelesítési.
Az alábbi magas szintű diagram összefoglalja, hogyan működik a hitelesítés az OAuth hitelesítő adatok hitelesítésével az Azure Database for PostgreSQL-lel. A nyilak kommunikációs útvonalakat jelölnek.
Konfiguráció
A Spring Cloud Azure for PostgreSQL a következő két konfigurációs szintet támogatja:
A
credentialésprofileglobális hitelesítési konfigurációs beállításaispring.cloud.azureelőtagokkal.A Spring Cloud Azure for PostgreSQL gyakori konfigurációs lehetőségei.
Az alábbi táblázat a Spring Cloud Azure for PostgreSQL gyakori konfigurációs beállításait mutatja be:
| Név | Leírás |
|---|---|
spring.datasource.azure.passwordless-enabled |
Az OAuth2 Microsoft Entra-jogkivonat hitelesítő adataival engedélyezheti-e az Azure-adatbázisok jelszó nélküli kapcsolatait. |
spring.datasource.azure.credential.client-certificate-password |
A tanúsítványfájl jelszava. |
spring.datasource.azure.credential.client-certificate-path |
A PEM-tanúsítványfájl elérési útja, amelyet az Azure-ral végzett szolgáltatásnév-hitelesítés során kell használni. |
spring.datasource.azure.credential.client-id |
Az Azure-ral végzett egyszerű szolgáltatáshitelesítéshez használandó ügyfélazonosító. Ez egy örökölt tulajdonság. |
spring.datasource.azure.credential.client-secret |
Az Azure-ral végzett egyszerű szolgáltatáshitelesítéshez használandó ügyfélkód. Ez egy örökölt tulajdonság. |
spring.datasource.azure.credential.managed-identity-enabled |
A felügyelt identitás azure-ral való hitelesítésének engedélyezése. Ha true és a client-id be van állítva, az ügyfélazonosítót fogja használni a felhasználó által hozzárendelt felügyelt identitás ügyfélazonosítójaként. Az alapértelmezett érték a false. |
spring.datasource.azure.credential.password |
Felhasználónév-/jelszó-hitelesítés azure-ral történő végrehajtásakor használandó jelszó. |
spring.datasource.azure.credential.username |
Felhasználónév az Azure-ral történő felhasználónév-/jelszó-hitelesítés végrehajtásakor. |
spring.datasource.azure.profile.cloud-type |
A csatlakozni kívánt Azure-felhő neve. |
spring.datasource.azure.profile.environment.active-directory-endpoint |
A Microsoft Entra-végpont, amelyhez csatlakozni szeretne. |
spring.datasource.azure.profile.tenant-id |
Az Azure-erőforrások bérlőazonosítója. A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy bérlőazonosító. |
Függőségek beállítása
Adja hozzá a következő függőséget a projekthez. Ez automatikusan magában foglalja a projekt spring-boot-starter függőségét tranzitív módon.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-jdbc-postgresql</artifactId>
</dependency>
Jegyzet
A jelszó nélküli kapcsolatok a 4.5.0verzió óta támogatottak.
Ne felejtse el hozzáadni a BOM-otspring-cloud-azure-dependencies a fenti függőséggel együtt. További információt a Spring Cloud Azure fejlesztői útmutatójánakElső lépések című szakaszában talál.
Alapszintű használat
Az alábbi szakaszok a klasszikus Spring Boot-alkalmazáshasználati forgatókönyveket mutatják be.
Fontos
A jelszó nélküli kapcsolat Microsoft Entra-hitelesítést használ. A Microsoft Entra-hitelesítés használatához először a Microsoft Entra rendszergazdai felhasználót kell beállítania. Csak a Microsoft Entra rendszergazdai felhasználó hozhat létre és engedélyezhet felhasználókat a Microsoft Entra ID-alapú hitelesítéshez. További információkért lásd: A Spring Data JDBC használata az Azure Database for PostgreSQL-lel.
Csatlakozás helyileg az Azure PostgreSQL-hez jelszó nélkül
A felhasználók létrehozásához és az engedély megadásához tekintse meg a PostgreSQL nem rendszergazdai felhasználó létrehozása és a Spring Data JDBC használata az Azure Database for PostgreSQLengedélyekkel szakaszát.
Konfigurálja a következő tulajdonságokat a application.yml fájlban:
spring: datasource: url: jdbc:postgresql://${AZ_DATABASE_SERVER_NAME}.postgres.database.azure.com:5432/${AZ_DATABASE_NAME}?sslmode=require username: ${AZ_POSTGRESQL_AD_NON_ADMIN_USERNAME} azure: passwordless-enabled: true
Csatlakozás az Azure PostgreSQL-hez szolgáltatásnév használatával
Szerepkör hozzárendelése a service principalhoz:
Hozzon létre egy create_ad_user_sp.sql nevű SQL-szkriptet, amely nem rendszergazdai felhasználót hoz létre. Adja hozzá a következő tartalmat, és mentse helyileg:
Fontos
Győződjön meg arról, hogy a(z)
<service-principal-name>már létezik a Microsoft Entra-bérlőjében, különben nem fogja tudni létrehozni a nem adminisztrátori felhasználót.cat << EOF > create_ad_user_sp.sql select * from pgaadauth_create_principal('<service-principal-name>', false, false); EOFA Microsoft Entra nem rendszergazdai felhasználó létrehozásához futtassa az SQL-szkriptet az alábbi paranccsal:
psql "host=$AZ_DATABASE_SERVER_NAME.postgres.database.azure.com user=$CURRENT_USERNAME@$AZ_DATABASE_SERVER_NAME dbname=postgres port=5432 password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken) sslmode=require" < create_ad_user_sp.sqlMost az alábbi paranccsal távolítsa el az ideiglenes SQL-szkriptfájlt:
rm create_ad_user_sp.sql
Konfigurálja a következő tulajdonságokat a application.yml fájlban:
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> datasource: url: jdbc:postgresql://${AZ_DATABASE_SERVER_NAME}.postgres.database.azure.com:5432/${AZ_DATABASE_NAME}?sslmode=require username: ${AZ_POSTGRESQL_AD_SP_USERNAME} azure: passwordless-enabled: true
Jegyzet
A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy bérlőazonosító. Ezekről az értékekről további információt az AADSTS50020 hiba – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben című cikk Rossz végpont (személyes és szervezeti fiókok) szakaszában talál. Az egybérlős alkalmazás átalakításával kapcsolatos információkért lásd: Egybérlős alkalmazás átalakítása több-bérlős alkalmazássá a Microsoft Entra ID-ban.
Csatlakozás az Azure PostgreSQL-hez felügyelt identitással az Azure Spring Appsben
A felügyelt identitás engedélyezéséhez lásd a Alkalmazás migrálása jelszó nélküli kapcsolatok használatára az Azure Database for PostgreSQL-lel című cikk Felügyelt identitás hozzárendelése az Azure Portal használatával szakaszát.
Engedélyek megadásához tekintse meg a Szerepkörök hozzárendelése a felügyelt identitáshoz szakaszt, Alkalmazás áttelepítése jelszó nélküli kapcsolatok használatára az Azure Database for PostgreSQL.
Konfigurálja a következő tulajdonságokat a application.yml fájlban:
spring: cloud: azure: credential: managed-identity-enabled: true client-id: ${AZURE_CLIENT_ID} datasource: url: jdbc:postgresql://${AZ_DATABASE_SERVER_NAME}.postgres.database.azure.com:5432/${AZ_DATABASE_NAME}?sslmode=require username: ${AZ_POSTGRESQL_AD_MI_USERNAME} azure: passwordless-enabled: true
Jegyzet
További információ: oktatóanyag: Spring-alkalmazás üzembe helyezése az Azure Spring Appsben jelszó nélküli kapcsolattal egy Azure-adatbázishoz
Minták
Tekintse meg a azure-spring-boot-samples GitHub adattárát.