مشاركة عبر


استخدام معرف Microsoft Entra للمصادقة مع قاعدة بيانات Azure ل PostgreSQL

في هذه المقالة، يمكنك تكوين الوصول إلى معرف Microsoft Entra للمصادقة باستخدام قاعدة بيانات Azure ل PostgreSQL. يمكنك أيضا معرفة كيفية استخدام رمز Microsoft Entra المميز مع قاعدة بيانات Azure لمثيل خادم PostgreSQL المرن.

يمكنك تكوين مصادقة Microsoft Entra لقاعدة بيانات Azure لمثيل خادم مرن PostgreSQL إما أثناء توفير الخادم أو إصدار أحدث. يمكن لمستخدمي مسؤول Microsoft Entra فقط إنشاء المستخدمين أو تمكينهم للمصادقة المستندة إلى معرف Microsoft Entra. لا تستخدم مسؤول Microsoft Entra لعمليات قاعدة البيانات العادية لأن هذا الدور يحتوي على أذونات مستخدم مرتفعة (على سبيل المثال، CREATEDB).

يمكن أن يكون لديك العديد من مستخدمي مسؤول Microsoft Entra باستخدام قاعدة بيانات Azure ل PostgreSQL. يمكن أن يكون مستخدمو مسؤول Microsoft Entra مستخدما أو مجموعة أو كيان خدمة.

Prerequisites

تكوين متطلبات الشبكة

معرف Microsoft Entra هو تطبيق متعدد المستأجرين. يحتاج إلى اتصال صادر لعمليات مثل إضافة مجموعات مسؤولي Microsoft Entra.

تختلف متطلبات الشبكات حسب الطوبولوجيا:

  • الوصول العام (عناوين IP المسموح بها): لا توجد قواعد صادرة إضافية مطلوبة.
  • الوصول الخاص (تكامل الشبكة الظاهرية):
    • أضف قاعدة NSG الصادرة التي تسمح بحركة المرور إلى علامة الخدمة AzureActiveDirectory فقط.
    • إذا كنت تستخدم جدول مسارات، فأضف مسارا مع الوجهة AzureActiveDirectory والقفزة Internetالتالية.
    • إذا كنت تستخدم وكيلا ، اسمح فقط بزيارات HTTPS إلى AzureActiveDirectory علامة الخدمة.
  • نظام أسماء النطاقات المخصص:
    • تأكد من حل أسماء المضيفين هذه بشكل عام: login.microsoftonline.com (المصادقة) و graph.microsoft.com (واجهة برمجة تطبيقات Microsoft Graph).
    • إذا فشل الحل، تفشل عمليات تعيين المسؤول واكتساب الرمز المميز.

لتعيين مسؤول Microsoft Entra أثناء توفير الخادم، اتبع الخطوات التالية:

  1. في مدخل Microsoft Azure، أثناء توفير الخادم، حدد إما مصادقة PostgreSQL وMicrosoft Entra أو مصادقة Microsoft Entra فقط كطريقة المصادقة.
  2. في علامة التبويب تعيين المسؤول ، حدد مستخدم Microsoft Entra صالح أو مجموعة أو كيان خدمة أو هوية مدارة في مستأجر العميل ليكون مسؤول Microsoft Entra.

يمكنك اختياريا إضافة حساب مسؤول محلي ل PostgreSQL إذا كنت تفضل استخدام طريقة مصادقة PostgreSQL وMicrosoft Entra .

Note

يمكنك إضافة مسؤول Microsoft Entra واحد فقط أثناء توفير الخادم. يمكنك إضافة عدة مستخدمين مسؤولين في Microsoft Entra بعد إنشاء الخادم.

لتعيين مسؤول Microsoft Entra بعد إنشاء الخادم، اتبع الخطوات التالية:

  1. في مدخل Microsoft Azure، حدد مثيل قاعدة بيانات Azure لخادم PostgreSQL المرن الذي تريد تمكينه لمعرف Microsoft Entra.
  2. ضمن الأمان، حدد المصادقة. ثم اختر إما مصادقة PostgreSQL و Microsoft Entra أو مصادقة Microsoft Entra فقط كطريقة المصادقة ، بناء على متطلباتك.
  3. حدد إضافة مسؤولي Microsoft Entra. ثم حدد مستخدم Microsoft Entra صالح أو مجموعة أو كيان خدمة أو هوية مدارة في مستأجر العميل ليكون مسؤول Microsoft Entra.
  4. حدد حفظ..

Important

عند تعيين المسؤول، تتم إضافة مستخدم جديد إلى قاعدة بيانات Azure لمثيل الخادم المرن PostgreSQL بأذونات المسؤول الكاملة.

الاتصال بقاعدة بيانات Azure ل PostgreSQL باستخدام معرف Microsoft Entra

يعمل تكامل Microsoft Entra مع أدوات PostgreSQL القياسية مثل psql، والتي لا تدرك Microsoft Entra وتدعم فقط تحديد اسم المستخدم وكلمة المرور عند الاتصال ب PostgreSQL.

اختبرنا العملاء التاليين:

  • سطر أوامر psql: استخدم المتغير PGPASSWORD لتمرير الرمز المميز.
  • Azure Data Studio: استخدم ملحق PostgreSQL.
  • العملاء الآخرون المستندين إلى libpq: تتضمن الأمثلة أطر عمل التطبيقات الشائعة ومخططات الكائنات العلائقية (ORMs).
  • PgAdmin: امسح الاتصال الآن عند إنشاء الخادم.

المصادقة باستخدام معرف Microsoft Entra

استخدم الإجراءات التالية للمصادقة باستخدام معرف Microsoft Entra كمستخدم لمثيل خادم Azure Database for PostgreSQL المرن.

يمكنك المتابعة باستخدام:

  • Azure Cloud Shell
  • جهاز Azure الظاهري
  • جهازك المحلي

تسجيل الدخول إلى Azure

ابدأ بالمصادقة باستخدام معرف Microsoft Entra باستخدام Azure CLI. هذه الخطوة غير مطلوبة في Azure Cloud Shell.

az login

يفتح الأمر نافذة مستعرض إلى صفحة مصادقة Microsoft Entra. يتطلب منك تقديم معرف مستخدم وكلمة مرور Microsoft Entra.

استرداد رمز وصول Microsoft Entra

استخدم Azure CLI للحصول على رمز وصول مميز للمستخدم المصادق عليه في Microsoft Entra للوصول إلى قاعدة بيانات Azure ل PostgreSQL. فيما يلي مثال على السحابة العامة:

az account get-access-token --resource https://ossrdbms-aad.database.windows.net

يجب تحديد قيمة المورد السابقة كما هو موضح. بالنسبة للسحب الأخرى، يمكنك البحث عن قيمة المورد باستخدام الأمر التالي:

az cloud show

بالنسبة إلى الإصدار 2.0.71 من Azure CLI والإصدارات الأحدث، يمكنك تحديد الأمر في الإصدار الملائم التالي لجميع السحب:

az account get-access-token --resource-type oss-rdbms

بعد نجاح المصادقة، يقوم معرف Microsoft Entra بإرجاع رمز مميز للوصول:

{
  "accessToken": "TOKEN",
  "expiresOn": "...",
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

الرمز المميز هو سلسلة Base64. يقوم بتشفير جميع المعلومات حول المستخدم المصادق عليه ويستهدف قاعدة بيانات Azure لخدمة PostgreSQL.

استخدام رمز مميز ككلمة مرور لتسجيل الدخول باستخدام العميل psql

عند الاتصال، استخدم الرمز المميز للوصول ككلمة مرور مستخدم PostgreSQL.

عند استخدام عميل سطر أوامر psql، تحتاج إلى تمرير الرمز المميز للوصول عبر PGPASSWORD متغير البيئة. الرمز المميز للوصول أطول من طول كلمة المرور التي يمكن أن يقبله psql مباشرة.

فيما يلي مثال على Windows:

set PGPASSWORD=<copy/pasted TOKEN value from step 2>
$env:PGPASSWORD='<copy/pasted TOKEN value from step 2>'

فيما يلي مثال على Linux أو macOS:

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

يمكنك أيضا دمج الخطوة 2 والخطوة 3 معا باستخدام استبدال الأوامر. يمكنك وضع استرداد الرمز المميز في متغير وتمريره مباشرة كقيمة لمتغير PGPASSWORD البيئة:

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

اتصل الآن بقاعدة بيانات Azure ل PostgreSQL:

psql "host=mydb.postgres... user=user@tenant.onmicrosoft.com dbname=postgres sslmode=require"

استخدام رمز مميز ككلمة مرور لتسجيل الدخول باستخدام PgAdmin

للاتصال باستخدام رمز Microsoft Entra المميز مع PgAdmin، اتبع الخطوات التالية:

  1. افتح PgAdmin وحدد تسجيل>الخادم.
  2. في علامة التبويب عام ، أدخل اسم اتصال وقم بإلغاء تحديد الاتصال الآن.
  3. في علامة التبويب الاتصال ، أدخل تفاصيل المضيف. قم بتعيين اسم المستخدم إلى Microsoft Entra UPN (على سبيل المثال، user@tenant.onmicrosoft.com). حفظ
  4. في الشجرة، حدد الخادم واختر Connect Server.
  5. عند المطالبة، الصق رمز الوصول المميز ككلمة مرور.

فيما يلي بعض الاعتبارات الأساسية عند الاتصال:

  • user@tenant.onmicrosoft.com هو userPrincipalName لمستخدم Microsoft Entra.

  • تأكد من استخدام الطريقة الدقيقة التي يتم بها تهجئة مستخدم Azure. أسماء مستخدمي ومجموعات Microsoft Entra حساسة لحالة الأحرف.

  • إذا كان الاسم يحتوي على مسافات، فاستخدم شرطة مائلة للخلف (\) قبل كل مسافة للخروج منها. يمكنك استخدام Azure CLI للحصول على المستخدم الذي قام بتسجيل الدخول وتعيين قيمة PGUSER متغير البيئة:

    export PGUSER=$(az ad signed-in-user show --query "[userPrincipalName]" -o tsv | sed 's/ /\\ /g')
    
  • صلاحية رمز الوصول من 5 دقائق إلى 60 دقيقة. يجب أن تحصل على الرمز المميز للوصول قبل بدء تسجيل الدخول إلى قاعدة بيانات Azure ل PostgreSQL.

تمت مصادقتك الآن على قاعدة بيانات Azure لخادم PostgreSQL من خلال مصادقة Microsoft Entra.

المصادقة باستخدام معرف Microsoft Entra كعضو في المجموعة

يوضح هذا القسم كيفية الاتصال باستخدام مجموعة Microsoft Entra. يجب أن تكون عضوا في المجموعة ويجب إنشاء المجموعة (تعيينها) في قاعدة البيانات.

إنشاء كيان مجموعة

قم بإنشاء كيان المجموعة (الدور) في قاعدة البيانات (استبدل اسم العرض حسب الحاجة):

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

إذا تم تعطيل مزامنة المجموعة، يمكن للأعضاء تسجيل الدخول باستخدام رموز الوصول المميزة الخاصة بهم وتحديد اسم المجموعة كاسم مستخدم.

إذا تم تمكين مزامنة المجموعة (عبر معلمة خادم pgaadauth.enable_group_sync تم تعيينها على "تشغيل")، فيجب على الأعضاء تسجيل الدخول باستخدام بيانات اعتماد معرف Entra الفردية الخاصة بهم، ولكن لا يزال بإمكانهم تسجيل الدخول باستخدام اسم المجموعة كاسم مستخدم.

  • تظل عمليات تسجيل الدخول الجماعية متاحة لأسباب تتعلق بالتوافق ولكن يمكن تعطيلها باستخدام: ALTER ROLE "ROLE_NAME" NOLOGIN;

  • يجب عدم حذف دور المجموعة للحفاظ على المزامنة.

  • المزامنة التلقائية للمجموعات كل 30 دقيقة.

  • يمكن تشغيل المزامنة اليدوية باستخدام: SELECT * FROM pgaadauth_sync_roles_for_group_members(); (pgaadauth.enable_group_sync يجب أن تكون المعلمة "ON").

  • لا تتم مزامنة التغييرات التي تطرأ على البيانات الوصفية للمجموعة، مثل اسم المجموعة،

  • تتم مزامنة تغييرات عضوية المجموعة

    Note

    يتم دعم الهويات المدارة وكيانات الخدمة كأعضاء في المجموعة.

تسجيل الدخول إلى Azure

المصادقة باستخدام معرف Microsoft Entra باستخدام Azure CLI. هذه الخطوة غير مطلوبة في Azure Cloud Shell. يجب أن يكون المستخدم عضوا في مجموعة Microsoft Entra.

az login

استرداد رمز وصول Microsoft Entra

استخدم Azure CLI للحصول على رمز وصول مميز للمستخدم المصادق عليه في Microsoft Entra للوصول إلى قاعدة بيانات Azure ل PostgreSQL. فيما يلي مثال على السحابة العامة:

az account get-access-token --resource https://ossrdbms-aad.database.windows.net

يجب تحديد قيمة المورد الأولية تماما كما هو موضح. بالنسبة للسحب الأخرى، يمكنك البحث عن قيمة المورد باستخدام الأمر التالي:

az cloud show

بالنسبة إلى الإصدار 2.0.71 من Azure CLI والإصدارات الأحدث، يمكنك تحديد الأمر في الإصدار الملائم التالي لجميع السحب:

az account get-access-token --resource-type oss-rdbms

بعد نجاح المصادقة، يقوم معرف Microsoft Entra بإرجاع رمز مميز للوصول:

{
  "accessToken": "TOKEN",
  "expiresOn": "...",
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

استخدام رمز مميز ككلمة مرور لتسجيل الدخول باستخدام psql أو PgAdmin

هذه الاعتبارات ضرورية عند الاتصال كعضو في المجموعة:

  • يجب أن يتطابق اسم المجموعة تماما مع اسم عرض مجموعة Microsoft Entra (حساس لحالة الأحرف).
  • استخدم اسم المجموعة فقط، وليس الاسم المستعار للعضو.
  • مساحات الهروب عند الحاجة (على سبيل المثال، Prod\ DB\ Readonly).
  • صلاحية الرمز المميز هي 5-60 دقيقة. الحصول عليه قبل الاتصال مباشرة; لا تخزن الرموز المميزة في البرامج النصية.

تلميح

إذا فشلت المصادقة، فتحقق من وجود دور قاعدة البيانات (على سبيل المثال، مع \du) وقم بتأكيد الإعداد pgaadauth.enable_group_sync .

تمت مصادقتك الآن على خادم PostgreSQL الخاص بك من خلال مصادقة Microsoft Entra.