الحصول على الرموز المميزة لمعرف Microsoft Entra للمستخدمين باستخدام MSAL

هام

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

لا توصي Databricks بإنشاء الرموز المميزة لمعرف Microsoft Entra لمستخدمي Azure Databricks يدويا. وذلك لأن كل رمز مميز لمعرف Microsoft Entra قصير الأجل، وعادة ما تنتهي صلاحيته في غضون ساعة واحدة. بعد هذا الوقت، يجب إنشاء رمز مميز بديل لمعرف Microsoft Entra يدويا. بدلا من ذلك، استخدم إحدى الأدوات المشاركة أو SDKs التي تنفذ معيار المصادقة الموحد لعميل Databricks. تقوم هذه الأدوات وSDKs تلقائيا بإنشاء واستبدال الرموز المميزة لمعرف Microsoft Entra منتهية الصلاحية لك، والاستفادة من مصادقة Azure CLI.

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

لإنشاء كيان خدمة مدار من Azure Databricks بدلا من كيان خدمة مدار بواسطة معرف Microsoft Entra، راجع إدارة أساسيات الخدمة.

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

إشعار

يحل MSAL محل مكتبة مصادقة معرف Microsoft Entra (ADAL). انتهى جميع دعم Microsoft وتطويرها ل ADAL، بما في ذلك إصلاحات الأمان، في 30 يونيو 2022. راجع ترحيل التطبيقات إلى مكتبة مصادقة Microsoft (MSAL).

تلميح

قد تحتاج إلى محاولة استخدام Azure CLI بدلا من MSAL للحصول على الرموز المميزة لمعرف Microsoft Entra للمستخدمين، حيث يتضمن استخدام Azure CLI خطوات أقل. راجع الحصول على الرموز المميزة لمعرف Microsoft Entra للمستخدمين باستخدام Azure CLI.

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

تكوين تطبيق في مدخل Microsoft Azure

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

  1. قم بتسجيل الدخول إلى بوابة Azure.

    إشعار

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

  2. إذا كان لديك حق الوصول إلى عدة مستأجرين أو اشتراكات أو دلائل، فانقر فوق الأيقونة Directories + subscriptions (الدليل مع عامل التصفية) في القائمة العلوية للتبديل إلى الدليل الذي تريد تسجيل التطبيق فيه.

  3. ابحث عن Microsoft Entra ID وحدده.

  4. ضمن Manage، حدد App registrations > New registration.

  5. بالنسبة إلى الاسم: أدخل اسمًا للتطبيق.

  6. في قسم أنواع الحسابات المدعومة، حدد الحسابات في هذا الدليل التنظيمي فقط (مستأجر واحد) .

  7. في قسم Redirect URI (اختياري)، لتحديد نظام أساسي، حدد Public client/native (mobile & desktop) وأدخل عنوان URI لإعادة التوجيه. في المثال التالي، قيمة URI لإعادة التوجيه هي http://localhost.

    تسجيل التطبيق

  8. انقر فوق تسجيل.

  9. في صفحة نظرة عامة على صفحة التطبيق، في قسم Essentials، انسخ القيم التالية:

    • معرف التطبيق (العميل)
    • معرف الدليل (المستأجر)
    • في Redirect URIs، يقوم العميل العام بإعادة توجيه URI الذي أدخلته سابقا في هذا الإجراء.

    نظرة عامة على تطبيق Azure المسجل

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

    1. في صفحة نظرة عامة على صفحة التطبيق، في علامة التبويب بدء الاستخدام، انقر فوق عرض أذونات واجهة برمجة التطبيقات.

      إعدادات التطبيق المسجلة في Azure

    2. انقر فوق إضافة إذن.

      إضافة الأذونات المطلوبة إلى التطبيق

    3. في جزء طلب أذونات واجهة برمجة التطبيقات، انقر فوق علامة التبويب واجهات برمجة التطبيقات التي تستخدمها مؤسستي، وابحث عن AzureDatabricks، ثم حددها.

      إضافة إذن واجهة برمجة تطبيقات AzureDatabricks

    4. قم بتمكين خانة الاختيار user_impersonation ، ثم انقر فوق إضافة أذونات.

      الأذونات المفوضة لتطبيق Azure

    5. انقر فوق منح موافقة المسؤول ل ### ثم نعم. لتنفيذ هذا الإجراء، يجب أن تكون مستخدم مسؤول أو لديك امتياز منح الموافقة على التطبيق. إذا لم تشاهد منح موافقة المسؤول ل ###، أو إذا تخطيت هذا الإجراء، فيجب عليك استخدام تدفق رمز التخويل (تفاعلي) في المرة الأولى التي تستخدم فيها التطبيق لتقديم الموافقة. بعد ذلك، يمكنك استخدام أسلوب تدفق اسم المستخدم وكلمة المرور (برمجي).

      إضافة مستخدمين ومجموعات إضافية إلى أذونات التطبيق

يمكنك إضافة مستخدمين إضافيين إلى التطبيق. لمزيد من المعلومات، راجع تعيين حساب مستخدم لتطبيق مؤسسة لإرشادات مدخل Microsoft Azure أو تعيين مستخدمين ومجموعات إلى تطبيق في معرف Microsoft Entra (المعروف سابقا ب Azure Active Directory) للحصول على إرشادات PowerShell. لن يتمكن المستخدم من الحصول على رمز مميز دون الأذونات المطلوبة.

الحصول على رمز مميز للوصول إلى معرف Microsoft Entra

للحصول على رمز مميز للوصول إلى معرف Microsoft Entra، يمكنك استخدام إما:

يجب استخدام تدفق رمز التخويل (تفاعلي) للحصول على الرمز المميز للوصول إلى معرف Microsoft Entra إذا:

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

إذا كان لديك السلطة لتسجيل الدخول باستخدام اسم مستخدم وكلمة مرور، يمكنك استخدام تدفق اسم المستخدم وكلمة المرور (برمجي) للحصول على رمز مميز للوصول إلى معرف Microsoft Entra.

تدفق رمز التخويل (تفاعلي)

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

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

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

نهج آخر هو استخدام مكتبة MSAL Python. للقيام بذلك، يمكنك تشغيل برنامج نصي واحد يستخدم مستعرض الويب الخاص بك للحصول على رمز التخويل ثم يستخدم رمز التخويل للحصول على كل من الرمز المميز للوصول والتحديث.

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

الحصول على الرموز المميزة لمعرف Microsoft Entra باستخدام مستعرض ويب و curl

  1. جمع المعلومات التالية:

    المعلمة ‏‏الوصف‬
    معرف المستأجر معرف الدليل (المستأجر) للتطبيق ذي الصلة المسجل في معرف Microsoft Entra في تكوين تطبيق في مدخل Microsoft Azure.
    معرف العميل معرف التطبيق (العميل) للتطبيق ذي الصلة المسجل في معرف Microsoft Entra.
    عنوان URI لإعادة التوجيه‬ عناوين URL المناسبة لإعادة التوجيه للتطبيق ذي الصلة المسجلة في معرف Microsoft Entra (على سبيل المثال، http://localhost). يتم إرسال استجابات المصادقة إلى URI هذا مع تضمين رمز التخويل.
  2. احصل على رمز التخويل باستخدام مستعرض الويب للاستعراض وصولا إلى عنوان URL التالي. استبدل الحقول في مثال URL التالي وفقا لذلك. لاحظ أنه يجب إرسال عنوان URL كخط واحد؛ تمت إضافة فواصل الأسطر إلى عنوان URL التالي لسهولة القراءة. لمزيد من المعلومات، انظر طلب رمز المصادقة.

    https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?client_id=<client-id>
    &response_type=code
    &redirect_uri=<redirect-uri>
    &response_mode=query
    &scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default
    &state=<state>
    

    استبدل:

    • <tenant-id> مع معرف مستأجر التطبيق المسجل.
    • <client-id> مع معرف عميل التطبيق المسجل.
    • <redirect-uri> مع عنوان URI لإعادة توجيه التطبيق المسجل. يجب أن يكون عنوان URI هذا بتنسيق URL المشفرة (ترميز النسبة المئوية). على سبيل المثال، http://localhost هو http%3A%2F%2Flocalhost.
    • <state> برقم عشوائي أو بعض المعلومات المشفرة. للمساعدة في التحقق من تكامل تبادل المعلومات، يجب أن تتطابق قيمة الحالة هذه مع القيمة الموجودة في عنوان URL الذي تم إرجاعه لاحقا في هذا الإجراء.

    لا تقم بتغيير قيمة المعلمة scope . وهو يمثل المعرف البرمجي ل Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d) جنبا إلى جنب مع النطاق الافتراضي (/.default، مرمز بعنوان URL ك %2f.default).

    على سبيل المثال:

    https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/v2.0/authorize?client_id=12a34b56-789c-0d12-e3fa-b456789c0123
    &response_type=code
    &redirect_uri=http%3A%2F%2Flocalhost
    &response_mode=query
    &scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default
    &state=12345
    
  3. الصق عنوان URL كخط واحد في مستعرض الويب الخاص بك، وإذا طلب منك ذلك، قم بتسجيل الدخول إلى Azure.

    عنوان URL لطلب HTTP

  4. رمز التخويل موجود في code الحقل في عنوان URL الذي تم إرجاعه. احفظ رمز التخويل في موقع آمن. تحقق أيضا للتأكد من state تطابق قيمة الحقل مع القيمة التي قدمتها سابقا في هذا الإجراء.

    عنوان URL لرمز التخويل

    سيبدو عنوان URL الكامل الذي تم إرجاعه كما يلي (مع اختصار قيمة الحقل الكامل code إلى 0.ASkAIj...RxgFhSAA هنا للإيجاز):

    http://localhost/?code=0.ASkAIj...RxgFhSAA&state=12345&session_state=c44574d5-38ba-4f93-b2a3-a830db8e8cdf
    
  5. استخدم رمز التخويل مع curl للحصول على الرمز المميز للوصول إلى معرف Microsoft Entra.

    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
    https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token \
    -d 'client_id=<client-id>' \
    -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \
    -d 'code=<authorization-code>' \
    -d 'redirect_uri=<redirect-uri>' \
    -d 'grant_type=authorization_code' \
    -d 'state=<state>'
    

    استبدل:

    • <tenant-id> مع معرف مستأجر التطبيق المسجل.
    • <client-id> مع معرف عميل التطبيق المسجل.
    • <authorization-code> مع رمز التخويل الخاص بك.
    • <redirect-uri> مع عنوان URI لإعادة توجيه التطبيق المسجل. يجب أن يكون عنوان URI هذا بتنسيق URL المشفرة (النسبة المئوية للنهاية). على سبيل المثال، http://localhost هو http%3A%2F%2Flocalhost.
    • <state> برقم عشوائي أو بعض المعلومات المشفرة. للمساعدة في التحقق من تكامل تبادل المعلومات، يجب أن تتطابق قيمة الحالة هذه مع القيمة الموجودة في حمولة الاستجابة لاحقا في هذا الإجراء.

    لا تقم بتغيير قيمة المعلمة scope . وهو يمثل المعرف البرمجي ل Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d) جنبا إلى جنب مع النطاق الافتراضي (/.default، مرمز بعنوان URL ك %2f.default).

    على سبيل المثال:

    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
    https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/v2.0/token \
    -d 'client_id=12a34b56-789c-0d12-e3fa-b456789c0123' \
    -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \
    -d 'code=0.ASkAIj...RxgFhSAA' \
    -d 'redirect_uri=http%3A%2F%2Flocalhost' \
    -d 'grant_type=authorization_code' \
    -d 'state=12345'
    

    الرمز المميز لمعرف Microsoft Entra موجود في access_token القيمة ضمن نتيجة الاستدعاء. تأكد من تطابق state القيمة مع القيمة التي قدمتها سابقا في هذا الإجراء.

الحصول على الرموز المميزة لمعرف Microsoft Entra باستخدام مكتبة MSAL Python

  1. جمع المعلومات التالية:

    المعلمة ‏‏الوصف‬
    معرف المستأجر معرف الدليل (المستأجر) للتطبيق ذي الصلة المسجل في معرف Microsoft Entra في تكوين تطبيق في مدخل Microsoft Azure.
    معرف العميل معرف التطبيق (العميل) للتطبيق ذي الصلة المسجل في معرف Microsoft Entra.

    يفترض هذا الإجراء أنك قمت بتعيين http://localhost URI لإعادة التوجيه للتطبيق ذي الصلة المسجل في معرف Microsoft Entra.

  2. قم بتثبيت MSAL Python SDK على جهازك المحلي عن طريق تشغيل pip install msal.

  3. احفظ التعليمات البرمجية التالية كما get-tokens.py على جهازك المحلي.

    # Given the client ID and tenant ID for an app registered in Azure,
    # provide a <ms-entra-id> access token and a refresh token.
    
    # If the caller is not already signed in to Azure, the caller's
    # web browser will prompt the caller to sign in first.
    
    # pip install msal
    from msal import PublicClientApplication
    import sys
    
    # You can hard-code the registered app's client ID and tenant ID here,
    # or you can provide them as command-line arguments to this script.
    client_id = '<client-id>'
    tenant_id = '<tenant-id>'
    
    # Do not modify this variable. It represents the programmatic ID for
    # Azure Databricks along with the default scope of '/.default'.
    scopes = [ '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' ]
    
    # Check for too few or too many command-line arguments.
    if (len(sys.argv) > 1) and (len(sys.argv) != 3):
      print("Usage: get-tokens.py <client ID> <tenant ID>")
      exit(1)
    
    # If the registered app's client ID and tenant ID are provided as
    # command-line variables, set them here.
    if len(sys.argv) > 1:
      client_id = sys.argv[1]
      tenant_id = sys.argv[2]
    
    app = PublicClientApplication(
      client_id = client_id,
      authority = "https://login.microsoftonline.com/" + tenant_id
    )
    
    acquire_tokens_result = app.acquire_token_interactive(
      scopes = scopes
    )
    
    if 'error' in acquire_tokens_result:
      print("Error: " + acquire_tokens_result['error'])
      print("Description: " + acquire_tokens_result['error_description'])
    else:
      print("Access token:\n")
      print(acquire_tokens_result['access_token'])
      print("\nRefresh token:\n")
      print(acquire_tokens_result['refresh_token'])
    
  4. قم بأحد الإجراءات التالية:

    • في التعليمات البرمجية السابقة، استبدل <client-id> بمعرف عميل التطبيق المسجل ومعرف <tenant-id> مستأجر التطبيق المسجل، ثم قم بتشغيل البرنامج النصي، على سبيل المثال python get-tokens.py.
    • قم بتوفير معرف عميل التطبيق المسجل ومعرف مستأجر التطبيق المسجل عند تشغيل البرنامج النصي، على سبيل المثال python get-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de.
  5. إذا كان مستعرض الويب يطالبك، فسجل الدخول إلى Azure.

  6. تتم طباعة الوصول إلى معرف Microsoft Entra والرموز المميزة للتحديث في الإخراج.

تدفق اسم المستخدم وكلمة المرور (برمجي)

  1. إذا كان لديك السلطة لتسجيل الدخول باستخدام اسم مستخدم وكلمة مرور، فاجمع المعلومات التالية:

    المعلمة ‏‏الوصف‬
    معرف المستأجر معرف الدليل (المستأجر) للتطبيق ذي الصلة المسجل في معرف Microsoft Entra في تكوين تطبيق في مدخل Microsoft Azure.
    معرف العميل معرف التطبيق (العميل) للتطبيق الحقيقي المسجل في معرف Microsoft Entra.
    اسم المستخدم وكلمة المرور اسم المستخدم (أي عنوان البريد الإلكتروني عند تسجيل الدخول إلى مدخل Microsoft Azure) وكلمة مرور المستخدم في المستأجر.

    يفترض هذا الإجراء أنك قمت بتعيين http://localhost URI لإعادة التوجيه للتطبيق ذي الصلة المسجل في معرف Microsoft Entra.

  2. قم بتثبيت MSAL Python SDK على جهازك المحلي عن طريق تشغيل pip install msal.

  3. احفظ التعليمات البرمجية التالية كما get-tokens-for-user.py على جهازك المحلي.

    # Given the client ID and tenant ID for an app registered in Azure,
    # along with an Azure username and password,
    # provide a <ms-entra-id> access token and a refresh token.
    
    # If the caller is not already signed in to Azure, the caller's
    # web browser will prompt the caller to sign in first.
    
    # pip install msal
    from msal import PublicClientApplication
    import sys
    
    # You can hard-code the registered app's client ID and tenant ID here,
    # along with the Azure username and password,
    # or you can provide them as command-line arguments to this script.
    client_id = '<client-id>'
    tenant_id = '<tenant-id>'
    username = '<username>'
    password = '<password>'
    
    # Do not modify this variable. It represents the programmatic ID for
    # Azure Databricks along with the default scope of '/.default'.
    scope = [ '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' ]
    
    # Check for too few or too many command-line arguments.
    if (len(sys.argv) > 1) and (len(sys.argv) != 5):
      print("Usage: get-tokens-for-user.py <client ID> <tenant ID> <username> <password>")
      exit(1)
    
    # If the registered app's client ID and tenant ID along with the
    # Azure username and password are provided as command-line variables,
    # set them here.
    if len(sys.argv) > 1:
      client_id = sys.argv[1]
      tenant_id = sys.argv[2]
      username = sys.argv[3]
      password = sys.argv[4]
    
    app = PublicClientApplication(
      client_id = client_id,
      authority = "https://login.microsoftonline.com/" + tenant_id
    )
    
    acquire_tokens_result = app.acquire_token_by_username_password(
      username = username,
      password = password,
      scopes = scope
    )
    
    if 'error' in acquire_tokens_result:
      print("Error: " + acquire_tokens_result['error'])
      print("Description: " + acquire_tokens_result['error_description'])
    else:
      print("Access token:\n")
      print(acquire_tokens_result['access_token'])
      print("\nRefresh token:\n")
      print(acquire_tokens_result['refresh_token'])
    
  4. قم بأحد الإجراءات التالية:

    • في التعليمات البرمجية السابقة، استبدل <client-id> بمعرف عميل التطبيق المسجل، <tenant-id> بمعرف مستأجر التطبيق المسجل، <username> واسم المستخدم، وكلمة <password> المرور، ثم قم بتشغيل البرنامج النصي، على سبيل المثال python get-tokens-for-user.py.
    • قم بتوفير معرف عميل التطبيق المسجل ومعرف مستأجر التطبيق المسجل واسم المستخدم وكلمة المرور عند تشغيل البرنامج النصي، على سبيل المثال python get-tokens-for-user.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de someone@example.com "MyPa55w&rd!". إذا كانت وسيطة سطر الأوامر تحتوي على أحرف خاصة، فيجب إحاطتها بعلامات اقتباس.
  5. تتم طباعة الوصول إلى معرف Microsoft Entra والرموز المميزة للتحديث إلى المحطة الطرفية الخاصة بك.

استخدام رمز مميز للوصول إلى معرف Microsoft Entra للوصول إلى Databricks REST API

يصف هذا القسم كيفية استخدام رمز مميز للوصول إلى معرف Microsoft Entra لاستدعاء Databricks REST API. في الأمثلة التالية، استبدل <access-token> بالرمز المميز للوصول إلى معرف Microsoft Entra و <databricks-instance> بعنوان URL لكل مساحة عمل لنشر Azure Databricks.

مثال Python

يوضح هذا المثال كيفية سرد المجموعات في مساحة عمل Azure Databricks.

import requests
import json

databricks_instance = '<databricks-instance>'
api_version = '/api/2.0'
api_command = '/clusters/list'
url = f"https://{databricks_instance}{api_version}{api_command}"
access_token = '<access-token>'

response = requests.get(
  url = url,
  headers = { 'Authorization': "Bearer " + access_token}
)

print(json.dumps(json.loads(response.text), indent = 2))

إشعار

إذا كنت مستخدما غير مسؤول وتريد تسجيل الدخول كمستخدم مسؤول، يجب توفير X-Databricks-Azure-Workspace-Resource-Id العنوان بالإضافة إلى 'Authorization' : 'Bearer ' العنوان ويجب أن تكون في دور المساهم أو المالك على مورد مساحة العمل في Azure. يمكنك إنشاء X-Databricks-Azure-Workspace-Resource-Id القيمة كما يلي:

# ...

subscription = '<azure-subscription-id>'
resource_group = '<azure-resource-group-name>'
workspace = '<databricks-workspace-name-in-azure>'

db_resource_id = '/subscriptions/%s/resourcegroups/%s/providers/microsoft.databricks/workspaces/%s' % (
  subscription,
  resource_group,
  workspace
)

# ...

  headers = {
    'Authorization': "Bearer " + access_token,
    'X-Databricks-Azure-Workspace-Resource-Id': db_resource_id
  }

# ...

للحصول على معلومات الاشتراك والموارد ومساحة العمل في Azure، راجع فتح الموارد. لفتح المورد الهدف، يمكنك البحث عن نوع خدمة Azure Databricks وأي معلومات أخرى في Azure تعرفها حول مساحة عمل Azure Databricks الهدف.

curl على سبيل المثال

curl -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <access-token>' \
https://<databricks-instance>/api/2.0/clusters/list

تحديث رمز مميز للوصول إلى معرف Microsoft Entra

إذا حصلت على رمز تحديث مميز مع الرمز المميز للوصول إلى معرف Microsoft Entra، يمكنك استخدام رمز التحديث المميز للحصول على رمز مميز جديد. بشكل افتراضي، مدة بقاء الرموز المميزة للوصول إلى معرف Microsoft Entra هي فترة زمنية عشوائية تتراوح بين 60 و90 دقيقة (75 دقيقة في المتوسط). يمكنك تكوين مدة بقاء الرموز المميزة للوصول إلى معرف Microsoft Entra باستخدام الأساليب في مدة بقاء الرمز المميز القابل للتكوين في Microsoft Entra ID (المعروف سابقا ب Azure Active Directory).

يوضح المثال التالي كيفية استخدام مكتبة MSAL Python مع رمز تحديث مميز للحصول على رمز مميز جديد.

  1. احفظ التعليمات البرمجية التالية كما refresh-tokens.py على جهازك المحلي.

    # Given the client ID and tenant ID for an app registered in Azure,
    # along with a refresh token, provide a new <ms-entra-id> access token and
    # refresh token.
    
    # If the caller is not already signed in to Azure, the caller's
    # web browser will prompt the caller to sign in first.
    
    # pip install msal
    from msal import PublicClientApplication
    import sys
    
    # You can hard-code the registered app's client ID, tenant ID,
    # and refresh token here, or you can provide them as command-line
    # arguments to this script.
    client_id = '<client-id>'
    tenant_id = '<refresh-token'
    refresh_token = '<refresh-token>'
    
    # Do not modify this variable. It represents the programmatic ID for
    # Azure Databricks along with the default scope of '.default'.
    scope = [ '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' ]
    
    # Check for too few or too many command-line arguments.
    if (len(sys.argv) > 1) and (len(sys.argv) != 4):
      print("Usage: refresh-tokens.py <client ID> <tenant ID> <refresh token>")
      exit(1)
    
    # If the registered app's client ID, tenant ID, and refresh token are
    # provided as command-line variables, set them here.
    if len(sys.argv) > 1:
      client_id = sys.argv[1]
      tenant_id = sys.argv[2]
      refresh_token = sys.argv[3]
    
    app = PublicClientApplication(
      client_id = client_id,
      authority = "https://login.microsoftonline.com/" + tenant_id
    )
    
    acquire_tokens_result = app.acquire_token_by_refresh_token(
      refresh_token = refresh_token,
      scopes = scope
    )
    
    if 'error' in acquire_tokens_result:
      print("Error: " + acquire_tokens_result['error'])
      print("Description: " + acquire_tokens_result['error_description'])
    else:
      print("\nNew access token:\n")
      print(acquire_tokens_result['access_token'])
      print("\nNew refresh token:\n")
      print(acquire_tokens_result['refresh_token'])
    
  2. قم بأحد الإجراءات التالية:

    • في التعليمات البرمجية السابقة، استبدل <client-id> بمعرف عميل التطبيق المسجل، <tenant-id> بمعرف مستأجر التطبيق المسجل، و <refresh-token> بالرمز المميز للتحديث، ثم قم بتشغيل البرنامج النصي، على سبيل المثال python get-tokens-for-user.py.
    • قم بتوفير معرف عميل التطبيق المسجل، ومعرف مستأجر التطبيق المسجل، ورمز التحديث المميز عند تشغيل البرنامج النصي، على سبيل المثال python refresh-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de "0.ASkAIj...huE84ALg". إذا كانت وسيطة سطر الأوامر تحتوي على أحرف خاصة، فيجب إحاطتها بعلامات اقتباس.
  3. تتم طباعة الوصول إلى معرف Microsoft Entra الجديد والرموز المميزة للتحديث إلى المحطة الطرفية الخاصة بك.