PostgreSQL - Esnek Sunucu için Azure Veritabanı ile Microsoft Entra ID kimlik doğrulamasını kullanma

ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı - Esnek Sunucu

Bu makalede, esnek PostgreSQL için Azure Veritabanı sunucuyla kimlik doğrulaması için Microsoft Entra ID erişimini yapılandıracaksınız. Ayrıca esnek PostgreSQL için Azure Veritabanı sunucuyla Microsoft Entra belirtecini kullanmayı da öğreneceksiniz.

Microsoft Entra kimlik doğrulamasını sunucu sağlama sırasında veya daha sonraki PostgreSQL için Azure Veritabanı esnek sunucu için yapılandırabilirsiniz. Microsoft Entra ID tabanlı kimlik doğrulaması için sadece Microsoft Entra yönetici kullanıcıları kullanıcı oluşturabilir veya etkinleştirebilir. Bu rolün yükseltilmiş kullanıcı izinleri (örneğin, CREATEDB) olduğundan, normal veritabanı işlemleri için Microsoft Entra yöneticisini kullanmamanızı öneririz.

Esnek PostgreSQL için Azure Veritabanı sunucusuna sahip 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

Ağ gereksinimlerini yapılandırma

Microsoft Entra Id çok kiracılı bir uygulamadır. Microsoft Entra yönetici gruplarını ekleme gibi belirli işlemleri gerçekleştirmek için giden bağlantı gerektirir. Ayrıca, ağ topolojinize bağlı olarak Microsoft Entra bağlantısının çalışması için ağ kuralları gerekir:

  • Genel erişim (izin verilen IP adresleri): Ek ağ kuralı gerekmez.

  • Özel erişim (sanal ağ tümleştirmesi):

    • Sanal ağ trafiğinin yalnızca hizmet etiketine ulaşmasına izin vermek için bir giden ağ güvenlik grubu (NSG) kuralına AzureActiveDirectory ihtiyacınız vardır.
    • Yol tablosu kullanıyorsanız, hedef hizmet etiketi AzureActiveDirectory ve sonraki atlama Internetile bir kural oluşturmanız gerekir.
    • İsteğe bağlı olarak, ara sunucu kullanıyorsanız, HTTP/S trafiğinin yalnızca AzureActiveDirectory hizmet etiketine ulaşmasına izin vermek için yeni bir güvenlik duvarı kuralı ekleyebilirsiniz.
  • Özel DNS: Sanal Ağ (VNET) içinde özel DNS kullanıyorsanız dikkat edilmesi gereken ek noktalar vardır. Böyle durumlarda, aşağıdaki uç noktaların ilgili IP adreslerine çözümlendiğinden emin olmak çok önemlidir: login.microsoftonline.com: Bu uç nokta kimlik doğrulaması amacıyla kullanılır. Özel DNS kurulumunuzun login.microsoftonline.com doğru IP adreslerine çözümlenmesine olanak sağladığını doğrulayın graph.microsoft.com: Bu uç nokta Microsoft Graph API'sine erişmek için kullanılır. Özel DNS kurulumunuzun graph.microsoft.com doğru IP adreslerine çözümlenmesine izin verdiğinden emin olun.

Sunucu sağlama sırasında Microsoft Entra yöneticisini ayarlamak için şu adımları izleyin:

  1. Azure portalda, 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ı seçin.
  2. 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.

Not

Sunucu sağlama sırasında yalnızca bir Azure yönetici kullanıcısı ekleyebilirsiniz. Sunucu oluşturulduktan sonra birden çok Microsoft Entra yönetici kullanıcısı ekleyebilirsiniz.

Sunucu sağlama sırasında Microsoft Entra yöneticisi ayarlama seçimlerini gösteren ekran görüntüsü.]

Sunucu oluşturulduktan sonra Microsoft Entra yöneticisini ayarlamak için şu adımları izleyin:

  1. Azure portalında, Microsoft Entra Id için etkinleştirmek istediğiniz PostgreSQL için Azure Veritabanı esnek sunucu örneğini seçin.
  2. 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.
  3. 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.
  4. Kaydet'i seçin.

Sunucu oluşturulduktan sonra Microsoft Entra yöneticisi ayarlama seçimlerini gösteren ekran görüntüsü.

Önemli

Yöneticiyi ayarlarken, tam yönetici izinlerine sahip PostgreSQL için Azure Veritabanı esnek sunucuya yeni bir kullanıcı eklenir.

Microsoft Entra Id kullanarak PostgreSQL için Azure Veritabanı bağlanma

Aşağıdaki üst düzey diyagram, PostgreSQL için Azure Veritabanı ile Microsoft Entra kimlik doğrulamasını kullanma iş akışını özetler:

Microsoft Entra Kimliği, kullanıcının bilgisayarı ve sunucu arasındaki kimlik doğrulama akışının diyagramı.

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. Önceki diyagramda gösterildiği gibi, Microsoft Entra belirteci parola olarak geçirilir.

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 ID ile kimlik doğrulaması

PostgreSQL için Azure Veritabanı esnek sunucu kullanıcısı olarak Microsoft Entra Id ile kimlik doğrulaması yapmak için aşağıdaki yordamları kullanın. Azure Cloud Shell'de, azure sanal makinesinde veya yerel makinenizde takip edebilirsiniz.

Kullanıcının Azure aboneliğinde oturum açma

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ı 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ı hizmetine hedeflenmiştir.

İstemci psql ile oturum açmak için parola olarak belirteç kullanma

Bağlanırken, en iyisi erişim belirtecini PostgreSQL kullanıcı parolası olarak kullanmaktır.

psql komut satırı istemcisi kullanılırken erişim belirtecinin ortam değişkeni üzerinden PGPASSWORD geçirilmesi gerekir. Bunun nedeni, erişim belirtecinin psql'nin doğrudan kabul edebildiği parola uzunluğunu aşmasıdır.

İş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/macOS örneği:

export PGPASSWORD=<copy/pasted TOKEN value from step 2>

Ayrıca, komut değişimini kullanarak 2. ve 3. adımı birlikte birleştirebilirsiniz. Belirteç alma işlemi bir değişkene kapsüllenebilir ve ortam değişkeni için PGPASSWORD doğrudan bir değer olarak geçirilebilir:

export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)

Artık genellikle yaptığınız gibi PostgreSQL için Azure Veritabanı ile bağlantı başlatabilirsiniz:

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:

  1. Pgadmin'i açın ve Sol menüden kaydet'e tıklayın ve Sunucu'ya tıklayın
  2. Genel Sekmesinde bir bağlantı adı sağlayın ve Şimdi bağlan seçeneğini temizleyin.
  3. Bağlantı sekmesine tıklayın ve Ana Bilgisayar adı/adresi ve kullanıcı adı için PostgreSQL için Azure Veritabanı esnek sunucu örneği ayrıntılarınızı sağlayın ve kaydedin. kullanıcı adı, Microsoft Entra kimliğiniz veya e-postanızdır
  4. Tarayıcı menüsünden PostgreSQL için Azure Veritabanı esnek sunucu bağlantınızı seçin ve Sunucuyu Bağla'ya tıklayın
  5. İstendiğinde Active Directory belirteci parolanızı girin.

PG yöneticisini kullanarak oturum açma işlemini gösteren ekran görüntüsü.

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çin PGUGSER Azure 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ı 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ı

Esnek PostgreSQL için Azure Veritabanı sunucuda Microsoft Entra grupları oluşturma

Bir Microsoft Entra grubunun veritabanınıza erişmesini sağlamak için, kullanıcılar için kullandığınız mekanizmayı kullanın, ancak bunun yerine grup adını belirtin. Örneğin:

select * from  pgaadauth_create_principal('Prod DB Readonly', false, false).

Grup üyeleri oturum açtıklarında erişim belirteçlerini kullanır ancak kullanıcı adı olarak grup adını belirtir.

Not

PostgreSQL için Azure Veritabanı esnek sunucu, yönetilen kimlikleri ve hizmet sorumlularını grup üyesi olarak destekler.

Kullanıcının Azure aboneliğinde oturum açma

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ı 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ı, bağlanmaya çalıştığınız Microsoft Entra grubunun adıdır.
  • Microsoft Entra grup adı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.
  • Grup olarak bağlanırken, grup üyesinin diğer adını değil yalnızca grup adını kullanın.
  • Ad boşluk içeriyorsa, her boşluktan kaçmak için önce bir ters eğik çizgi (\) kullanın.
  • Erişim belirtecinin geçerliliği 5 dakika ile 60 dakika arasındadır. PostgreSQL için Azure Veritabanı oturum açma işlemini başlatmadan önce erişim belirtecini almanızı öneririz.

Artık Microsoft Entra kimlik doğrulaması aracılığıyla PostgreSQL sunucunuzda kimliğiniz doğrulandı.

Sonraki adımlar