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

يطبق على: قاعدة بيانات Azure لـ PostgreSQL - الخادم المرن

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

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

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

المتطلبات الأساسية

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

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

  • الوصول العام (عناوين IP المسموح بها): لا يلزم وجود قواعد إضافية للشبكة.

  • الوصول الخاص (تكامل الشبكة الظاهرية):

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

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

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

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

إشعار

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

Screenshot that shows selections for setting a Microsoft Entra admin during server provisioning.]

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

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

Screenshot that shows selections for setting a Microsoft Entra admin after server creation.

هام

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

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

يلخص الرسم التخطيطي عالي المستوى التالي سير عمل استخدام مصادقة Microsoft Entra مع قاعدة بيانات Azure ل PostgreSQL:

Diagram of authentication flow between Microsoft Entra ID, the user's computer, and the server.

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

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

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

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

استخدم الإجراءات التالية للمصادقة مع معرف Microsoft Entra كمستخدم خادم مرن لقاعدة بيانات Azure ل 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"

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

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

  1. افتح Pgadmin وانقر فوق Register from left menu وحدد Server
  2. في علامة التبويب العامة، أدخل اسم اتصال وقم بإلغاء تحديد الخيار الاتصال الآن.
  3. انقر فوق علامة التبويب "الاتصال ion" وقم بتوفير تفاصيل مثيل خادم Azure Database for PostgreSQL المرن لاسم المضيف/العنوان واسم المستخدم والحفظ. اسم المستخدم هو معرف Microsoft Entra أو بريدك الإلكتروني
  4. من قائمة المستعرض، حدد قاعدة بيانات Azure لاتصال خادم PostgreSQL المرن وانقر فوق الاتصال Server
  5. أدخل كلمة مرور الرمز المميز ل Active Directory عند مطالبتك.

Screenshot that shows login process using PG admin.

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

  • user@tenant.onmicrosoft.com هو userPrincipalName لمستخدم Microsoft Entra.
  • تأكد من استخدام الطريقة الدقيقة لتهجئة مستخدم Azure. أسماء المستخدمين والمجموعات في Microsoft Entra حساسة لحالة الأحرف.
  • إذا كان الاسم يحتوي على مسافات، فاستخدم مائلة عكسية (\) قبل كل مسافة للهروب منها. يمكنك استخدام Azure CLI للحصول على المستخدم الذي سجل الدخول وتعيين قيمة PGUGSER متغير البيئة:
    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 في قاعدة بيانات Azure لخادم PostgreSQL المرن

لتمكين مجموعة Microsoft Entra من الوصول إلى قاعدة البيانات الخاصة بك، استخدم نفس الآلية التي استخدمتها للمستخدمين، ولكن حدد اسم المجموعة بدلا من ذلك. على سبيل المثال:

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

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

إشعار

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

تسجيل الدخول إلى اشتراك 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 أو Pg مسؤول

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

  • اسم المجموعة هو اسم مجموعة Microsoft Entra التي تحاول الاتصال بها.
  • تأكد من استخدام طريقة كتابة اسم مجموعة Microsoft Entra بالضبط. أسماء المستخدمين والمجموعات في Microsoft Entra حساسة لحالة الأحرف.
  • عند الاتصال كمجموعة، استخدم اسم المجموعة فقط وليس الاسم المستعار لعضو المجموعة.
  • إذا كان الاسم يحتوي على مسافات، فاستخدم مائلة عكسية (\) قبل كل مسافة للهروب منها.
  • صلاحية الرمز المميز للوصول من 5 دقائق إلى 60 دقيقة. نوصي بالحصول على الرمز المميز للوصول قبل بدء تسجيل الدخول إلى قاعدة بيانات Azure ل PostgreSQL.

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

الخطوات التالية