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

يدعم Azure Batch المصادقة باستخدام معرف Microsoft Entra، الدليل متعدد المستأجرين من Microsoft وخدمة إدارة الهوية. يستخدم Azure معرف Microsoft Entra لمصادقة عملائه ومسؤولي الخدمة ومستخدمي المؤسسة.

الطريقة الموصى بها للمصادقة Azure Batch التطبيقات هي استخدام مكتبة عملاء Azure Identity، التي توفر فئات مصادقة تعتمد على الرموز (مثل DefaultAzureCredential، ManagedIdentityCredential، ClientSecretCredential، و InteractiveBrowserCredential) التي تعمل باستمرار سواء كان تطبيقك يعمل محليا، على Azure، أو في الموقع. للحصول على نظرة عامة على استراتيجيات المصادقة الموصى بها، انظر:

تصف هذه المقالة سيناريوهين شائعين للمصادقة إلى Azure Batch باستخدام Microsoft Entra ID:

  • المصادقة المتكاملة (التفاعلية) تصادق المستخدم الذي يتفاعل مع تطبيق. استخدم بيانات مثل InteractiveBrowserCredential أو DefaultAzureCredential (والتي يمكن أن تتسلسل عبر تسجيلات دخول أدوات المطورين مثل Azure CLI و Visual Studio و تعليمة Visual Studio برمجية).

  • المصادقة الرئيسية أو المدارة للخدمة تصادق على تطبيق غير مراقب. استخدم بيانات مثل ManagedIdentityCredential للتطبيقات المستضافة على Azure، أو ClientSecretCredential / ClientCertificateCredential للتطبيقات التي تتحقق من سر أو شهادة التطبيق المسجل.

لمزيد من المعلومات حول معرف Microsoft Entra، راجع وثائق Microsoft Entra.

جمع نقاط النهاية للمصادقة

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

نقطة نهاية Microsoft Entra

نقطة نهاية مرجع Microsoft Entra الأساسية هي https://login.microsoftonline.com/. للمصادقة باستخدام معرف Microsoft Entra، استخدم نقطة النهاية هذه مع معرف المستأجر الذي يعرف مستأجر Microsoft Entra لاستخدامه للمصادقة:

https://login.microsoftonline.com/<tenant-id>

يمكنك الحصول على معرف المستأجر الخاص بك من صفحة معرف Microsoft Entra الرئيسية في مدخل Microsoft Azure. يمكنك أيضا تحديد Properties في جزء التنقل الأيمن ورؤية Tenant ID في صفحة Properties.

لقطة شاشة لمعرف المستأجر في مدخل Microsoft Azure.

هام

  • تكون نقطة نهاية Microsoft Entra الخاصة بالمستأجر مطلوبة عند المصادقة باستخدام كيان خدمة.

  • عند المصادقة باستخدام المصادقة المتكاملة، يوصى بنقطة النهاية الخاصة بالمستأجر، ولكنها اختيارية. يمكنك أيضا استخدام نقطة النهاية الشائعة ل Microsoft Entra لتوفير واجهة تجميع بيانات اعتماد عامة عند عدم توفير مستأجر معين. نقطة النهاية الشائعة هي https://login.microsoftonline.com/common.

لمزيد من المعلومات حول نقاط نهاية Microsoft Entra، راجع المصادقة مقابل التخويل.

نقطة نهاية مورد خدمة Batch

استخدم نقطة https://batch.core.windows.net/ نهاية مورد Batch للحصول على رمز مميز لمصادقة الطلبات إلى خدمة Batch.

سجل طلبك مع المستأجر

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

تلميح

إذا كان كودك يستخدم DefaultAzureCredential ويسجل الدخول عبر أداة مطور (Azure CLI، Azure PowerShell، Visual Studio، أو تعليمة Visual Studio برمجية) أو هوية مدارة، فلست بحاجة لتسجيل تطبيق منفصل — تعتمد بيانات الاعتماد على الهوية التي تم تكوينها مسبقا في تلك البيئة.

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

لتسجيل تطبيق Batch الخاص بك، اتبع الخطوات الواردة في تسجيل تطبيق.

بعد تسجيل التطبيق الخاص بك، يمكنك مشاهدة معرف التطبيق (العميل) في صفحة نظرة عامة على التطبيق.

لقطة شاشة لمعرف التطبيق الموضح في مدخل Azure.

تكوين المصادقة المتكاملة

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

بعد تسجيل التطبيق الخاص بك، اتبع هذه الخطوات لمنح التطبيق حق الوصول إلى خدمة Batch:

  1. في مدخل Microsoft Azure، ابحث عن تسجيلات التطبيقات وحددها.
  2. في صفحة App registrations ، حدد التطبيق الخاص بك.
  3. في صفحة التطبيق الخاص بك، حدد أذونات واجهة برمجة التطبيقات من التنقل الأيمن.
  4. في النافذة الخاصة بأذونات واجهة برمجة التطبيقات اخترإضافة إذن.
  5. في صفحة Request API permissions ، حدد Azure Batch.
  6. في صفحة Azure Batch ، ضمن Select permissions، حدد خانة الاختيار بجوار user_impersonation، ثم حدد Add permissions.

تظهر صفحة أذونات واجهة برمجة التطبيقات الآن أن تطبيق Microsoft Entra الخاص بك لديه حق الوصول إلى كل من Microsoft Graph وAzure Batch. يتم منح الأذونات إلى Microsoft Graph تلقائيا عند تسجيل تطبيق باستخدام معرف Microsoft Entra.

تكوين كيان الخدمة

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

بعد تسجيل التطبيق الخاص بك، اتبع هذه الخطوات في مدخل Microsoft Azure لتكوين كيان الخدمة:

  1. طلب سر لتطبيقك.
  2. قم بتعيين عنصر تحكم في الوصول المستند إلى الدور (Azure RBAC) لتطبيقك.

طلب سر لتطبيقك

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

  1. في مدخل Microsoft Azure، ابحث عن تسجيلات التطبيقات وحددها.
  2. في صفحة App registrations ، حدد التطبيق الخاص بك.
  3. في صفحة التطبيق الخاص بك، حدد Certificates & secrets من التنقل الأيسر.
  4. في صفحة Certificates &s secrets ، حدد New client secret.
  5. في صفحة إضافة سر عميل، أدخل وصفا وحدد فترة انتهاء صلاحية للبيانات السرية.
  6. حدد إضافة لإنشاء البيانات السرية وعرضها في صفحة الشهادات والأسرار .
  7. انسخ القيمة السرية إلى مكان آمن، لأنك لن تتمكن من الوصول إليها مرة أخرى بعد مغادرة هذه الصفحة. إذا فقدت الوصول إلى المفتاح الخاص بك، يمكنك إنشاء مفتاح جديد.

قم بتعيين Azure RBAC لتطبيقك

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

  1. في مدخل Microsoft Azure، انتقل إلى حساب Batch الذي يستخدمه التطبيق الخاص بك.
  2. حدد Access control (IAM) من جزء التنقل الأيمن.
  3. في صفحة Access control (IAM)، حدد Add role assignment.
  4. في صفحة إضافة تعيين دور، حدد علامة التبويب الدور ، ثم حدد أحد أدوار التحكم في الوصول استنادا إلى الدور المضمنة في Azure Batch دور تطبيقك.
  5. حدد علامة التبويب Members، وحدد Select members ضمن Members.
  6. في شاشة تحديد الأعضاء ، ابحث عن التطبيق وحدده، ثم حدد تحديد.
  7. حدد Review + assign في صفحة Add role assignment .

يجب أن يظهر تطبيقك الآن في علامة التبويب Role assignments في صفحة التحكم في الوصول (IAM) لحساب Batch.

أمثلة على التعليمات البرمجية

تظهر أمثلة الكود في هذا القسم كيفية المصادقة إلى Azure Batch باستخدام Microsoft Entra ID باستخدام بيانات الاعتماد من مكتبة Azure Identity. تستخدم الأمثلة .NET و Python، لكن نفس الأنماط تنطبق على لغات Azure SDK الأخرى.

إشعار

تنتهي صلاحية رمز مصادقة Microsoft Entra المميز بعد ساعة واحدة. عندما تستخدم كائن BatchClient طويل الأمد، وهو Azure IdentityTokenCredential توفر الرموز المؤقتة بشفافية وتقوم بتحديث الرمز، بحيث يتم الحصول على رمز جديد من Microsoft Entra ID فقط عند الضرورة. لمزيد من المعلومات حول الرموز المميزة في معرف Microsoft Entra، راجع رموز الأمان المميزة.

تلميح

في معظم السيناريوهات، استخدم DefaultAzureCredential. يحاول تلقائيا عدة طرق مصادقة (الهوية المدارة، متغيرات البيئة، تسجيل دخول أدوات المطورين، وهكذا)، بحيث يعمل نفس الكود سواء كان تطبيقك يعمل محليا أثناء التطوير، أو على Azure، أو في الموقع. راجع Authenticate .NET apps و Authenticate Python apps للحصول على إرشادات حول اختيار الشهادة الصحيحة.

مثال على الكود: Authenticate to Azure Batch from .NET

يستخدم هذا المثال Azure. Compute.Batch باستخدام Azure. مكتبة الهوية.

  1. قم بتثبيت حزم NuGet Azure.Compute.Batch و Azure.Identity.

  2. أعلن عن العبارات التالية using في التعليمات البرمجية الخاصة بك:

    using Azure.Compute.Batch;
    using Azure.Core;
    using Azure.Identity;
    
  3. راجع نقطة نهاية حساب Batch الخاص بك:

    private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";
    
  4. أنشئ شهادة اعتماد ومررها إلى BatchClient الصانع. استخدم العميل للعمليات اللاحقة ضد خدمة الدفعة.

    موصى به: DefaultAzureCredential — يعمل محليا مع تسجيلات دخول أدوات المطورين (Azure CLI، Visual Studio، تعليمة Visual Studio برمجية) ويستخدم الهوية المدارة تلقائيا عند تشغيل التطبيق على Azure:

    TokenCredential credential = new DefaultAzureCredential();
    
    BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);
    
    await foreach (BatchJob job in client.GetJobsAsync())
    {
        Console.WriteLine(job.Id);
    }
    

    تسجيل الدخول التفاعلي (المتكامل) — يطلب من المستخدم تسجيل الدخول عبر متصفح النظام. استخدم هذا عندما يحتاج تطبيقك إلى مصادقة مستخدم معين بشكل تفاعلي:

    TokenCredential credential = new InteractiveBrowserCredential(
        new InteractiveBrowserCredentialOptions
        {
            TenantId = "<tenant-id>",
            ClientId = "<application-id>",      // optional; required only if you registered your own app
            RedirectUri = new Uri("http://localhost")
        });
    
    BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);
    

    سر الخدمة (سر العميل) — الاستخدام للتطبيقات غير المراقبة التي تتحقق من خلال سر تسجيل التطبيق:

    TokenCredential credential = new ClientSecretCredential(
        tenantId: "<tenant-id>",
        clientId: "<application-id>",
        clientSecret: "<client-secret>");
    
    BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);
    

    Managed identity — استخدم عندما يعمل تطبيقك على مورد Azure (مثل جهاز افتراضي، خدمة التطبيقات، أو تطبيق الحاوية) الذي يحتوي على هوية مدارة معينة من النظام أو معين من قبل المستخدم:

    // System-assigned managed identity
    TokenCredential credential = new ManagedIdentityCredential();
    
    // Or, user-assigned managed identity
    // TokenCredential credential = new ManagedIdentityCredential(clientId: "<user-assigned-client-id>");
    
    BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);
    

مثال على الكود: Authenticate to Azure Batch from Python

يستخدم هذا المثال عميل azure-batch مع بيانات اعتماد من مكتبة azure-identity . فئة القديمة azure.common.credentials.ServicePrincipalCredentials مهجورة؛ استخدم azure-identity بيانات الاعتماد بدلا من ذلك.

  1. قم بتثبيت الحزم المطلوبة:

    pip install azure-batch azure-identity
    
  2. الإشارة إلى نقطة نهاية حساب الدفعة ونطاق موارد الدفعة:

    BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com"
    BATCH_SCOPE = "https://batch.core.windows.net/.default"
    
  3. أنشئ بيانات اعتماد ومررها إلى .BatchServiceClient

    موصى به: DefaultAzureCredential — يعمل محليا مع أدوات تسجيل الدخول للمطورين ويستخدم هوية الإدارة تلقائيا عند التشغيل على Azure:

    from azure.batch import BatchServiceClient
    from azure.identity import DefaultAzureCredential
    
    credential = DefaultAzureCredential()
    
    batch_client = BatchServiceClient(
        credentials=credential,
        batch_url=BATCH_ACCOUNT_URL,
    )
    

    تسجيل الدخول التفاعلي (المتكامل) — يطلب من المستخدم تسجيل الدخول عبر متصفح النظام:

    from azure.batch import BatchServiceClient
    from azure.identity import InteractiveBrowserCredential
    
    credential = InteractiveBrowserCredential(
        tenant_id="<tenant-id>",
        client_id="<application-id>",  # optional; required only if you registered your own app
    )
    
    batch_client = BatchServiceClient(
        credentials=credential,
        batch_url=BATCH_ACCOUNT_URL,
    )
    

    سر الخدمة (سر العميل) — الاستخدام للتطبيقات غير المراقبة:

    from azure.batch import BatchServiceClient
    from azure.identity import ClientSecretCredential
    
    credential = ClientSecretCredential(
        tenant_id="<tenant-id>",
        client_id="<application-id>",
        client_secret="<client-secret>",
    )
    
    batch_client = BatchServiceClient(
        credentials=credential,
        batch_url=BATCH_ACCOUNT_URL,
    )
    

    Managed identity — استخدم عندما يعمل تطبيقك على مورد Azure بهوية مدارة:

    from azure.batch import BatchServiceClient
    from azure.identity import ManagedIdentityCredential
    
    # System-assigned managed identity
    credential = ManagedIdentityCredential()
    
    # Or, user-assigned managed identity
    # credential = ManagedIdentityCredential(client_id="<user-assigned-client-id>")
    
    batch_client = BatchServiceClient(
        credentials=credential,
        batch_url=BATCH_ACCOUNT_URL,
    )
    

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