وسيط معرف Azure HDInsight (HIB)
توضح هذه المقالة كيفية إعداد واستخدام ميزةAzure HDInsight ID Broker. يمكنك استخدام هذه الميزة للحصول على مصادقة OAuth الحديثة إلى Apache Ambari أثناء فرض مصادقة متعددة العوامل دون الحاجة إلى تجزئة كلمة المرور القديمة في Microsoft Entra Domain Services.
يبسط HDInsight ID Broker إعدادات المصادقة المعقدة في السيناريوهات التالية:
- تعتمد مؤسستك على الاتحاد لمصادقة المستخدمين للوصول إلى موارد السحابة. في السابق، لاستخدام مجموعات حزمة أمان المؤسسة HDInsight، كان عليك تمكين مزامنة تجزئة كلمة المرور من بيئتك المحلية إلى معرف Microsoft Entra. قد يكون هذا المطلب صعبًا أو غير مرغوب فيه لبعض المنظمات.
- تريد مؤسستك فرض مصادقة متعددة العوامل للوصول المستند إلى الويب أو HTTP إلى Apache Ambari وموارد المجموعة الأخرى.
يوفر HDInsight ID Broker البنية الأساسية للمصادقة التي تمكن انتقال البروتوكول من OAuth (حديث) إلى Kerberos (قديم) دون الحاجة إلى مزامنة تجزئات كلمة المرور مع Microsoft Entra Domain Services. تتكون هذه البنية الأساسية من مكونات تعمل على جهاز ظاهري يعمل بنظام Windows Server (VM) مع تمكين عقدة HDInsight ID Broker، جنبًا إلى جنب مع عُقد بوابة المجموعة.
استخدم الجدول التالي لتحديد أفضل خيار مصادقة بناءً على احتياجات مؤسستك.
خيارات المصادقة | تكوين HDInsight | عوامل يجب مراعاتها |
---|---|---|
بروتوكول OAuth بالكامل | حزمة أمان المؤسسة + وسيط معرف HDInsight | الخيار الأكثر أمانًا. (المصادقة متعددة العوامل مدعومة.) مزامنة تجزئة المرور غير مطلوبة. لا يوجد وصول ssh/kinit/keytab للحسابات المحلية، والتي لا تحتوي على تجزئة كلمة المرور في Microsoft Entra Domain Services. لا يزال بإمكان حسابات السحابة فقط ssh / kinit / keytab. الوصول المستند إلى الويب إلى Ambari من خلال OAuth. يتطلب تحديث التطبيقات القديمة (على سبيل المثال: JDBC / ODBC) لدعم OAuth. |
OAuth + المصادقة الأساسية | حزمة أمان المؤسسة + وسيط معرف HDInsight | الوصول المستند إلى الويب إلى Ambari من خلال OAuth. تستمر التطبيقات القديمة في استخدام المصادقة الأساسية. يجب تعطيل المصادقة متعددة العوامل للوصول إلى المصادقة الأساسية. مزامنة تجزئة المرور غير مطلوبة. لا يوجد وصول ssh/kinit/keytab للحسابات المحلية، والتي لا تحتوي على تجزئة كلمة المرور في Microsoft Entra Domain Services. لا يزال بإمكان حسابات السحابة فقط ssh / kinit. |
المصادقة الأساسية بالكامل | حزمة أمان المؤسسات | الأكثر تشابهًا مع الإعدادات المحلية. مزامنة تجزئة كلمة المرور إلى Microsoft Entra Domain Services مطلوبة. يمكن للحسابات المحلية ssh / kinit أو استخدام keytab. يجب تعطيل المصادقة متعددة العوامل إذا كان تخزين النسخ هو Azure Data Lake Storage Gen2. |
يوضح الرسم التخطيطي التالي تدفق المصادقة الحديثة المستندة إلى OAuth لجميع المستخدمين، بما في ذلك المستخدمون الفيدراليون، بعد تمكين HDInsight ID Broker:
في هذا الرسم التخطيطي، يحتاج العميل (أي متصفح أو تطبيق) إلى الحصول على رمز OAuth المميز أولاً. ثم يقدم الرمز المميز للبوابة في طلب HTTP. إذا قمت بالفعل بتسجيل الدخول إلى خدمات Azure الأخرى، مثل مدخل Azure، فيمكنك تسجيل الدخول إلى مجموعة HDInsight الخاصة بك من خلال تجربة تسجيل دخول واحدة.
ربما لا يزال هناك العديد من التطبيقات القديمة التي تدعم المصادقة الأساسية فقط (أي اسم المستخدم وكلمة المرور). بالنسبة لهذه السيناريوهات، لا يزال بإمكانك استخدام مصادقة HTTP الأساسية للاتصال ببوابات المجموعة. في هذا الإعداد، يجب التأكد من اتصال الشبكة من عقد البوابة إلى نقطة نهاية خدمات الأمان المشترك لـ Active Directory (AD FS) لضمان خط رؤية مباشر من عقد البوابة.
يوضح الرسم التخطيطي التالي تدفق المصادقة الأساسي للمستخدمين الفيدراليين. أولا، تحاول البوابة إكمال المصادقة باستخدام تدفق ROPC. في حالة عدم وجود تجزئات كلمة مرور متزامنة مع معرف Microsoft Entra، فإنها تعود إلى اكتشاف نقطة نهاية AD FS وإكمال المصادقة عن طريق الوصول إلى نقطة نهاية AD FS.
لإنشاء مجموعة حزمة أمان المؤسسة مع تمكين HDInsight ID Broker،
- قم بتسجيل الدخول إلى بوابة Azure.
- اتبع خطوات الإنشاء الأساسية لمجموعة حزمة أمان المؤسسة. لمزيد من المعلومات، راجع إنشاء مجموعة HDInsight باستخدام حزمة أمان المؤسسة.
- حدد Enable HDInsight ID Broker.
تضيف ميزة HDInsight ID Broker جهازًا افتراضيًا VM واحدًا إضافيًا إلى المجموعة. هذا الجهاز الظاهري VM هو عقدة HDInsight ID Broker، ويتضمن مكونات الخادم لدعم المصادقة. عقدة HDInsight ID Broker هي مجال مرتبط بمجال Microsoft Entra Domain Services.
إذا أضفت دورا جديدا يسمى idbrokernode
بالسمات التالية إلى ملف تعريف الحساب للقالب الخاص بك، يتم إنشاء نظام المجموعة مع تمكين عقدة HDInsight ID Broker:
.
.
.
"computeProfile": {
"roles": [
{
"autoscale": null,
"name": "headnode",
....
},
{
"autoscale": null,
"name": "workernode",
....
},
{
"autoscale": null,
"name": "idbrokernode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Standard_A2_V2"
},
"virtualNetworkProfile": {
"id": "string",
"subnet": "string"
},
"scriptActions": [],
"dataDisksGroups": null
}
]
}
.
.
.
للاطلاع على عينة كاملة من قالب ARM، راجع القالب المنشور هنا.
يتم تحديث أدوات HDInsight لدعم OAuth أصلاً. استخدم هذه الأدوات للوصول الحديث المستند إلى OAuth إلى المجموعات. يمكن استخدام المكون الإضافي HDInsight IntelliJ للتطبيقات المستندة إلى Java، مثل Scala. يمكن استخدام أدوات Spark وHive ل Visual Studio Code لمهام PySpark وHive. تدعم الأدوات كلاً من الوظائف المجمعة والتفاعلية.
خيارات SSH | عوامل يجب مراعاتها |
---|---|
حساب VM محلي (على سبيل المثال: sshuser) | لقد قدمت هذا الحساب في وقت إنشاء الكتلة. لا توجد مصادقة Kerberos لهذا الحساب. |
حساب السحابة فقط (على سبيل المثال، alice@contoso.onmicrosoft.com) | تتوفر تجزئة كلمة المرور في Microsoft Entra Domain Services. يمكن مصادقة Kerberos عبر SSH Kerberos. |
حساب محلي (على سبيل المثال، alice@contoso.com) | مصادقة SSH Kerberos ممكنة فقط إذا كانت تجزئة كلمة المرور متوفرة في Microsoft Entra Domain Services. خلاف ذلك، لا يمكن لهذا المستخدم SSH إلى الكتلة. |
ل SSH إلى جهاز ظاهري مرتبط بالمجال أو لتشغيل kinit
الأمر، يجب توفير كلمة مرور. تتطلب مصادقة SSH Kerberos توفر التجزئة في Microsoft Entra Domain Services. إذا كنت ترغب في استخدام SSH للسيناريوهات الإدارية فقط، يمكنك إنشاء حساب سحابة واحد فقط واستخدامه في SSH للمجموعة. لا يزال بإمكان المستخدمين المحليين الآخرين استخدام أدوات Ambari أو HDInsight أو مصادقة HTTP الأساسية دون توفر تجزئة كلمة المرور في Microsoft Entra Domain Services.
إذا لم تقم مؤسستك بمزامنة تجزئات كلمة المرور مع Microsoft Entra Domain Services، كأفضل ممارسة، فبادر بإنشاء مستخدم سحابي واحد فقط في Microsoft Entra ID. ثم قم بتعيينه كمسؤول عن المجموعة عند إنشاء الكتلة، واستخدمه لأغراض الإدارة. يمكنك استخدامه للوصول إلى الجذر إلى الأجهزة الافتراضية VM عبر SSH.
لاستكشاف مشكلات المصادقة وإصلاحها، راجع هذا الدليل.
في إعداد HDInsight ID Broker، يمكن تحديث التطبيقات والعملاء المخصصين الذين يتصلون بالبوابة للحصول على رمز OAuth المميز المطلوب أولا. لمزيد من المعلومات، راجع كيفية مصادقة تطبيقات .NET باستخدام خدمات Azure. القيم الرئيسية المطلوبة لتخويل الوصول إلى بوابة HDInsight هي:
- عنوان uri لمورد OAuth:
https://hib.azurehdinsight.net
- معرف التطبيق: 00001111-aaaa-2222-bbbb-3333cccc4444
- الإذن: (الاسم: Cluster.ReadWrite، المعرف: 8f89faa0-ffef-4007-974d-4989b39ad77d)
بعد الحصول على رمز OAuth المميز، استخدمه في رأس التفويض لطلب HTTP لبوابة المجموعة (على سبيل المثال: https://<clustername>-int.azurehdinsight.net). قد يبدو أمر curl عينة لـ Apache Livy API مثل هذا المثال:
curl -k -v -H "Authorization: Bearer Access_TOKEN" -H "Content-Type: application/json" -X POST -d '{ "file":"wasbs://mycontainer@mystorageaccount.blob.core.windows.net/data/SparkSimpleTest.jar", "className":"com.microsoft.spark.test.SimpleFile" }' "https://<clustername>-int.azurehdinsight.net/livy/batches" -H "X-Requested-By:<username@domain.com>"
لاستخدام Beeline و Livy، يمكنك أيضا اتباع نماذج التعليمات البرمجية المتوفرة هنا لإعداد العميل الخاص بك لاستخدام OAuth والاتصال بالمجموعة.
لكل نظام مجموعة، يتم تسجيل تطبيق جهة خارجية في معرف Microsoft Entra مع عنوان uri لنظام المجموعة كمعرفUri (مثل https://clustername.azurehdinsight.net
).
في Microsoft Entra ID، تكون الموافقة مطلوبة لجميع تطبيقات الجهات الخارجية قبل أن تتمكن من مصادقة المستخدمين أو الوصول إلى البيانات.
تسمح لك واجهة برمجة تطبيقات Microsoft Graph بأتمتة الموافقة، راجع وثائق واجهة برمجة التطبيقات تسلسل أتمتة الموافقة هو:
- قم بتسجيل تطبيق ومنح Application.ReadWrite.All أذونات التطبيق للوصول إلى Microsoft Graph
- بعد إنشاء الكتلة، يمكنك الاستعلام عن تطبيق الكتلة بناءً على معرف uri
- تسجيل الموافقة على التطبيق
عند حذف نظام المجموعة، حذف HDInsight التطبيق، وليس هناك حاجة لتنظيف أي موافقة.