استكشاف مشكلات الهوية المُدارة في التنفيذ التلقائي في Azure وإيجاد حلول لها

تتناول هذه المقالة الحلول للمشكلات التي قد تواجهها عند استخدام هوية مُدارة مع حساب التنفيذ التلقائي الخاص بك. للحصول على معلومات عامة حول استخدام الهوية المُدارة باستخدام حسابات التنفيذ التلقائي، راجع نظرة عامة حول مصادقة حساب التنفيذ التلقائي في Azure.

السيناريو: فشل دفتر التشغيل مع الهوية المدارة المعينة من قبل النظام مع ظهور رسالة خطأ 400

المشكلة

فشل دفتر التشغيل مع الهوية المدارة المعينة من قبل النظام مع ظهور الخطأ ك unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request)

السبب

لم تقم بتعيين أذونات بعد إنشاء الهوية المدارة المعينة من قبل النظام.

نوع الحل

تأكد من تعيين الأذونات المناسبة للهوية المدارة المعينة من قبل النظام. استخدام هوية مدارة معينة من قبل النظام لحساب Azure Automation

السيناريو: لا يمكن مصادقة الهوية المدارة في دفتر التشغيل مقابل Azure

المشكلة

عند استخدام هوية مدارة في دفتر التشغيل الخاص بك، تتلقى خطأ كما يلي: connect-azaccount : ManagedIdentityCredential authentication failed: Failed to get MSI token for account d94c0db6-5540-438c-9eb3-aa20e02e1226 and resource https://management.core.windows.net/. Status: 500 (Internal Server Error)

السبب

يمكن أن يحدث هذا إما عندما:

  • السبب 1: يمكنك استخدام حساب Automation System Managed Identity، الذي لم يتم إنشاؤه بعد ويحاول Code Connect-AzAccount -Identity المصادقة على Azure وتشغيل دفتر تشغيل في Azure أو على Hybrid Runbook Worker.

  • السبب 2: يحتوي حساب التنفيذ التلقائي على هوية مدارة من قبل المستخدم معينة وليس هوية مدارة للنظام و - Code Connect-AzAccount -Identity يحاول المصادقة على Azure وتشغيل دفتر تشغيل على جهاز Azure الظاهري Hybrid Runbook Worker باستخدام الهوية المدارة لنظام Azure VM.

نوع الحل

  • الحل 1: يجب إنشاء الهوية المدارة لنظام حساب التنفيذ التلقائي ومنحها حق الوصول إلى موارد Azure.

  • الحل 2: حسب متطلباتك، يمكنك:

    • إنشاء الهوية المدارة لنظام حساب التنفيذ التلقائي واستخدامها للمصادقة.
      او
    • حذف الهوية المدارة المعينة من قبل مستخدم حساب التنفيذ التلقائي.

السيناريو: تعذر العثور على الهوية المدارة المعينة للمستخدم لإضافتها إلى حساب التنفيذ التلقائي

المشكلة

تريد إضافة هوية مدارة معينة من قبل المستخدم إلى حساب التنفيذ التلقائي. ومع ذلك، لا يمكنك العثور على الحساب في شفرة التنفيذ التلقائي.

السبب

تحدث هذه المشكلة عندما لا يكون لديك الأذونات التالية للهوية المدارة المعينة من قبل المستخدم لعرضها في شفرة التنفيذ التلقائي.

  • Microsoft.ManagedIdentity/userAssignedIdentities/*/read
  • Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action

إشعار

يتم منح الأذونات المذكورة أعلاه بشكل افتراضي لمشغل الهوية المدارة والمساهم في الهوية المدارة.

نوع الحل

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

السيناريو: يفشل دفتر التشغيل مع "هذا. لا يمكن أن يكون Client.SubscriptionId خاليا." رسالة الخطأ

المشكلة

دفتر التشغيل الخاص بك باستخدام هوية مدارة الاتصال-AzAccount -Identity الذي يحاول إدارة كائنات Azure، يفشل في العمل بنجاح ويسجل الخطأ التالي -this.Client.SubscriptionId cannot be null.

get-azvm : 'this.Client.SubscriptionId' cannot be null. At line:5 char:1 + get-azvm + ~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzVM], ValidationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.GetAzureVMCommand

السبب

يمكن أن يحدث هذا عندما لا يتم منح الهوية المدارة (أو الحساب الآخر المستخدم في دفتر التشغيل) أي أذونات للوصول إلى الاشتراك.

نوع الحل

امنح الهوية المدارة (أو الحساب الآخر المستخدم في دفتر التشغيل) عضوية دور مناسبة في الاشتراك. معرفة المزيد

 لقطة شاشة تعرض تعيين تعيينات دور Azure.

لقطة شاشة توضح كيفية إضافة تعيين الدور.

السيناريو: فشل في الحصول على رمز MSI المميز للحساب

المشكلة

عند العمل مع هوية مُدارة مُعينة من قبل المستخدم في حساب التنفيذ التلقائي الخاص بك، تتلقى خطأ مشابه لما يلي: Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b.

السبب

استخدام هوية مُدارة مُعينة من قبل المستخدم قبل تمكين هوية مُدارة مُعينة من قبل النظام لحساب التنفيذ التلقائي الخاص بك.

نوع الحل

تمكين هوية مُدارة مُعينة من قبل النظام لحساب التنفيذ التلقائي الخاص بك. ثم استخدم الهوية المُدارة المُعينة من قبل المستخدم.

السيناريو: فشل محاولة استخدام الهوية المُدارة مع حساب التنفيذ التلقائي

المشكلة

عند محاولة العمل مع الهويات المُدارة في حساب التنفيذ التلقائي الخاص بك، ستواجه خطأ مثل هذا:

Connect-AzureRMAccount : An error occurred while sending the request. At line:2 char:1 + Connect-AzureRMAccount -Identity + 
CategoryInfo : CloseError: (:) [Connect-AzureRmAccount], HttpRequestException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.ConnectAzureRmAccountCommand

السبب

السبب الأكثر شيوعًا لهذا هو أنك لم تقم بتمكين الهوية قبل محاولة استخدامها. للتحقق من ذلك، قم بتشغيل دفتر تشغيل PowerShell التالي في حساب التنفيذ التلقائي المتأثر.

$resource= "?resource=https://management.azure.com/"
$url = $env:IDENTITY_ENDPOINT + $resource
$Headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$Headers.Add("X-IDENTITY-HEADER", $env:IDENTITY_HEADER)
$Headers.Add("Metadata", "True")

try
{
    $Response = Invoke-RestMethod -Uri $url -Method 'GET' -Headers $Headers
}
catch
{
    $StatusCode = $_.Exception.Response.StatusCode.value__
    $stream = $_.Exception.Response.GetResponseStream()
    $reader = New-Object System.IO.StreamReader($stream)
    $responseBody = $reader.ReadToEnd()
    
    Write-Output "Request Failed with Status: $StatusCode, Message: $responseBody"
}

إذا كانت المشكلة هي أنك لم تقم بتمكين الهوية قبل محاولة استخدامها، فمن المفترض أن تجد نتيجة مشابهة لهذا:

Request Failed with Status: 400, Message: {"Message":"No managed identity was found for Automation account xxxxxxxxxxxx"}

نوع الحل

يجب تمكين هوية لحساب التنفيذ التلقائي الخاص بك قبل أن تتمكن من استخدام خدمة الهوية المُدارة. راجع تمكين هوية مُدارة مُعينة من قبل النظام لحساب التنفيذ التلقائي الخاص بك

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

إذا لم تحل هذه المقالة المشكلة، فجرّب إحدى القنوات التالية للحصول على دعم إضافي:

  • احصل على إجابات من الخبراء في Azure من خلال منتديات Azure.
  • تواصل مع @AzureSupport. هذا هو الحساب الرسمي لـ Microsoft Azure لتعيين مجتمع Azure بالموارد المناسبة: الإجابات والدعم والخبراء.
  • احفظ ملفًا يتضمن حادث دعم Azure. انتقل إلى «موقع دعم Azure»، وحدد «Get Support».