Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
PostgreSQL için Azure Veritabanı, açık kaynak Postgres veritabanı altyapısını temel alan ilişkisel bir veritabanı hizmetidir. Görev açısından kritik iş yüklerini tahmin edilebilir performans, güvenlik, yüksek kullanılabilirlik ve dinamik ölçeklenebilirlikle işleyebilen, tam olarak yönetilen bir hizmet olarak veritabanıdır.
4.5.0sürümünden Spring Cloud Azure, PostgreSQL için Azure Veritabanı Esnek Sunucusu'nda kimlik doğrulaması için çeşitli kimlik bilgileri türlerini destekler.
Desteklenen PostgreSQL sürümü
Desteklenen sürümler için bkz. PostgreSQL için Azure Veritabanı - Esnek Sunucu'nde Desteklenen PostgreSQL ana sürümleri.
Temel özellikler
Parolasız bağlantı
Parolasız bağlantı, uygulamada, yapılandırma dosyalarında veya ortam değişkenlerinde hiçbir kimlik bilgisi depolamadan Azure hizmetlerine bağlanmak için Microsoft Entra kimlik doğrulamasını kullanır. Microsoft Entra kimlik doğrulaması, Microsoft Entra Kimliği'nde tanımlanan kimlikleri kullanarak PostgreSQL için Azure Veritabanı'na bağlanmaya yönelik bir mekanizmadır. Microsoft Entra kimlik doğrulaması ile veritabanı kullanıcı kimliklerini ve diğer Microsoft hizmetlerini merkezi bir konumda yönetebilirsiniz ve bu da izin yönetimini basitleştirir.
Nasıl çalışır?
Spring Cloud Azure, uygulama kimlik doğrulaması yapılandırmasına bağlı olarak ilk olarak aşağıdaki kimlik bilgileri türlerinden birini oluşturur:
ClientSecretCredentialClientCertificateCredentialUsernamePasswordCredentialManagedIdentityCredentialDefaultAzureCredential
Bu tür kimlik bilgilerinin hiçbiri bulunmazsa, DefaultAzureCredential kimlik bilgileri uygulama özelliklerinden, ortam değişkenlerinden, yönetilen kimliklerden veya IDE'den alınır. Daha fazla bilgi için bkz. Spring Cloud Azure kimlik doğrulaması
Aşağıdaki üst düzey diyagramda, PostgreSQL için Azure Veritabanı ile OAuth kimlik bilgisi kimlik doğrulaması kullanılarak kimlik doğrulamasının nasıl çalıştığı özetlemektedir. Oklar iletişim yollarını gösterir.
PostgreSQL için Microsoft Entra kimlik doğrulamasını gösteren
Konfigürasyon
PostgreSQL için Spring Cloud Azure aşağıdaki iki yapılandırma seçeneğini destekler:
credentialön ekleriyleprofilevespring.cloud.azuregenel kimlik doğrulama yapılandırma seçenekleri.PostgreSQL için Spring Cloud Azure yaygın yapılandırma seçenekleri.
Aşağıdaki tabloda PostgreSQL için Spring Cloud Azure ortak yapılandırma seçenekleri gösterilmektedir:
| Ad | Açıklama |
|---|---|
spring.datasource.azure.passwordless-enabled |
OAuth2 Microsoft Entra belirteci kimlik bilgilerini kullanarak Azure veritabanlarına parolasız bağlantıların etkinleştirilip etkinleştirilmeyileceği. |
spring.datasource.azure.credential.client-certificate-password |
Sertifika dosyasının parolası. |
spring.datasource.azure.credential.client-certificate-path |
Azure ile hizmet sorumlusu kimlik doğrulaması gerçekleştirirken kullanılacak PEM sertifika dosyasının yolu. |
spring.datasource.azure.credential.client-id |
Azure ile hizmet sorumlusu kimlik doğrulaması gerçekleştirirken kullanılacak istemci kimliği. Bu eski bir özelliktir. |
spring.datasource.azure.credential.client-secret |
Azure ile hizmet sorumlusu kimlik doğrulaması gerçekleştirirken kullanılacak istemci gizli dizisi. Bu eski bir özelliktir. |
spring.datasource.azure.credential.managed-identity-enabled |
Yönetilen kimliğin Azure ile kimlik doğrulaması yapmasının etkinleştirilip etkinleştirilmeyileceği.
true ve client-id ayarlanırsa, kullanıcı tarafından atanan yönetilen kimlik istemci kimliği olarak istemci kimliğini kullanır. Varsayılan değer false. |
spring.datasource.azure.credential.password |
Azure ile kullanıcı adı/parola kimlik doğrulaması gerçekleştirirken kullanılacak parola. |
spring.datasource.azure.credential.username |
Azure ile kullanıcı adı/parola kimlik doğrulaması gerçekleştirirken kullanılacak kullanıcı adı. |
spring.datasource.azure.profile.cloud-type |
Bağlanacak Azure bulutunun adı. |
spring.datasource.azure.profile.environment.active-directory-endpoint |
Bağlanacak Microsoft Entra uç noktası. |
spring.datasource.azure.profile.tenant-id |
Azure kaynakları için kiracı kimliği.
tenant-id için izin verilen değerler şunlardır: common, organizations, consumersveya kiracı kimliği. |
Bağımlılık kurulumu
Projenize aşağıdaki bağımlılığı ekleyin. Bu, projenizdeki spring-boot-starter bağımlılığını geçişli olarak otomatik olarak içerir.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-jdbc-postgresql</artifactId>
</dependency>
Not
4.5.0sürümünden bu yana parolasız bağlantılar desteklenmektedir.
Ürün reçetesi spring-cloud-azure-dependencies yukarıdaki bağımlılıkla birlikte eklemeyi unutmayın. Daha fazla bilgi için Spring Cloud Azure geliştirici kılavuzuBaşlarken bölümüne bakın.
Temel kullanım
Aşağıdaki bölümlerde klasik Spring Boot uygulaması kullanım senaryoları gösterilmektedir.
Önemli
Parolasız bağlantı Microsoft Entra kimlik doğrulamasını kullanır. Microsoft Entra kimlik doğrulamasını kullanmak için önce Microsoft Entra yönetici kullanıcısını ayarlamanız gerekir. Yalnızca bir Microsoft Entra yönetici kullanıcısı, Microsoft Entra Id tabanlı kimlik doğrulaması için kullanıcı oluşturabilir ve etkinleştirebilir. Daha fazla bilgi için bkz. Spring Data JDBC'yi PostgreSQL için Azure Veritabanı ile kullanma.
Azure PostgreSQL'e parola olmadan yerel olarak bağlanma
Kullanıcı oluşturmak ve izin vermek için,
PostgreSQL için Azure Veritabanı ile Spring Data JDBC kullanma PostgreSQL yönetici olmayan kullanıcı oluşturma ve izin vermebölümüne bakın. application.yml dosyanızda aşağıdaki özellikleri yapılandırın:
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
Hizmet sorumlusu kullanarak Azure PostgreSQL'e bağlanma
Hizmet sorumlusuna rol atayın:
Yönetici olmayan kullanıcı oluşturmak için create_ad_user_sp.sql adlı bir SQL betiği oluşturun. Aşağıdaki içeriği ekleyin ve yerel olarak kaydedin:
Önemli
Microsoft Entra kiracınızda
<service-principal-name>olduğundan emin olun; aksi halde yönetici olmayan kullanıcıyı oluşturamazsınız.cat << EOF > create_ad_user_sp.sql select * from pgaadauth_create_principal('<service-principal-name>', false, false); EOFMicrosoft Entra yönetici olmayan kullanıcıyı oluşturmak üzere SQL betiğini çalıştırmak için aşağıdaki komutu kullanın:
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.sqlŞimdi geçici SQL betik dosyasını kaldırmak için aşağıdaki komutu kullanın:
rm create_ad_user_sp.sql
application.yml dosyanızda aşağıdaki özellikleri yapılandırın:
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
Not
tenant-id için izin verilen değerler şunlardır: common, organizations, consumersveya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için, Hata AADSTS50020 - Kimlik sağlayıcısından kullanıcı hesabı kiracımevcut değil bölümünün Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz. Tek kiracılı uygulamayı Microsoft Entra IDüzerinde çok kiracılıya dönüştürme.
Azure Spring Apps'te Yönetilen Kimlik ile Azure PostgreSQL'e bağlanma
Yönetilen kimliği etkinleştirmek için, PostgreSQL için Azure Veritabanıile parolasız bağlantılar kullanmak üzere uygulama geçirme
Azure portalını kullanarak yönetilen kimliği atama bölümüne bakın. İzinler vermek için, PostgreSQL için Azure Veritabanı ile parolasız bağlantılar kullanmak üzere uygulama geçirme
yönetilen kimliğe rol atama bölümüne bakın. application.yml dosyanızda aşağıdaki özellikleri yapılandırın:
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
Not
Daha fazla bilgi için bkz. Öğretici: Azure veritabanına parolasız bağlantıyla Azure Spring Apps'e Spring uygulaması dağıtma
Örnekleri
GitHub'daki azure-spring-boot-samples depoya bakın.