قم بتكوين الهويات المدارة لموارد Azure على Azure VM باستخدام Azure CLI

الهويات المدارة لموارد Azure هي ميزة من ميزات معرف Microsoft Entra. تخضع كل من خدمات Azure التي تدعم الهويات المدارة لموارد Azure إلى المخطط الزمني الخاص بها. تأكد من مراجعة توافر الهويات المدارة للمورد والمشكلات المعروفة قبل البدء.

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

في هذه المقالة، باستخدام Azure CLI، ستتعلم كيفية تنفيذ الهويات المدارة التالية لعمليات موارد Azure على Azure VM:

  • تمكين وتعطيل الهوية المدارة المعينة من قبل النظام على Azure VM
  • إضافة وإزالة هوية مُدارة يعينها المستخدم على Azure VM

إذا لم يكن لديك حساب Azure بالفعل، فقم بالتسجيل للحصول على حساب مجاني قبل المتابعة.

المتطلبات الأساسية

الهوية المُدارة التي يُعيّنها النظام

في هذا القسم، ستتعرف على كيفية تمكين وتعطيل الهوية المُدارة المعينة من قبل النظام على Azure VM باستخدام Azure CLI.

تمكين الهوية المُدارة المعينة من قبل النظام أثناء إنشاء Azure VM

لإنشاء Azure VM مع تمكين الهوية المُدارة المعينة من قِبَل النظام، يحتاج حسابك إلى تعيين الدور Virtual Machine Contributor. لا يلزم تعيينات دور دليل Microsoft Entra أخرى.

  1. قم بإنشاء مجموعة الموارد للاحتواء ونشر VM والموارد المرتبطة بها، وذلك باستخدام az group create. يمكنك تخطي هذه الخطوة إذا كانت لديك بالفعل مجموعة موارد ترغب في استخدامها بدلاً من ذلك:

    az group create --name myResourceGroup --location westus
    
  2. قم بإنشاء جهاز ظاهري باستخدام az vm create. يقوم المثال التالي بإنشاء VM باسم myVM بهوية مُدارة من قبل النظام، كما هو مطلوب بواسطة المعلمة --assign-identityمع المحدد --roleو --scope. تحدد المعلمات --admin-username و--admin-password اسم المستخدم الإداري وكلمة المرور لحساب تسجيل الدخول بالجهاز الظاهري. قم بتحديث هذه القيم بما يتناسب مع بيئتك:

    az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
    

تمكين الهوية المُدارة المعينة من قبل النظام على Azure VM موجود

لتمكين الهوية المُدارة المعينة من قبل النظام على جهاز ظاهري، يحتاج حسابك إلى تعيين دور Virtual Machine Contributor. لا يلزم تعيينات دور دليل Microsoft Entra أخرى.

  1. إذا كنت تستخدم Azure CLI في وحدة تحكم محلية، فقم أولاً بتسجيل الدخول إلى Azure باستخدام az login. استخدم حساباً مرتبطاً باشتراك Azure الذي يحتوي على الجهاز الظاهري.

    az login
    
  2. استخدم az vm identity assign مع الأمر identity assign لتمكين الهوية المعينة من قبل النظام لجهاز ظاهري موجود:

    az vm identity assign -g myResourceGroup -n myVm
    

تعطيل الهوية المعينة من قبل النظام من Azure VM

إلى تعطيل هوية المعينة نظام إدارتها على VM، حسابك يحتاج الجهاز الظاهري مساهم تعيين الدور. لا يلزم تعيينات دور دليل Microsoft Entra أخرى.

إذا كان لديك جهاز ظاهري لم يعد بحاجة إلى الهوية المعينة من قبل النظام، ولكنه لا يزال بحاجة إلى هويات مخصصة للمستخدم، فاستخدم الأمر التالي:

az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned' 

إذا كان لديك جهاز ظاهري لم يعد بحاجة إلى هوية مخصصة للنظام ولم يعد له هويات معينة من قبل المستخدم، فاستخدم الأمر التالي:

إشعار

القيمة none حساسة لحالة الأحرف. يجب أن تكون صغيرة.

az vm update -n myVM -g myResourceGroup --set identity.type="none"

الهوية المُدارة التي يعيّنها المُستخدم

في هذا القسم، ستتعلم كيفية إضافة وإزالة هوية مُدارة يعينها المستخدم من Azure VM باستخدام Azure CLI. إذا قمت بإنشاء هوية مُدارة مخصصة للمستخدم في RG مختلف عن جهاز VM الخاص بك. سيتعين عليك استخدام عنوان URL الخاص بهويتك المدارة لتعيينها لجهاز VM الخاص بك. على سبيل المثال:

--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"

قم بتعيين هوية مُدارة يعينها المستخدم أثناء إنشاء Azure VM

لتعيين هوية مخصصة للمستخدم إلى جهاز ظاهري أثناء إنشائه، يحتاج حسابك إلى تعيينات الأدوار Virtual Machine Contributor و Managed Identity Operator . لا يلزم تعيينات دور دليل Microsoft Entra أخرى.

  1. يمكنك تخطي هذه الخطوة إذا كان لديك بالفعل مجموعة موارد ترغب في استخدامها. قم بإنشاء مجموعة موارد لاحتواء ونشر الهوية المُدارة التي حددها المستخدم، باستخدام az group create. تأكد من استبدال قيم معلمات <RESOURCE GROUP> و<LOCATION> بقيمك الخاصة. :

    az group create --name <RESOURCE GROUP> --location <LOCATION>
    
  2. قم بإنشاء هوية يديرها المستخدم باستخدام az identity create. تحدد المعلمة -g مجموعة الموارد حيث يتم إنشاء الهوية المُدارة التي يعينها المستخدم، وتحدد المعلمة -n اسمها.

    هام

    عند إنشاء الهويات المُدارة التي يحددها المستخدم، يتم دعم الأحرف الأبجدية الإنجليزية الرقمية (0-9، وa-z، وA-Z) والواصلة (-) فقط. لكي يعمل التعيين إلى جهاز ظاهري أو مقياس جهاز ظاهري للعمل بشكل صحيح، يقتصر الاسم على 24 حرفًا. لمزيد من المعلومات، راجع "الأسئلة المتداولة والمشكلات المعروفة".

    az identity create -g myResourceGroup -n myUserAssignedIdentity
    

    تحتوي الاستجابة على تفاصيل عن الهوية المُدارة التي تم إنشاؤها بواسطة المستخدم، على غرار ما يلي. يتم استخدام قيمة معرف المورد المعينة للهوية المُدارة التي عيّنها المستخدم في الخطوة التالية.

    {
        "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
        "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
        "location": "westcentralus",
        "name": "<USER ASSIGNED IDENTITY NAME>",
        "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
        "resourceGroup": "<RESOURCE GROUP>",
        "tags": {},
        "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
        "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. قم بإنشاء جهاز ظاهري باستخدام az vm create. يُنشئ المثال التالي جهاز ظاهري مقترناً بالهوية الجديدة المعينة من قِبل المستخدم، كما هو محدد بواسطة المعلمة --assign-identityمع المحدد --roleو --scope. تأكد من استبدال قيم المعلمات <RESOURCE GROUP> و<VM NAME> و<USER NAME> و<PASSWORD> و<USER ASSIGNED IDENTITY NAME> و<ROLE> و<SUBSCRIPTION> بقيمك الخاصة.

    az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image>  --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION> 
    

قم بتعيين هوية مُدارة يعينها المستخدم إلى Azure VM موجود

لتعيين هوية مخصصة للمستخدم إلى جهاز افتراضي، يحتاج حسابك إلى تعيينات الأدوار Virtual Machine Contributor وManaged Identity Operator. لا يلزم تعيينات دور دليل Microsoft Entra أخرى.

  1. قم بإنشاء هوية يعينها المستخدم باستخدام az identity create. تحدد المعلمة -gمجموعة الموارد حيث يتم إنشاء الهوية المعينة من قبل المستخدم، وتحدد المعلمة-n اسمها. تأكد من استبدال قيم المعلمات <RESOURCE GROUP> و<USER ASSIGNED IDENTITY NAME> بقيمك الخاصة:

    هام

    لا يتم حالياً دعم إنشاء هويات مُدارة يحددها المستخدم بأحرف خاصة (مثل الشرطة السفلية) في الاسم. الرجاء استخدام الأحرف الأبجدية الرقمية. تحقق مرة أخرى من أجل التحديثات. لمزيد من المعلومات انظر الأسئلة الشائعة والمشكلات المعروفة

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

    تحتوي الاستجابة على تفاصيل عن الهوية المُدارة التي تم إنشاؤها بواسطة المستخدم، على غرار ما يلي.

    {
      "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
      "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
      "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
      "location": "westcentralus",
      "name": "<USER ASSIGNED IDENTITY NAME>",
      "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
      "resourceGroup": "<RESOURCE GROUP>",
      "tags": {},
      "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. قم بتعيين الهوية المعينة من قبل المستخدم لجهاز VM الخاص بك باستخدام az vm identity assign. تأكد من استبدال قيم معلمات <RESOURCE GROUP> و<VM NAME> بقيمك الخاصة. <USER ASSIGNED IDENTITY NAME> هي خاصية مورد الهوية المُدار التي عيّنها المستخدم name، كما تم إنشاؤها في الخطوة السابقة. إذا قمت بإنشاء هوية مُدارة مخصصة للمستخدم في RG مختلف عن جهاز VM الخاص بك. سيتعين عليك استخدام عنوان URL الخاص بهويتك المدارة.

    az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
    

قم بإزالة الهوية المُدارة المعينة من قبل المستخدم من Azure VM

لإزالة الهوية تعيين المستخدم إلى VM، حسابك يحتاج الجهاز الظاهري مساهم تعيين الدور.

إذا كانت هذه هي الهوية المُدارة الوحيدة التي عيّنها المستخدم والمخصصة للجهاز الظاهري، فستتم إزالة UserAssigned من قيمة نوع الهوية. تأكد من استبدال قيم معلمات <RESOURCE GROUP> و<VM NAME> بقيمك الخاصة. ستكون <USER ASSIGNED IDENTITY> خاصية name للهوية المعينة من قبل المستخدم، والتي يمكن العثور عليها في قسم الهوية بالجهاز الظاهري باستخدام az vm identity show:

az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>

إذا لم يكن جهاز VM الخاص بك يحتوي على هوية مُدارة معينة من قبل النظام وتريد إزالة جميع الهويات المعينة من قبل المستخدم منه، فاستخدم الأمر التالي:

إشعار

القيمة none حساسة لحالة الأحرف. يجب أن تكون صغيرة.

az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null

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

az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null 

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