مصادقة OAuth من مستخدم إلى جهاز (U2M)

تستخدم مصادقة المستخدم إلى الجهاز (U2M) OAuth تسجيل الدخول البشري في الوقت الحقيقي والموافقة على مصادقة حساب مستخدم Azure Databricks الهدف. بعد تسجيل دخول المستخدم بنجاح والموافقة على طلب مصادقة OAuth، يتم إعطاء رمز OAuth المميز إلى الأداة المشاركة أو SDK لإجراء المصادقة المستندة إلى الرمز المميز من ذلك الوقت فصاعدا نيابة عن المستخدم. الرمز المميز OAuth له عمر ساعة واحدة، وبعد ذلك ستقوم الأداة أو SDK المعنية بمحاولة خلفية تلقائية للحصول على رمز مميز جديد صالح أيضا لمدة ساعة واحدة.

لتكوين مصادقة OAuth U2M باستخدام Azure Databricks، يجب تعيين متغيرات البيئة المقترنة التالية أو .databrickscfg الحقول أو حقول Terraform أو Config الحقول:

  • مضيف Azure Databricks، المحدد لعمليات https://accounts.azuredatabricks.net الحساب أو عنوان URL المستهدف لكل مساحة عمل، على سبيل المثال https://adb-1234567890123456.7.azuredatabricks.net لعمليات مساحة العمل.
  • معرف حساب Azure Databricks لعمليات حساب Azure Databricks.

لإجراء مصادقة OAuth U2M مع Azure Databricks، قم بدمج ما يلي ضمن التعليمات البرمجية الخاصة بك، استنادا إلى الأداة المشاركة أو SDK. لاحظ أنه استنادا إلى عمليات Azure Databricks التي تستدعيها التعليمات البرمجية الخاصة بك، لا تحتاج بالضرورة إلى أن تكون مسؤولا لحساب Azure Databricks:

البيئة

لاستخدام متغيرات البيئة لنوع مصادقة Azure Databricks معين باستخدام أداة أو SDK، راجع المصادقة لأدوات Azure Databricks وواجهات برمجة التطبيقات أو وثائق الأداة أو SDK. راجع أيضا متغيرات البيئة والحقول للمصادقة الموحدة للعميل وأساليب المصادقة الافتراضية للمصادقة الموحدة للعميل.

بالنسبة للعمليات على مستوى الحساب، قم بتعيين متغيرات البيئة التالية:

  • DATABRICKS_HOST، قم بتعيين إلى قيمة عنوان URL لوحدة تحكم حساب Azure Databricks، https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID

بالنسبة للعمليات على مستوى مساحة العمل، قم بتعيين متغيرات البيئة التالية:

  • DATABRICKS_HOST، قم بتعيين إلى قيمة عنوان URL الخاص ب Azure Databricks لكل مساحة عمل، على سبيل المثال https://adb-1234567890123456.7.azuredatabricks.net.

ملف التعريف

إنشاء ملف تعريف تكوين Azure Databricks أو تعريفه باستخدام الحقول التالية في ملفك.databrickscfg. إذا قمت بإنشاء ملف التعريف، فاستبدل العناصر النائبة بالقيم المناسبة. لاستخدام ملف التعريف مع أداة أو SDK، راجع المصادقة لأدوات Azure Databricks وواجهات برمجة التطبيقات أو وثائق الأداة أو SDK. راجع أيضا متغيرات البيئة والحقول للمصادقة الموحدة للعميل وأساليب المصادقة الافتراضية للمصادقة الموحدة للعميل.

بالنسبة للعمليات على مستوى الحساب، قم بتعيين القيم التالية في ملفك .databrickscfg . في هذه الحالة، عنوان URL لوحدة تحكم حساب Azure Databricks هو https://accounts.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host       = <account-console-url>
account_id = <account-id>

بالنسبة للعمليات على مستوى مساحة العمل، قم بتعيين القيم التالية في الملف..databrickscfg في هذه الحالة، يكون المضيف هو عنوان URL الخاص ب Azure Databricks لكل مساحة عمل، على سبيل المثالhttps://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host = <workspace-url>

CLI

بالنسبة ل Databricks CLI، قم بتشغيل databricks auth login الأمر بالخيارات التالية:

بعد تشغيل هذا الأمر، اتبع الإرشادات الموجودة في مستعرض الويب لتسجيل الدخول إلى حساب أو مساحة عمل Azure Databricks.

لمزيد من التفاصيل، راجع مصادقة OAuth من مستخدم إلى جهاز (U2M).

اتصال

إشعار

يتم دعم مصادقة OAuth U2M في إصدارات Databricks Connect التالية:

  • بالنسبة إلى Python وDatabricks Connect ل Databricks Runtime 13.1 وما فوق.
  • بالنسبة إلى Scala وDatabricks Connect ل Databricks Runtime 13.3 LTS وما فوق.

بالنسبة إلى Databricks Connect، يمكنك القيام بأحد الإجراءات التالية:

  • تعيين القيم الموجودة في الملف لعمليات .databrickscfg Azure Databricks على مستوى مساحة العمل كما هو محدد في قسم "ملف التعريف" في هذه المقالة. قم أيضا بتعيين cluster_id متغير البيئة في ملف التعريف الخاص بك إلى عنوان URL لكل مساحة عمل، على سبيل المثال https://adb-1234567890123456.7.azuredatabricks.net.
  • تعيين متغيرات البيئة لعمليات Azure Databricks على مستوى مساحة العمل كما هو محدد في قسم "البيئة" في هذه المقالة. قم أيضا بتعيين DATABRICKS_CLUSTER_ID متغير البيئة إلى عنوان URL لكل مساحة عمل، على سبيل المثال https://adb-1234567890123456.7.azuredatabricks.net.

دائما ما تكون للقيم الموجودة في .databrickscfg الملف الأسبقية على متغيرات البيئة.

لتهيئة عميل Databricks Connect مع متغيرات البيئة هذه أو القيم في ملفك .databrickscfg ، راجع أحد الإجراءات التالية:

تعليمة VS الظاهرية

للحصول على ملحق Databricks ل Visual Studio Code، قم بما يلي:

  1. في جزء التكوين ، انقر فوق تكوين Databricks.
  2. في لوحة الأوامر، لمضيف Databricks، أدخل عنوان URL لكل مساحة عمل، على سبيل المثال https://adb-1234567890123456.7.azuredatabricks.net، ثم اضغط Enterعلى .
  3. حدد OAuth (المستخدم إلى الجهاز).
  4. أكمل الإرشادات التي تظهر على الشاشة داخل مستعرض الويب لإنهاء المصادقة باستخدام حساب Azure Databricks والسماح بالوصول إلى جميع واجهة برمجة التطبيقات .

لمزيد من التفاصيل، راجع إعداد مصادقة OAuth U2M.

Terraform

إشعار

مصادقة OAuth U2M غير مدعومة بعد.

Python

بالنسبة للعمليات على مستوى الحساب، يجب أولا استخدام Databricks CLI لتشغيل الأمر التالي، قبل تشغيل تعليمة Python البرمجية الخاصة بك. يرشد هذا الأمر Databricks CLI لإنشاء وتخزين رمز OAuth المميز الضروري في المسار .databricks/token-cache.json داخل المجلد الرئيسي للمستخدم على جهازك:

databricks auth login --host <account-console-url> --account-id <account-id>

استبدل العناصر النائبة التالية:

  • استبدل <account-console-url> بالقيمة https://accounts.azuredatabricks.net. (لا تقم بتعيين هذا إلى قيمة عنوان URL لمساحة عمل Azure Databricks.)
  • استبدل <account-id> بقيمة حساب Azure Databricks الخاص بك. راجع تحديد موقع معرف حسابك.

إشعار

إذا كان لديك ملف تعريف تكوين Azure Databricks موجود مع host الحقول و account_id المعينة بالفعل، يمكنك استبدالها --host <account-console-url> --account-id <account-id> ب --profile <profile-name>.

بعد تشغيل auth login الأمر، تتم مطالبتك بحفظ عنوان URL لتسجيل الدخول إلى الحساب ومعرف الحساب كملف تعريف تكوين Azure Databricks. عند المطالبة، أدخل اسم ملف تعريف جديد أو موجود في ملفك .databrickscfg . تتم الكتابة فوق أي ملف تعريف موجود بنفس الاسم في .databrickscfg الملف.

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

للمصادقة الافتراضية:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

للتكوين المباشر (استبدل العناصر النائبة retrieve بتطبيقك الخاص لاسترداد القيم من وحدة التحكم أو مخزن تكوين آخر، مثل Azure KeyVault). في هذه الحالة، عنوان URL لوحدة تحكم حساب Azure Databricks هو https://accounts.azuredatabricks.net:

from databricks.sdk import AccountClient

a = AccountClient(
  host       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

بالنسبة للعمليات على مستوى مساحة العمل، يجب أولا استخدام Databricks CLI لتشغيل الأمر التالي، قبل تشغيل التعليمات البرمجية ل Python. يرشد هذا الأمر Databricks CLI لإنشاء وتخزين رمز OAuth المميز الضروري في المسار .databricks/token-cache.json داخل المجلد الرئيسي للمستخدم على جهازك:

databricks auth login --host <worskpace-url>

استبدل العنصر النائب <workspace-url> بعنوان URL الهدف Azure Databricks لكل مساحة عمل، على سبيل المثال https://adb-1234567890123456.7.azuredatabricks.net.

إشعار

إذا كان لديك ملف تعريف تكوين Azure Databricks موجود مع host تعيين الحقل بالفعل، يمكنك استبداله --host <workspace-url> ب --profile <profile-name>.

Ater الذي تقوم بتشغيل auth login الأمر، تتم مطالبتك بحفظ عنوان URL لمساحة العمل كملف تعريف تكوين Azure Databricks. عند المطالبة، أدخل اسم ملف تعريف جديد أو موجود في ملفك .databrickscfg . تتم الكتابة فوق أي ملف تعريف موجود بنفس الاسم في .databrickscfg الملف.

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

للمصادقة الافتراضية:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

للتكوين المباشر (استبدل العناصر النائبة retrieve بتطبيقك الخاص لاسترداد القيم من وحدة التحكم أو مخزن تكوين آخر، مثل Azure KeyVault). في هذه الحالة، يكون المضيف هو عنوان URL الخاص ب Azure Databricks لكل مساحة عمل، على سبيل المثالhttps://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...

لمزيد من المعلومات حول المصادقة باستخدام أدوات Databricks وSDKs التي تستخدم Python والتي تنفذ المصادقة الموحدة لعميل Databricks، راجع:

Java

بالنسبة للعمليات على مستوى الحساب، يجب عليك أولا استخدام Databricks CLI لتشغيل الأمر التالي، قبل تشغيل تعليمة Java البرمجية الخاصة بك. يرشد هذا الأمر Databricks CLI لإنشاء وتخزين رمز OAuth المميز الضروري في المسار .databricks/token-cache.json داخل المجلد الرئيسي للمستخدم على جهازك:

databricks auth login --host <account-console-url> --account-id <account-id>

استبدل العناصر النائبة التالية:

  • استبدل <account-console-url> بالقيمة https://accounts.azuredatabricks.net. (لا تقم بتعيين هذا إلى قيمة عنوان URL لمساحة عمل Azure Databricks.)
  • استبدل <account-id> بقيمة حساب Azure Databricks الخاص بك. راجع تحديد موقع معرف حسابك.

إشعار

إذا كان لديك ملف تعريف تكوين Azure Databricks موجود مع host الحقول و account_id المعينة بالفعل، يمكنك استبدالها --host <account-console-url> --account-id <account-id> ب --profile <profile-name>.

بعد تشغيل auth login الأمر، تتم مطالبتك بحفظ عنوان URL لتسجيل الدخول إلى الحساب ومعرف الحساب كملف تعريف تكوين Azure Databricks. عند المطالبة، أدخل اسم ملف تعريف جديد أو موجود في ملفك .databrickscfg . تتم الكتابة فوق أي ملف تعريف موجود بنفس الاسم في .databrickscfg الملف.

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

للمصادقة الافتراضية:

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

للتكوين المباشر (استبدل العناصر النائبة retrieve بتطبيقك الخاص لاسترداد القيم من وحدة التحكم أو مخزن تكوين آخر، مثل Azure KeyVault). في هذه الحالة، عنوان URL لوحدة تحكم حساب Azure Databricks هو https://accounts.azuredatabricks.net:

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...

بالنسبة للعمليات على مستوى مساحة العمل، يجب عليك أولا استخدام Databricks CLI لتشغيل الأمر التالي، قبل تشغيل التعليمات البرمجية ل Java. يرشد هذا الأمر Databricks CLI لإنشاء وتخزين رمز OAuth المميز الضروري في المسار .databricks/token-cache.json داخل المجلد الرئيسي للمستخدم على جهازك:

databricks auth login --host <worskpace-url>

استبدل العنصر النائب <workspace-url> بعنوان URL الهدف Azure Databricks لكل مساحة عمل، على سبيل المثال https://adb-1234567890123456.7.azuredatabricks.net.

إشعار

إذا كان لديك ملف تعريف تكوين Azure Databricks موجود مع host تعيين الحقل بالفعل، يمكنك استبداله --host <workspace-url> ب --profile <profile-name>.

بعد تشغيل auth login الأمر، تتم مطالبتك بحفظ عنوان URL لمساحة العمل كملف تعريف تكوين Azure Databricks. عند المطالبة، أدخل اسم ملف تعريف جديد أو موجود في ملفك .databrickscfg . تتم الكتابة فوق أي ملف تعريف موجود بنفس الاسم في .databrickscfg الملف.

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

للمصادقة الافتراضية:

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

للتكوين المباشر (استبدل العناصر النائبة retrieve بتطبيقك الخاص لاسترداد القيم من وحدة التحكم أو مخزن تكوين آخر، مثل Azure KeyVault). في هذه الحالة، يكون المضيف هو عنوان URL الخاص ب Azure Databricks لكل مساحة عمل، على سبيل المثالhttps://adb-1234567890123456.7.azuredatabricks.net:

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

لمزيد من المعلومات حول المصادقة باستخدام أدوات Databricks وSDKs التي تستخدم Java والتي تنفذ المصادقة الموحدة لعميل Databricks، راجع:

انتقال

بالنسبة للعمليات على مستوى الحساب، يجب أولا استخدام Databricks CLI لتشغيل الأمر التالي، قبل تشغيل التعليمات البرمجية Go. يرشد هذا الأمر Databricks CLI لإنشاء وتخزين رمز OAuth المميز الضروري في المسار .databricks/token-cache.json داخل المجلد الرئيسي للمستخدم على جهازك:

databricks auth login --host <account-login-url> --account-id <account-id>

استبدل العناصر النائبة التالية:

  • استبدل <account-console-url> بالقيمة https://accounts.azuredatabricks.net. (لا تقم بتعيين هذا إلى قيمة عنوان URL لمساحة عمل Azure Databricks.)
  • استبدل <account-id> بقيمة حساب Azure Databricks الخاص بك. راجع تحديد موقع معرف حسابك.

إشعار

إذا كان لديك ملف تعريف تكوين Azure Databricks موجود مع host الحقول و account_id المعينة بالفعل، يمكنك استبدالها --host <account-console-url> --account-id <account-id> ب --profile <profile-name>.

بعد تشغيل auth login الأمر، تتم مطالبتك بحفظ عنوان URL لتسجيل الدخول إلى الحساب ومعرف الحساب كملف تعريف تكوين Azure Databricks. عند المطالبة، أدخل اسم ملف تعريف جديد أو موجود في ملفك .databrickscfg . تتم الكتابة فوق أي ملف تعريف موجود بنفس الاسم في .databrickscfg الملف.

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

للمصادقة الافتراضية:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

للتكوين المباشر (استبدل العناصر النائبة retrieve بتطبيقك الخاص لاسترداد القيم من وحدة التحكم أو مخزن تكوين آخر، مثل Azure KeyVault). في هذه الحالة، عنوان URL لوحدة تحكم حساب Azure Databricks هو https://accounts.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:      retrieveAccountConsoleUrl(),
  AccountId: retrieveAccountId(),
}))
// ...

بالنسبة للعمليات على مستوى مساحة العمل، يجب عليك أولا استخدام Databricks CLI لتشغيل الأمر التالي، قبل تشغيل التعليمات البرمجية Go. يرشد هذا الأمر Databricks CLI لإنشاء وتخزين رمز OAuth المميز الضروري في المسار .databricks/token-cache.json داخل المجلد الرئيسي للمستخدم على جهازك:

databricks auth login --host <worskpace-url>

استبدل العنصر النائب <workspace-url> بعنوان URL الهدف Azure Databricks لكل مساحة عمل، على سبيل المثال https://adb-1234567890123456.7.azuredatabricks.net.

إشعار

إذا كان لديك ملف تعريف تكوين Azure Databricks موجود مع host تعيين الحقل بالفعل، يمكنك استبداله --host <workspace-url> ب --profile <profile-name>.

بعد تشغيل auth login الأمر، تتم مطالبتك بحفظ عنوان URL لمساحة العمل كملف تعريف تكوين Azure Databricks. عند المطالبة، أدخل اسم ملف تعريف جديد أو موجود في ملفك .databrickscfg . تتم الكتابة فوق أي ملف تعريف موجود بنفس الاسم في .databrickscfg الملف.

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

للمصادقة الافتراضية:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

للتكوين المباشر (استبدل العناصر النائبة retrieve بتطبيقك الخاص لاسترداد القيم من وحدة التحكم أو مخزن تكوين آخر، مثل Azure KeyVault). في هذه الحالة، يكون المضيف هو عنوان URL الخاص ب Azure Databricks لكل مساحة عمل، على سبيل المثالhttps://adb-1234567890123456.7.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host: retrieveWorkspaceUrl(),
}))
// ...

لمزيد من المعلومات حول المصادقة باستخدام أدوات Databricks وSDKs التي تستخدم Go والتي تنفذ المصادقة الموحدة لعميل Databricks، راجع مصادقة Databricks SDK ل Go باستخدام حساب Azure Databricks أو مساحة العمل.

إنشاء واستخدام رموز الوصول المميزة يدويا لمصادقة المستخدم إلى الجهاز (U2M) في OAuth

ستقوم أدوات Azure Databricks وSDKs التي تنفذ معيار المصادقة الموحد لعميل Databricks تلقائيا بإنشاء وتحديث واستخدام رموز الوصول المميزة ل Azure Databricks OAuth نيابة عنك حسب الحاجة لمصادقة OAuth U2M.

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

الخطوة 1: إنشاء مدقق التعليمات البرمجية OAuth وزوج تحدي التعليمات البرمجية

لإنشاء واستخدام رموز الوصول المميزة يدويا لمصادقة OAuth U2M، يجب أن يكون لديك أولا مدقق رمز OAuth وتحدي رمز OAuth المشتق من مدقق التعليمات البرمجية. يمكنك استخدام تحدي التعليمات البرمجية لاحقا في الخطوة 2 لإنشاء رمز تخويل OAuth. يمكنك استخدام مدقق التعليمات البرمجية ورمز التخويل لاحقا في الخطوة 3 لإنشاء رمز الوصول OAuth المميز.

إشعار

في حين أنه من الممكن تقنيا استخدام سلاسل نص عادي غير مشفرة لمدقق التعليمات البرمجية وتحدي التعليمات البرمجية، تشجع Databricks بشدة اتباع معيار OAuth لإنشاء مدقق التعليمات البرمجية وتحدي التعليمات البرمجية بدلا من ذلك.

على وجه التحديد، يجب أن يكون مدقق التعليمات البرمجية سلسلة عشوائية مشفرة باستخدام أحرف من المجموعات A-Zو 0-9a-zو أحرف -._~ الترقيم (الواصلة والنقطة والتسطير السفلي والتلمذة)، بين 43 و128 حرفا. يجب أن يكون تحدي التعليمات البرمجية سلسلة ترميز Base64-URL لتجزئة SHA256 من مدقق التعليمات البرمجية. لمزيد من المعلومات، راجع طلب التخويل.

يمكنك تشغيل البرنامج النصي Python التالي لإنشاء مدقق تعليمة برمجية فريدة وزوج تحدي التعليمات البرمجية بسرعة. بينما يمكنك إعادة استخدام أداة التحقق من التعليمات البرمجية التي تم إنشاؤها وإقران تحدي التعليمات البرمجية عدة مرات، توصي Databricks بإنشاء مدقق تعليمة برمجية جديدة وإقران تحدي التعليمات البرمجية في كل مرة تقوم فيها بإنشاء رموز مميزة للوصول يدويا لمصادقة OAuth U2M.

import uuid, hashlib, base64

# Generate a UUID.
uuid1 = uuid.uuid4()

# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()

# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1

# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')

# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')

# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier:  {code_verifier}")
print(f"code_challenge: {code_challenge}")

الخطوة 2: إنشاء رمز تخويل

يمكنك استخدام رمز تخويل OAuth لإنشاء رمز وصول Azure Databricks OAuth. تنتهي صلاحية رمز التخويل مباشرة بعد استخدامه لإنشاء رمز مميز للوصول إلى Azure Databricks OAuth. يعتمد نطاق التعليمات البرمجية للتخويل على المستوى الذي تنشئه منه. يمكنك إنشاء رمز تخويل إما على مستوى حساب Azure Databricks أو مستوى مساحة العمل، كما يلي:

إنشاء رمز تخويل على مستوى الحساب

  1. بصفتك مسؤول حساب، سجل الدخول إلى وحدة تحكم الحساب.

  2. انقر فوق السهم لأسفل إلى جانب اسم المستخدم في الزاوية العلوية اليسرى.

  3. انسخ معرف حسابك.

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

    في عنوان URL التالي، استبدل ما يلي:

    • استبدل <account-id> بمعرف الحساب الذي نسخته.
    • استبدل <redirect-url> بعنوان URL لإعادة التوجيه إلى جهازك المحلي، على سبيل المثال http://localhost:8020.
    • استبدل <state> ببعض سلاسل النص العادي التي يمكنك استخدامها للتحقق من تكامل رمز التخويل.
    • استبدل <code-challenge> بتحدي التعليمات البرمجية الذي أنشأته في الخطوة 1.
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize
    ?client_id=databricks-cli
    &redirect_url=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  5. عند المطالبة، اتبع الإرشادات التي تظهر على الشاشة لتسجيل الدخول إلى حساب Azure Databricks الخاص بك.

  6. في شريط عناوين مستعرض الويب، انسخ رمز التخويل. رمز التخويل هو السلسلة الكاملة من الأحرف بين code= والحرف & في عنوان URL. على سبيل المثال، رمز التخويل في عنوان URL التالي هو dcod...7fe6:

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    يجب التحقق من تكامل رمز التخويل هذا عن طريق التأكد بصريا من أن <state> القيمة في عنوان URL للاستجابة state هذا تطابق القيمة التي قدمتها في عنوان URL للطلب. إذا كانت القيم مختلفة، يجب عدم استخدام رمز التخويل هذا، حيث يمكن اختراقه.

  7. انتقل إلى إنشاء رمز مميز للوصول على مستوى الحساب.

إنشاء رمز تخويل على مستوى مساحة العمل

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

    في عنوان URL التالي، استبدل ما يلي:

    • استبدل <databricks-instance> باسم مثيل مساحة عمل Azure Databricks، على سبيل المثال adb-1234567890123456.7.azuredatabricks.net.
    • استبدل <redirect-url> بعنوان URL لإعادة التوجيه إلى جهازك المحلي، على سبيل المثال http://localhost:8020.
    • استبدل <state> ببعض سلاسل النص العادي التي يمكنك استخدامها للتحقق من تكامل رمز التخويل.
    • استبدل <code-challenge> بتحدي التعليمات البرمجية الذي أنشأته في الخطوة 1.
    https://<databricks-instance>/oidc/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  2. عند المطالبة، اتبع الإرشادات التي تظهر على الشاشة لتسجيل الدخول إلى مساحة عمل Azure Databricks.

  3. في شريط عناوين مستعرض الويب، انسخ رمز التخويل. رمز التخويل هو السلسلة الكاملة من الأحرف بين code= والحرف & في عنوان URL. على سبيل المثال، رمز التخويل في عنوان URL التالي هو dcod...7fe6:

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    يجب التحقق من تكامل رمز التخويل هذا عن طريق التأكد بصريا من أن <state> القيمة في عنوان URL للاستجابة state هذا تطابق القيمة التي قدمتها في عنوان URL للطلب. إذا كانت القيم مختلفة، يجب عدم استخدام رمز التخويل هذا، حيث يمكن اختراقه.

الخطوة 3: استخدام رمز التخويل لإنشاء رمز وصول OAuth

يمكنك استخدام رمز تخويل OAuth من الخطوة السابقة لإنشاء رمز وصول Azure Databricks OAuth، كما يلي:

إنشاء رمز مميز للوصول على مستوى الحساب

  1. استخدم عميلا مثل curl رمز التخويل على مستوى الحساب لإنشاء رمز الوصول إلى OAuth على مستوى الحساب. في الاستدعاء التالي curl ، استبدل العناصر النائبة التالية:

    • استبدل <account-id> بمعرف الحساب من الخطوة 2.
    • استبدل <redirect-url> بعنوان URL لإعادة التوجيه من الخطوة 2.
    • استبدل <code-verifier> بأداة التحقق من التعليمات البرمجية التي أنشأتها في الخطوة 1.
    • استبدل <authorization-code> برمز التخويل على مستوى الحساب الذي أنشأته في الخطوة 2.
    curl --request POST \
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. في الاستجابة، انسخ رمز الوصول إلى OAuth على مستوى الحساب. الرمز المميز للوصول هو السلسلة الكاملة من الأحرف في access_token الكائن. على سبيل المثال، الرمز المميز للوصول في الاستجابة التالية هو eyJr...Dkag:

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

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

  3. انتقل إلى الخطوة 4: استدعاء Databricks REST API.

إنشاء رمز مميز للوصول على مستوى مساحة العمل

  1. استخدم عميلا مثل curl التعليمة البرمجية للتخويل على مستوى مساحة العمل لإنشاء رمز الوصول إلى OAuth على مستوى مساحة العمل. في الاستدعاء التالي curl ، استبدل العناصر النائبة التالية:

    • استبدل <databricks-instance> باسم مثيل مساحة عمل Azure Databricks، على سبيل المثال adb-1234567890123456.7.azuredatabricks.net.
    • استبدل <redirect-url> بعنوان URL لإعادة التوجيه من الخطوة 2.
    • استبدل <code-verifier> بأداة التحقق من التعليمات البرمجية التي أنشأتها في الخطوة 1.
    • استبدل <authorization-code> برمز التخويل على مستوى مساحة العمل الذي أنشأته في الخطوة 2.
    curl --request POST \
    https://<databricks-instance>/oidc/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. في الاستجابة، انسخ رمز الوصول إلى OAuth على مستوى مساحة العمل. الرمز المميز للوصول هو السلسلة الكاملة من الأحرف في access_token الكائن. على سبيل المثال، الرمز المميز للوصول في الاستجابة التالية هو eyJr...Dkag:

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

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

الخطوة 4: استدعاء واجهة برمجة تطبيقات REST ل Databricks

يمكنك استخدام رمز الوصول إلى OAuth على مستوى الحساب أو على مستوى مساحة العمل للمصادقة على واجهات برمجة تطبيقات REST على مستوى حساب Azure Databricks وواجهات برمجة تطبيقات REST على مستوى مساحة العمل، اعتمادا على نطاق الرمز المميز للوصول. يجب أن يكون حساب مستخدم Azure Databricks مسؤول حساب لاستدعاء واجهات برمجة تطبيقات REST على مستوى الحساب.

مثال على طلب واجهة برمجة تطبيقات REST على مستوى الحساب

يستخدم curl هذا المثال جنبا إلى جنب مع Bearer المصادقة للحصول على قائمة بجميع مساحات العمل المقترنة بحساب.

  • استبدل <oauth-access-token> برمز الوصول إلى OAuth على مستوى الحساب.
  • استبدل <account-id> بمعرف حسابك.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces"

مثال على طلب واجهة برمجة تطبيقات REST على مستوى مساحة العمل

يستخدم curl هذا المثال جنبا إلى جنب مع Bearer المصادقة لسرد كافة المجموعات المتوفرة في مساحة العمل المحددة.

  • استبدل <oauth-access-token> برمز الوصول إلى OAuth على مستوى الحساب أو مساحة العمل.
  • استبدل <databricks-instance> باسم مثيل مساحة عمل Azure Databricks، على سبيل المثال adb-1234567890123456.7.azuredatabricks.net.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"