استخدام معرف Microsoft Entra للمصادقة على Azure

تتيح خدمة معرف Microsoft Entra عددا من المهام الإدارية، مثل إدارة المستخدم وإدارة المجال وتكوين تسجيل الدخول الأحادي. توضح هذه المقالة كيفية استخدام معرف Microsoft Entra داخل Azure Automation كموفر للمصادقة على Azure.

تثبيت وحدات Microsoft Entra النمطية

يمكنك تمكين معرف Microsoft Entra من خلال وحدات PowerShell النمطية التالية:

  • Azure Active Directory PowerShell للرسم البياني (وحدتا AzureRM وAz). أتمتة Azure تشحن مع الوحدة النمطية AzureRM وترقيتها الأخيرة، وحدة Az. تتضمن الوظيفة مصادقة غير تفاعلية إلى Azure باستخدام المصادقة المستندة إلى بيانات اعتماد مستخدم Microsoft Entra (OrgId). راجع معرف Microsoft Entra 2.0.2.76.

  • معرف Microsoft Entra ل Windows PowerShell (وحدة MSOnline). تمكن هذه الوحدة النمطية التفاعلات مع Microsoft Online، بما في ذلك Microsoft 365.

إشعار

لا يدعم PowerShell Core الوحدة النمطية MSOnline. لاستخدام cmdlets الوحدة النمطية يجب تشغيلها من Windows PowerShell. يتم تشجيعك على استخدام أحدث Azure Active Directory PowerShell للوحدات النمطية Graph بدلا من الوحدة النمطية MSOnline.

إشعار

تم إهمال وحدات Azure AD وMSOnline PowerShell اعتبارا من 30 مارس 2024. لمعرفة المزيد، اقرأ تحديث الإهمال. بعد هذا التاريخ، يقتصر دعم هذه الوحدات النمطية على مساعدة الترحيل إلى Microsoft Graph PowerShell SDK وإصلاحات الأمان. ستستمر الوحدات المهملة في العمل حتى مارس 30 2025.

نوصي بالترحيل إلى Microsoft Graph PowerShell للتفاعل مع معرف Microsoft Entra (المعروف سابقا ب Azure AD). للحصول على أسئلة الترحيل الشائعة، راجع الأسئلة المتداولة حول الترحيل. ملاحظة: قد تواجه الإصدارات 1.0.x من MSOnline تعطيلا بعد 30 يونيو 2024.

Preinstallation

قبل تثبيت وحدات Microsoft Entra النمطية على جهاز الكمبيوتر الخاص بك:

  • إلغاء تثبيت أية إصدارات سابقة من الوحدة النمطية AzureRM/Az و الوحدة النمطية MSOnline.

  • قم بإلغاء تثبيت مساعد Sign-In خدمات Microsoft عبر الإنترنت لضمان التشغيل الصحيح للوحدات النمطية PowerShell الجديدة.

تثبيت الوحدات النمطية AzureRM و Az

إشعار

للعمل مع هذه الوحدات النمطية، يجب استخدام PowerShell الإصدار 5.1 أو أحدث مع إصدار 64 بت من Windows.

  1. تثبيت إطار عمل إدارة Windows (WMF) 5.1. راجع تثبيت وتكوين WMF 5.1.

  2. اتبع الإرشادات الموجودة في تثبيت Azure PowerShell على Windows مع PowerShellGet.

تثبيت الوحدة النمطية MSOnline

إشعار

لتثبيت الوحدة النمطية MSOnline يجب أن تكون عضوا في دور مسؤول. راجع معلومات حول أدوار المسؤول.

  1. تأكد من تمكين ميزة Microsoft .NET Framework 3.5.x على جهاز الكمبيوتر الخاص بك. من المحتمل أن يكون الكمبيوتر مثبتا عليه إصدار أحدث، ولكن يمكن تمكين أو تعطيل التوافق مع الإصدارات القديمة من .NET Framework.

  2. تثبيت إصدار 64 بت من مساعد تسجيل الدخول خدمات Microsoft عبر إنترنت.

  3. تشغيل Windows PowerShell كمسؤول لإنشاء موجه أوامر Windows PowerShell مرتفعة.

  4. نشر معرف Microsoft Entra من MSOnline 1.0.

  5. إذا تمت مطالبتك بتثبيت موفر NuGet اكتب Y واضغط ENTER.

  6. إذا تمت مطالبتك بتثبيت الوحدة النمطية من PSGallery، اكتب Y واضغط ENTER.

تثبيت دعم PSCredential

يستخدم أتمتة Azure الفئة PSCredential لتمثيل أصل بيانات اعتماد. البرامج النصية استرداد PSCredential الكائنات باستخدام Get-AutomationPSCredential cmdlet. لمزيد من المعلومات، راجع النسخ المتماثل الجغرافي في Azure Automation.

تعيين مسؤول اشتراك

يجب تعيين مسؤول للاشتراك Azure. هذا الشخص له دور المالك لنطاق الاشتراك. راجع التحكم في الوصول المستند إلى الدور في أتمتة Azure.

تغيير كلمة مرور مستخدم Microsoft Entra

لتغيير كلمة مرور مستخدم Microsoft Entra:

  1. قم بتسجيل الخروج من Azure.

  2. قم بتسجيل دخول المسؤول إلى Azure كمستخدم Microsoft Entra الذي تم إنشاؤه للتو، باستخدام اسم المستخدم الكامل (بما في ذلك المجال) وكلمة مرور مؤقتة.

  3. اطلب من المسؤول تغيير كلمة المرور عند مطالبتك بذلك.

تكوين أتمتة Azure لإدارة اشتراك Azure

لكي يتصل Azure Automation بمعرف Microsoft Entra، يجب استرداد بيانات الاعتماد المقترنة باتصال Azure بمعرف Microsoft Entra. ومن الأمثلة على بيانات الاعتماد هذه هو معرف المستأجر، معرف الاشتراك، وما إلى ذلك. لمزيد من الاطلاع على الاتصال بين Azure ومعرف Microsoft Entra، راجع الاتصال مؤسستك بمعرف Microsoft Entra.

إنشاء أصل بيانات اعتماد

مع توفر بيانات اعتماد Azure ل Microsoft Entra، حان الوقت لإنشاء أصل بيانات اعتماد Azure Automation لتخزين بيانات اعتماد Microsoft Entra بشكل آمن بحيث يمكن لدفاتر التشغيل والبرامج النصية لتكوين حالة الرغبة (DSC) الوصول إليها. يمكنك القيام بذلك باستخدام إما مدخل Azure أو Cmdlets PowerShell.

إنشاء أصل بيانات الاعتماد في مدخل Azure

يمكنك استخدام مدخل Azure لإنشاء أصل بيانات الاعتماد. من حساب Automation، في الجزء الأيسر حدد Credentials ضمن Shared Resources. لمزيد من المعلومات، راجع النسخ المتماثل الجغرافي في Azure Automation.

إنشاء أصل بيانات الاعتماد باستخدام Windows PowerShell

لإعداد أصل بيانات اعتماد جديد في Windows PowerShell، يقوم البرنامج النصي بإنشاء PSCredential كائن باستخدام اسم المستخدم المعين وكلمة المرور. البرنامج النصي ثم يستخدم هذا الكائن لإنشاء الأصل من خلال استدعاء إلى cmdlet New-AzureAutomationCredential. بدلا من ذلك، يمكن استدعاء البرنامج النصي cmdlet الحصول على بيانات الاعتماد لمطالبة المستخدم بكتابة في اسم وكلمة مرور. لمزيد من المعلومات، راجع النسخ المتماثل الجغرافي في Azure Automation.

إدارة موارد Azure من دفتر تشغيل أتمتة Azure

يمكنك إدارة موارد Azure من دفاتر تشغيل أتمتة Azure باستخدام أصل بيانات الاعتماد. فيما يلي مثال PowerShell runbook الذي يجمع أصل بيانات الاعتماد لاستخدامه لإيقاف تشغيل الأجهزة الظاهرية في اشتراك Azure. يستخدم دفتر التشغيل هذا أولًا Get-AutomationPSCredential لاسترداد بيانات الاعتماد لاستخدامها للمصادقة على Azure. ثم يستدعي cmdlet الاتصال-AzAccount للاتصال بـ Azure باستخدام بيانات الاعتماد.

Workflow Workflow
{ 
    Param 
    (    
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
        [String] 
        $AzureSubscriptionId, 
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
        [String] 
        $AzureVMList="All", 
        [Parameter(Mandatory=$true)][ValidateSet("Start","Stop")] 
        [String] 
        $Action 
    ) 
     
    # Ensures you do not inherit an AzContext in your runbook
    Disable-AzContextAutosave -Scope Process

    # Connect to Azure with system-assigned managed identity
    $AzureContext = (Connect-AzAccount -Identity).context

    # set and store context
    $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext 

    # get credential
    $credential = Get-AutomationPSCredential -Name "AzureCredential"

    # Connect to Azure with credential
    $AzureContext = (Connect-AzAccount -Credential $credential -TenantId $AzureContext.Subscription.TenantId).context 

    # set and store context
    $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
        -TenantId $AzureContext.Subscription.TenantId `
        -DefaultProfile $AzureContext
 
    if($AzureVMList -ne "All") 
    { 
        $AzureVMs = $AzureVMList.Split(",") 
        [System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs 
    } 
    else 
    { 
        $AzureVMs = (Get-AzVM -DefaultProfile $AzureContext).Name 
        [System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs 
    } 
 
    foreach($AzureVM in $AzureVMsToHandle) 
    { 
        if(!(Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM})) 
        { 
            throw " AzureVM : [$AzureVM] - Does not exist! - Check your inputs " 
        } 
    } 
 
    if($Action -eq "Stop") 
    { 
        Write-Output "Stopping VMs"; 
        foreach -parallel ($AzureVM in $AzureVMsToHandle) 
        { 
            Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Stop-AzVM -DefaultProfile $AzureContext -Force 
        } 
    } 
    else 
    { 
        Write-Output "Starting VMs"; 
        foreach -parallel ($AzureVM in $AzureVMsToHandle) 
        { 
            Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Start-AzVM -DefaultProfile $AzureContext
        } 
    } 
}

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