مصادقة 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،
--host <account-console-url> --account-id <account-id>
. - لعمليات Azure Databricks على مستوى مساحة العمل،
--host <workspace-url>
.
بعد تشغيل هذا الأمر، اتبع الإرشادات الموجودة في مستعرض الويب لتسجيل الدخول إلى حساب أو مساحة عمل 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
، راجع أحد الإجراءات التالية:
- بالنسبة إلى Python، راجع تكوين خصائص الاتصال ل Python.
- بالنسبة إلى Scala، راجع تكوين خصائص الاتصال ل Scala.
تعليمة VS الظاهرية
للحصول على ملحق Databricks ل Visual Studio Code، قم بما يلي:
- في جزء التكوين ، انقر فوق تكوين Databricks.
- في لوحة الأوامر، لمضيف Databricks، أدخل عنوان URL لكل مساحة عمل، على سبيل المثال
https://adb-1234567890123456.7.azuredatabricks.net
، ثم اضغطEnter
على . - حدد OAuth (المستخدم إلى الجهاز).
- أكمل الإرشادات التي تظهر على الشاشة داخل مستعرض الويب لإنهاء المصادقة باستخدام حساب 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، راجع:
- إعداد عميل Databricks Connect ل Python
- إعداد المصادقة لملحق Databricks ل VS Code
- مصادقة Databricks SDK ل Python باستخدام حساب Azure 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 Connect ل Scala (يستخدم عميل Databricks Connect ل Scala Databricks SDK المضمن ل Java للمصادقة)
- مصادقة Databricks SDK ل Java باستخدام حساب Azure 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-9
a-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 أو مستوى مساحة العمل، كما يلي:
- لاستدعاء واجهات برمجة تطبيقات REST على مستوى الحساب ومساحة العمل داخل الحسابات ومساحات العمل التي يمكن لحساب مستخدم Azure Databricks الوصول إليها، قم بإنشاء رمز تخويل على مستوى الحساب.
- لاستدعاء واجهات برمجة تطبيقات REST داخل مساحة عمل واحدة فقط يمكن لحساب المستخدم الخاص بك الوصول إليها، يمكنك إنشاء رمز تخويل على مستوى مساحة العمل لمساحة العمل هذه فقط.
إنشاء رمز تخويل على مستوى الحساب
بصفتك مسؤول حساب، سجل الدخول إلى وحدة تحكم الحساب.
انقر فوق السهم لأسفل إلى جانب اسم المستخدم في الزاوية العلوية اليسرى.
انسخ معرف حسابك.
في شريط عناوين مستعرض الويب، استعرض للوصول إلى عنوان 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
- استبدل
عند المطالبة، اتبع الإرشادات التي تظهر على الشاشة لتسجيل الدخول إلى حساب Azure Databricks الخاص بك.
في شريط عناوين مستعرض الويب، انسخ رمز التخويل. رمز التخويل هو السلسلة الكاملة من الأحرف بين
code=
والحرف&
في عنوان URL. على سبيل المثال، رمز التخويل في عنوان URL التالي هوdcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
يجب التحقق من تكامل رمز التخويل هذا عن طريق التأكد بصريا من أن
<state>
القيمة في عنوان URL للاستجابةstate
هذا تطابق القيمة التي قدمتها في عنوان URL للطلب. إذا كانت القيم مختلفة، يجب عدم استخدام رمز التخويل هذا، حيث يمكن اختراقه.انتقل إلى إنشاء رمز مميز للوصول على مستوى الحساب.
إنشاء رمز تخويل على مستوى مساحة العمل
في شريط عناوين مستعرض الويب، استعرض للوصول إلى عنوان 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
- استبدل
عند المطالبة، اتبع الإرشادات التي تظهر على الشاشة لتسجيل الدخول إلى مساحة عمل Azure Databricks.
في شريط عناوين مستعرض الويب، انسخ رمز التخويل. رمز التخويل هو السلسلة الكاملة من الأحرف بين
code=
والحرف&
في عنوان URL. على سبيل المثال، رمز التخويل في عنوان URL التالي هوdcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
يجب التحقق من تكامل رمز التخويل هذا عن طريق التأكد بصريا من أن
<state>
القيمة في عنوان URL للاستجابةstate
هذا تطابق القيمة التي قدمتها في عنوان URL للطلب. إذا كانت القيم مختلفة، يجب عدم استخدام رمز التخويل هذا، حيث يمكن اختراقه.
الخطوة 3: استخدام رمز التخويل لإنشاء رمز وصول OAuth
يمكنك استخدام رمز تخويل OAuth من الخطوة السابقة لإنشاء رمز وصول Azure Databricks OAuth، كما يلي:
- لاستدعاء واجهات برمجة تطبيقات REST على مستوى الحساب ومساحة العمل داخل الحسابات ومساحات العمل التي يمكن لحساب مستخدم Azure Databricks الوصول إليها، استخدم رمز التخويل على مستوى الحساب لإنشاء رمز مميز للوصول على مستوى الحساب.
- لاستدعاء واجهات برمجة تطبيقات REST داخل مساحة عمل واحدة فقط يمكن لحساب المستخدم الخاص بك الوصول إليها، يمكنك استخدام رمز التخويل على مستوى مساحة العمل لإنشاء رمز وصول على مستوى مساحة العمل لمساحة العمل هذه فقط.
إنشاء رمز مميز للوصول على مستوى الحساب
استخدم عميلا مثل
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>"
- استبدل
في الاستجابة، انسخ رمز الوصول إلى 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: استدعاء Databricks REST API.
إنشاء رمز مميز للوصول على مستوى مساحة العمل
استخدم عميلا مثل
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>"
- استبدل
في الاستجابة، انسخ رمز الوصول إلى 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"