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.
Bu makalede, PostgreSQL için Azure Veritabanı ile kimlik doğrulaması için Microsoft Entra ID erişimini yapılandıracaksınız. PostgreSQL için Azure Veritabanı esnek sunucu örneğiyle Microsoft Entra belirtecini kullanmayı da öğrenirsiniz.
PostgreSQL için Azure Veritabanı esnek sunucu örneği için Microsoft Entra kimlik doğrulamasını sunucu sağlama sırasında veya daha sonra yapılandırabilirsiniz. Yalnızca Microsoft Entra yönetici kullanıcıları, Microsoft Entra ID tabanlı kimlik doğrulaması için kullanıcı oluşturabilir veya etkinleştirebilir. Bu rol yükseltilmiş kullanıcı izinlerine (örneğin, CREATEDB) sahip olduğundan, normal veritabanı işlemleri için Microsoft Entra yöneticisini kullanmayın.
PostgreSQL için Azure Veritabanı ile birden çok Microsoft Entra yönetici kullanıcınız olabilir. Microsoft Entra yönetici kullanıcıları bir kullanıcı, grup veya hizmet sorumlusu olabilir.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabına ihtiyacınız vardır. Ücretsiz bir hesap oluşturun.
Ağ gereksinimlerini yapılandırma
Microsoft Entra Id çok kiracılı bir uygulamadır. Microsoft Entra yönetici gruplarını ekleme gibi işlemler için giden bağlantı gerekir.
Ağ gereksinimleri topolojiye göre farklılık gösterir:
- Genel erişim (izin verilen IP adresleri): Ek giden kural gerekli değildir.
-
Özel erişim (sanal ağ tümleştirmesi):
- Yalnızca
AzureActiveDirectoryhizmet etiketine ait trafiğe izin veren bir giden NSG kuralı ekleyin. - Yol tablosu kullanıyorsanız, hedef
AzureActiveDirectoryve sonraki atlamaInternetile bir yol ekleyin. - Ara sunucu kullanıyorsanız
AzureActiveDirectoryhizmet etiketine yalnızca HTTPS bağlantısına izin verin.
- Yalnızca
-
Özel DNS:
- Bu konak adlarının herkese açık olarak çözümlenmesi gerektiğine emin olmanız:
login.microsoftonline.com(kimlik doğrulaması) vegraph.microsoft.com(Microsoft Graph API). - Çözüm başarısız olursa, yönetici ataması ve belirteç alma işlemleri başarısız olur.
- Bu konak adlarının herkese açık olarak çözümlenmesi gerektiğine emin olmanız:
Sunucu sağlama sırasında Microsoft Entra yöneticisini ayarlamak için şu adımları izleyin:
- Azure portalında sunucu sağlama sırasında , kimlik doğrulama yöntemi olarak PostgreSQL ve Microsoft Entra kimlik doğrulaması veya Yalnızca Microsoft Entra kimlik doğrulaması'nı seçin.
- Yöneticiyi ayarla sekmesinde, müşteri kiracısında geçerli bir Microsoft Entra kullanıcısı, grubu, hizmet sorumlusu veya yönetilen kimliği seçerek Microsoft Entra yöneticisi olun.
PostgreSQL ve Microsoft Entra kimlik doğrulama yöntemini kullanmayı tercih ediyorsanız isteğe bağlı olarak yerel bir PostgreSQL yönetici hesabı ekleyebilirsiniz.
Uyarı
Sunucu sağlama sırasında yalnızca bir Microsoft Entra yöneticisi ekleyebilirsiniz. Sunucu oluşturulduktan sonra birden çok Microsoft Entra yönetici kullanıcısı ekleyebilirsiniz.
Sunucu oluşturulduktan sonra Microsoft Entra yöneticisini ayarlamak için şu adımları izleyin:
- Azure portalında, Microsoft Entra Id için etkinleştirmek istediğiniz PostgreSQL için Azure Veritabanı esnek sunucusu örneğini seçin.
- Güvenlik'in altında Kimlik Doğrulaması'yı seçin. Ardından gereksinimlerinize bağlı olarak postgreSQL ve Microsoft Entra kimlik doğrulaması veya yalnızca Microsoft Entra kimlik doğrulamasını kimlik doğrulama yöntemi olarak seçin.
- Microsoft Entra Admins Ekle'yi seçin. Ardından müşteri kiracısında geçerli bir Microsoft Entra kullanıcısı, grubu, hizmet sorumlusu veya yönetilen kimliği seçerek Microsoft Entra yöneticisi olun.
- Kaydetseçeneğini seçin.
Önemli
Yöneticiyi ayarlarken, tam yönetici izinleriyle PostgreSQL için Azure Veritabanı esnek sunucu örneğine yeni bir kullanıcı eklenir.
Microsoft Entra Id kullanarak PostgreSQL için Azure Veritabanı'na bağlanma
Microsoft Entra tümleştirmesi, Microsoft Entra'nın farkında olmayan ve yalnızca PostgreSQL'e bağlanırken kullanıcı adı ve parola belirtmeyi destekleyen psql gibi standart PostgreSQL araçlarıyla çalışır.
Aşağıdaki istemcileri test ettik:
-
psql komut satırı: Belirteci geçirmek için değişkenini kullanın
PGPASSWORD. - Azure Data Studio: PostgreSQL uzantısını kullanın.
- Diğer libpq tabanlı istemciler: Örnek olarak yaygın uygulama çerçeveleri ve nesne ilişkisel eşleyiciler (ORM' ler) verilebilir.
- PgAdmin: Sunucu oluşturma sırasında Şimdi bağlan'ı temizleyin.
Microsoft Entra Kimliği ile kimlik doğrulaması
PostgreSQL için Azure Veritabanı esnek sunucu örneği kullanıcısı olarak Microsoft Entra Id ile kimlik doğrulaması yapmak için aşağıdaki yordamları kullanın.
Aşağıdakini kullanarak takip edebilirsiniz:
- Azure Cloud Shell
- Azure sanal makinesi
- Yerel makineniz
Azure'a Giriş Yap
Azure CLI'yi kullanarak Microsoft Entra Id ile kimlik doğrulaması yaparak başlayın. Bu adım Azure Cloud Shell'de gerekli değildir.
az login
Komut, Microsoft Entra kimlik doğrulama sayfasına bir tarayıcı penceresi açar. Microsoft Entra kullanıcı kimliğinizi ve parolanızı vermeniz gerekir.
Microsoft Entra erişim belirtecini alma
Microsoft Entra kimliği doğrulanmış kullanıcının PostgreSQL için Azure Veritabanı'na erişmesi için bir erişim belirteci almak için Azure CLI'yi kullanın. Genel bulut örneği aşağıda verilmişti:
az account get-access-token --resource https://ossrdbms-aad.database.windows.net
Yukarıdaki kaynak değeri gösterildiği gibi belirtilmelidir. Diğer bulutlar için aşağıdaki komutu kullanarak kaynak değerini arayabilirsiniz:
az cloud show
Azure CLI sürüm 2.0.71 ve üzeri için komutu tüm bulutlar için aşağıdaki uygun sürümde belirtebilirsiniz:
az account get-access-token --resource-type oss-rdbms
Kimlik doğrulaması başarılı olduktan sonra Microsoft Entra Id bir erişim belirteci döndürür:
{
"accessToken": "TOKEN",
"expiresOn": "...",
"subscription": "...",
"tenant": "...",
"tokenType": "Bearer"
}
Belirteç bir Base64 dizesidir. Kimliği doğrulanmış kullanıcı hakkındaki tüm bilgileri kodlar ve PostgreSQL için Azure Veritabanı hizmetini hedefler.
İstemci psql ile oturum açmak için parola olarak belirteç kullanma
Bağlanırken, PostgreSQL kullanıcı parolası olarak erişim belirtecini kullanın.
psql komut satırı istemcisini kullandığınızda, erişim belirtecini ortam değişkeni aracılığıyla PGPASSWORD geçirmeniz gerekir. Erişim belirteci, psql'nin doğrudan kabul edebildiği parola uzunluğundan daha uzundur.
İşte bir Windows örneği:
set PGPASSWORD=<copy/pasted TOKEN value from step 2>
$env:PGPASSWORD='<copy/pasted TOKEN value from step 2>'
İşte bir Linux veya macOS örneği:
export PGPASSWORD=<copy/pasted TOKEN value from step 2>
Ayrıca, komut değişimini kullanarak 2. ve 3. adımı birleştirebilirsiniz. Belirteç alma işlemini bir değişkene ekleyebilir ve ortam değişkeninin PGPASSWORD değeri olarak doğrudan geçirebilirsiniz:
export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)
Şimdi PostgreSQL için Azure Veritabanı'na bağlanın:
psql "host=mydb.postgres... user=user@tenant.onmicrosoft.com dbname=postgres sslmode=require"
PgAdmin ile oturum açmak için parola olarak belirteç kullanma
PgAdmin ile bir Microsoft Entra belirteci kullanarak bağlanmak için şu adımları izleyin:
- PgAdmin'i açın ve Sunucu Kaydet>'i seçin.
- Genel sekmesinde bir bağlantı adı girin ve Şimdi bağlan'ın işaretini kaldırın.
-
Bağlantı sekmesinde konak ayrıntılarını girin.
Kullanıcı Adını Microsoft Entra UPN'nize ayarlayın (örneğin,
user@tenant.onmicrosoft.com). Kaydet. - Ağaçta sunucuyu seçin ve Sunucuya Bağlan'ı seçin.
- İstendiğinde, erişim belirtecini parola olarak yapıştırın.
Bağlanırken dikkat edilmesi gereken bazı önemli noktalar şunlardır:
user@tenant.onmicrosoft.com, Microsoft Entra kullanıcısının userPrincipalName değeridir.Azure kullanıcısının tam olarak yazıldığını kullandığınızdan emin olun. Microsoft Entra kullanıcı ve grup adları büyük/küçük harfe duyarlıdır.
Ad boşluk içeriyorsa, her boşluktan kaçmak için önce bir ters eğik çizgi (
\) kullanın. Oturum açmış kullanıcıyı almak ve ortam değişkeninin değerini ayarlamak içinPGUSERAzure CLI'yı kullanabilirsiniz:export PGUSER=$(az ad signed-in-user show --query "[userPrincipalName]" -o tsv | sed 's/ /\\ /g')Erişim belirtecinin geçerliliği 5 dakika ile 60 dakika arasındadır. PostgreSQL için Azure Veritabanı'nda oturum açma işlemini başlatmadan önce erişim belirtecini almanız gerekir.
Artık Microsoft Entra kimlik doğrulaması aracılığıyla PostgreSQL için Azure Veritabanı sunucunuzda kimliğiniz doğrulandı.
Grup üyesi olarak Microsoft Entra Kimliği ile kimlik doğrulaması
Bu bölümde, Bir Microsoft Entra grubu kullanarak nasıl bağlandığınız gösterilmektedir. Grubun bir üyesi olmanız ve grubun veritabanında oluşturulması (eşlenmesi) gerekir.
Grup sorumlusu oluşturma
Veritabanında grup sorumlusu (rol) oluşturun (görünen adı gerektiği gibi değiştirin):
select * from pgaadauth_create_principal('Prod DB Readonly', false, false).
Grup eşitleme devre dışı bırakılırsa, üyeler erişim belirteçlerini kullanarak oturum açabilir ve grup adını kullanıcı adı olarak belirtebilir.
Grup eşitleme etkinleştirildiyse (pgaadauth.enable_group_sync sunucu parametresi "ON" olarak ayarlandıysa), üyeler tek tek Entra Id kimlik bilgileriyle oturum açmalıdır, ancak yine de kullanıcı adı olarak grup adıyla oturum açabilirler.
Grup oturum açma işlemleri uyumluluk nedeniyle kullanılabilir durumda kalır ancak aşağıdakilerle devre dışı bırakılabilir:
ALTER ROLE "ROLE_NAME" NOLOGIN;Eşitlemeyi sürdürmek için grup rolü silinmemelidir.
Gruplar her 30 dakikada bir otomatik olarak eşitlenir.
El ile eşitleme şu şekilde tetiklenebilir:
SELECT * FROM pgaadauth_sync_roles_for_group_members();(pgaadauth.enable_group_syncparam "ON" olmalıdır").Grup meta verisinde grup adı gibi değişiklikler eşitlenmiyor
Grup üyeliği değişiklikleri senkronize edildi
Uyarı
Yönetilen kimlikler ve hizmet sorumluları grup üyeleri olarak desteklenir.
Azure'a Giriş Yap
Azure CLI'yi kullanarak Microsoft Entra Kimliği ile kimlik doğrulaması yapın. Bu adım Azure Cloud Shell'de gerekli değildir. Kullanıcının Microsoft Entra grubunun bir üyesi olması gerekir.
az login
Microsoft Entra erişim belirtecini alma
Microsoft Entra kimliği doğrulanmış kullanıcının PostgreSQL için Azure Veritabanı'na erişmesi için bir erişim belirteci almak için Azure CLI'yi kullanın. Genel bulut örneği aşağıda verilmişti:
az account get-access-token --resource https://ossrdbms-aad.database.windows.net
İlk kaynak değerini tam olarak gösterildiği gibi belirtmeniz gerekir. Diğer bulutlar için aşağıdaki komutu kullanarak kaynak değerini arayabilirsiniz:
az cloud show
Azure CLI sürüm 2.0.71 ve üzeri için komutu tüm bulutlar için aşağıdaki uygun sürümde belirtebilirsiniz:
az account get-access-token --resource-type oss-rdbms
Kimlik doğrulaması başarılı olduktan sonra Microsoft Entra Id bir erişim belirteci döndürür:
{
"accessToken": "TOKEN",
"expiresOn": "...",
"subscription": "...",
"tenant": "...",
"tokenType": "Bearer"
}
Psql veya PgAdmin ile oturum açmak için parola olarak belirteç kullanma
Grup üyesi olarak bağlanırken bu önemli noktalar önemlidir:
- Grup adı, Microsoft Entra grubu görüntüleme adıyla (büyük/küçük harfe duyarlı) tam olarak eşleşmelidir.
- Üye takma adını değil, yalnızca grup adını kullanın.
- Gerektiğinde kaçış alanları (örneğin,
Prod\ DB\ Readonly). - Belirteç geçerliliği 5-60 dakikadır. Bağlanmadan hemen önce edinin; belirteçleri betiklerde depolamayın.
Tavsiye
Kimlik doğrulaması başarısız olursa, veritabanı rolünün mevcut olduğunu doğrulamak için örneğin \du ile kontrol edin ve pgaadauth.enable_group_sync ayarını onaylayın.
Artık Microsoft Entra kimlik doğrulaması aracılığıyla PostgreSQL sunucunuzda kimliğiniz doğrulandı.