تكوين تسجيل الدخول الأحادي ل Azure Virtual Desktop باستخدام AD FS

سترشدك هذه المقالة خلال عملية تكوين تسجيل الدخول الأحادي (SSO) لخدمة الأمان المشترك لـ Active Directory (AD FS) لـAzure Virtual Desktop.

إشعار

لا يدعم Azure Virtual Desktop (الكلاسيكي) هذه الميزة.

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

قبل تكوين تسجيل الدخول الأحادي لـAD FS، يجب أن يكون لديك الإعداد التالي قيد التشغيل في بيئتك:

  • مضيفو الجلسة الذين يشغلون إصدارا مدعوما من Windows 10 أو Windows 11.

  • يجب نشر دور خدمات شهادات Active Directory (CA). يجب أن تكون جميع الخوادم التي تقوم بتشغيل الدور مرتبطة بالمجال، وأن تكون تحديثات Windows الأخيرة مثبتة، وأن تكون بمثابة المراجع المصدقة للمؤسسة.

  • يجب نشر دور خدمات الأمان المشترك لـ Active Directory (AD FS). يجب أن تكون جميع الخوادم التي تقوم بتشغيل هذا الدور مرتبطة بالمجال، وأن تكون آخر تحديثات Windows مثبتة، وأن تعمل بنظام Windows Server 2016 أو أحدث. راجع البرنامج التعليمي للاتحاد لبدء إعداد هذا الدور.

  • نوصي بإعداد دور وكيل تطبيق ويب لتأمين اتصال بيئتك بخوادم AD FS. يجب أن تحتوي جميع الخوادم التي تقوم بتشغيل هذا الدور على آخر تحديثات Windows مثبتة، وأن تعمل بنظام Windows Server 2016 أو إصدار أحدث. راجع دليل وكيل تطبيق ويب هذا لبدء إعداد هذا الدور.

  • يجب نشر Microsoft Entra الاتصال لمزامنة المستخدمين مع معرف Microsoft Entra. يجب تكوين الاتصال Microsoft Entra في وضع الاتحاد.

  • إعداد بيئة PowerShell ل Azure Virtual Desktop على خادم AD FS.

إشعار

هذا الحل غير معتمد مع Microsoft Entra Domain Services. يجب استخدام وحدة تحكم مجال خدمات مجال Active Directory.

‏‫العملاء المعتمدون

يدعم عملاء Azure Virtual Desktop التالون هذه الميزة:

تكوين المرجع المصدق لإصدار الشهادات

يجب إنشاء قوالب الشهادات التالية بشكل صحيح بحيث يمكن لـAD FS استخدام SSO:

  • أولًا، ستحتاج إلى إنشاء قالب شهادة Exchange Enrollment Agent (الطلب غير المتصل). يستخدم AD FS قالب شهادة Exchange Enrollment Agent لطلب الشهادات نيابة عن المستخدم.
  • ستحتاج أيضًا إلى إنشاء قالب شهادة تسجيل الدخول إلى Smartcard، والذي سيستخدمه AD FS لإنشاء شهادة تسجيل الدخول.

بعد إنشاء قوالب الشهادات هذه، ستحتاج إلى تمكين القوالب على المرجع المصدق حتى يتمكن AD FS من طلبها.

إشعار

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

إنشاء قالب شهادة عامل التسجيل

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

لتحديد ما إذا كنت تستخدم بالفعل قالب شهادة عامل التسجيل، قم بتشغيل أمر PowerShell التالي على خادم AD FS ومعرفة ما إذا تم إرجاع قيمة. إذا كان فارغا، قم بإنشاء قالب شهادة عامل تسجيل جديد. وإلا، تذكر الاسم وقم بتحديث قالب شهادة عامل التسجيل الموجود.

Import-Module adfs
(Get-AdfsCertificateAuthority).EnrollmentAgentCertificateTemplateName

لإنشاء قالب شهادة عامل تسجيل جديد:

  1. في المرجع المصدق، قم بتشغيل mmc.exe من قائمة البدء لتشغيل وحدة تحكم إدارة Microsoft.

  2. حدد ملف...>إضافة/أداة إضافية عن بعد...>قوالب الشهادات>اضافه >>موافق لعرض قائمة قوالب الشهادات.

  3. قم بتوسيع قوالب الشهادة، وانقر بزر الماوس الأيمن فوق عامل تسجيل Exchange (طلب غير متصل) وحدد قالب مكرر.

  4. حدد علامة التبويب عام، ثم أدخل "عامل تسجيل ADFS" في حقل اسم عرض القالب. سيؤدي هذا تلقائيًا إلى تعيين اسم القالب إلى "ADFSEnrollmentAgent".

  5. حدد علامة التبويب أمان، ثم حدد إضافة....

  6. بعد ذلك، حدد أنواع العناصر...، ثم حسابات الخدمة، ثم موافق.

  7. أدخل اسم حساب الخدمة لـ AD FS وحدد موافق.

    • في إعداد AD FS معزول، سيتم تسمية حساب الخدمة "adfssvc$"
    • إذا قمت بإعداد AD FS باستخدام Microsoft Entra الاتصال، فسيسمى حساب الخدمة "aadcsvc$"
  8. بعد إضافة حساب الخدمة ومرئيا في علامة التبويب Security، حدده في جزء Group أو user names، وحدد Allow لكل من "Enroll" و"Autoenroll" في جزء أذونات حساب خدمة AD FS، ثم حدد OK للحفظ.

    A screenshot showing the security tab of the Enrollment Agent certificate template after it is properly configured.

لتحديث قالب شهادة عامل تسجيل موجود:

  1. في المرجع المصدق، قم بتشغيل mmc.exe من قائمة البدء لتشغيل وحدة تحكم إدارة Microsoft.
  2. حدد ملف...>إضافة/أداة إضافية عن بعد...>قوالب الشهادات>اضافه >>موافق لعرض قائمة قوالب الشهادات.
  3. قم بتوسيع قوالب الشهادة، وانقر نقرًا مزدوجًا فوق القالب الذي يتوافق مع القالب الذي تم تكوينه على خادم AD FS. في علامة التبويب عام، يجب أن يتطابق اسم القالب مع الاسم الذي وجدته أعلاه.
  4. حدد علامة التبويب أمان، ثم حدد إضافة....
  5. بعد ذلك، حدد أنواع العناصر...، ثم حسابات الخدمة، ثم موافق.
  6. أدخل اسم حساب الخدمة لـ AD FS وحدد موافق.
    • في إعداد AD FS معزول، سيتم تسمية حساب الخدمة "adfssvc$"
    • إذا قمت بإعداد AD FS باستخدام Microsoft Entra الاتصال، فسيسمى حساب الخدمة "aadcsvc$"
  7. بعد إضافة حساب الخدمة ومرئيا في علامة التبويب Security، حدده في جزء Group أو user names، وحدد Allow لكل من "Enroll" و"Autoenroll" في جزء أذونات حساب خدمة AD FS، ثم حدد OK للحفظ.

إنشاء قالب شهادة تسجيل الدخول إلى Smartcard

لإنشاء قالب شهادة تسجيل الدخول إلى Smartcard:

  1. في المرجع المصدق، قم بتشغيل mmc.exe من قائمة البدء لتشغيل وحدة تحكم إدارة Microsoft.

  2. حدد ملف...>إضافة/أداة إضافية عن بعد...>قوالب الشهادات>اضافه>موافق لعرض قائمة قوالب الشهادات.

  3. قم بتوسيع Certificate Templates، وانقر بزر الماوس الأيمن فوق Smartcard Logon وحدد Duplicate Template.

  4. حدد علامة التبويب عام، ثم أدخل "ADFS SSO" في حقل اسم عرض القالب. سيؤدي هذا تلقائيًا إلى تعيين اسم القالب إلى "ADFSSSO".

    إشعار

    نظرًا لأن هذه الشهادة مطلوبة عند الطلب، نوصي بتقصير فترة الصلاحية إلى 8 ساعات وفترة التجديد إلى ساعة واحدة.

  5. حدد علامة التبويب Subject name ثم حدد Supply في الطلب. عند ظهور رسالة التحذير، حدد موافق.

    A screenshot showing the subject name tab of the SSO certificate template and what it should look like when properly configured.

  6. حدد علامة التبويب متطلبات الإصدار.

  7. حدد هذا العدد من التواقيع المعتمدة وأدخل قيمة 1.

    A screenshot showing the issuance requirements tab of the SSO certificate template and what it should look like when properly configured.

  8. بالنسبة لنهج التطبيق، حدد Certificate Request Agent.

  9. حدد علامة التبويب أمان، ثم حدد إضافة....

  10. حدد أنواع العناصر...، وحسابات الخدمة، وOK.

  11. أدخل اسم حساب الخدمة لـAD FS تمامًا كما فعلت في قسم إنشاء قالب شهادة عامل التسجيل.

    • في إعداد AD FS معزول، سيتم تسمية حساب الخدمة "adfssvc$"
    • إذا قمت بإعداد AD FS باستخدام Microsoft Entra الاتصال، فسيسمى حساب الخدمة "aadcsvc$"
  12. بعد إضافة حساب الخدمة ومرئيا في علامة التبويب Security، حدده في جزء Group أو user names، وحدد Allow لكل من "Enroll" و"Autoenroll"، ثم حدد OK للحفظ.

A screenshot showing the security tab of the SSO certificate template after it is properly configured.

تمكين قوالب الشهادات الجديدة:

لتمكين قوالب الشهادات الجديدة:

  1. في المرجع المصدق، قم بتشغيل mmc.exe من قائمة البدء لتشغيل وحدة تحكم إدارة Microsoft.

  2. حدد ملف...>إضافة/إزالة الأداة الإضافية...>المرجع المصدق>إضافة>>إنهاء>وموافق لعرض المرجع المصدق.

  3. قم بتوسيع المرجع المصدق في الجزء الأيسر وافتح قوالب الشهادات.

  4. انقر بزر الماوس الأيمن في الجزء الأوسط الذي يعرض قائمة قوالب الشهادات، وحدد جديد، ثم حدد قالب الشهادة للمشكلة.

  5. حدد كل من ADFS Enrollment AgentوADDFS SSO، ثم حدد OK. يجب أن تشاهد كلا القالبين في الجزء الأوسط.

    A screenshot showing list of certificate templates that can be issued, including the new ADFS Enrollment Agent and ADFS SSO.

    إشعار

    إذا كان لديك بالفعل قالب شهادة عامل تسجيل تم تكوينه، فأنت بحاجة فقط إلى إضافة قالب ADFS SSO.

تكوين خوادم AD FS

يجب تكوين خوادم خدمات الأمان المشترك لـ Active Directory (AD FS) لاستخدام قوالب الشهادات الجديدة وتعيين ثقة جهة الاعتماد لدعم تسجيل الدخول الأحادي.

تسمح ثقة جهة الاعتماد بين خادم AD FS وخدمة Azure Virtual Desktop بإعادة توجيه طلبات شهادة تسجيل الدخول الأحادي بشكل صحيح إلى بيئة المجال الخاصة بك.

عند تكوين تسجيل الدخول الأحادي لـ AD FS، يجب عليك اختيار المفتاح أو الشهادة المشتركة:

  • إذا كان لديك خادم AD FS واحد، يمكنك اختيار المفتاح أو الشهادة المشتركة.
  • إذا كان لديك عدة خوادم AD FS، فمن المطلوب اختيار شهادة.

يجب تخزين المفتاح أو الشهادة المشتركة المستخدمة لإنشاء الرمز المميز لتسجيل الدخول إلى Windows بشكل آمن في Azure Key Vault. يمكنك تخزين البيانات السرية في Key Vault موجودة أو نشر سر جديد. في كلتا الحالتين، يجب التأكد من تعيين نهج الوصول الصحيح حتى تتمكن خدمة Azure Virtual Desktop من الوصول إليها.

عند استخدام شهادة، يمكنك استخدام أي شهادة للأغراض العامة ولا يوجد أي شرط على اسم الموضوع أو الاسم البديل للموضوع (SAN). على الرغم من أنه غير مطلوب، يوصى بإنشاء شهادة صادرة عن مرجع مصدق صالح. يمكن إنشاء هذه الشهادة مباشرة في Azure Key Vault وتحتاج إلى مفتاح خاص قابل للتصدير. يمكن تصدير المفتاح العام واستخدامه لتكوين خادم AD FS باستخدام البرنامج النصي أدناه. لاحظ أن هذه الشهادة مختلفة عن شهادة AD FS SSL التي يجب أن يكون لها اسم موضوع مناسب ومرجع مصدق صالح.

سيقوم البرنامج النصي PowerShell ConfigureWVDSSO.ps1 المتوفر في معرض PowerShell بتكوين خادم AD FS الخاص بك لثقة جهة الاعتماد وتثبيت الشهادة إذا لزم الأمر.

يحتوي هذا البرنامج النصي على معلمة واحدة مطلوبة فقط، ADFSAuthority، وهو عنوان URL الذي يحل إلى AD FS الخاص بك ويستخدم "/adfs" كلاحقة له. على سبيل المثال، https://adfs.contoso.com/adfs

  1. على AD FS VMs، قم بتشغيل PowerShell cmdlet التالي لتكوين AD FS لاستخدام قوالب الشهادة من القسم السابق:

    Set-AdfsCertificateAuthority -EnrollmentAgentCertificateTemplate "ADFSEnrollmentAgent" -LogonCertificateTemplate "ADFSSSO" -EnrollmentAgent
    

    إشعار

    إذا كان لديك بالفعل EnrollmentAgentCertificateTemplate مكون، فتأكد من استخدام اسم القالب الموجود بدلًا من ADFSEnrollmentAgent.

  2. تشغيل البرنامج النصي ConfigureWVDSSO.ps1.

    إشعار

    تحتاج إلى قيم المتغير $config لإكمال الجزء التالي من الإرشادات، لذلك لا تغلق نافذة PowerShell التي استخدمتها لإكمال الإرشادات السابقة. يمكنك إما الاستمرار في استخدام نافذة PowerShell نفسها أو تركها مفتوحة في أثناء بدء تشغيل جلسة PowerShell جديدة.

    • إذا كنت تستخدم مفتاحًا مشتركًا في Key Vault، فقم بتشغيل PowerShell cmdlet التالي على خادم AD FS مع استبدال ADFSServiceUrl بعنوان URL الكامل للوصول إلى خدمة AD FS:

      Install-Script ConfigureWVDSSO
      $config = ConfigureWVDSSO.ps1 -ADFSAuthority "<ADFSServiceUrl>" [-WvdWebAppAppIDUri "<WVD Web App URI>"] [-RdWebURL "<RDWeb URL>"]
      

      إشعار

      تحتاج إلى خصائص WvdWebAppAppIDUri وRdWebURL لتكوين بيئة في سحابة ذات سيادة مثل Azure Government. في Azure Commercial Cloud، يتم تعيين هذه الخصائص تلقائيا إلى https://www.wvd.microsoft.com وhttps://rdweb.wvd.microsoft.com على التوالي.

    • إذا كنت تستخدم شهادة في Key Vault، فقم بتشغيل PowerShell cmdlet التالي على خادم AD FS مع استبدال ADFSServiceUrl بعنوان URL الكامل للوصول إلى خدمة AD FS:

      Install-Script ConfigureWVDSSO
      $config = ConfigureWVDSSO.ps1 -ADFSAuthority "<ADFSServiceUrl>" -UseCert -CertPath "<Path to the pfx file>" -CertPassword <Password to the pfx file> [-WvdWebAppAppIDUri "<WVD Web App URI>"] [-RdWebURL "<RDWeb URL>"]
      

      إشعار

      تحتاج إلى خصائص WvdWebAppAppIDUri وRdWebURL لتكوين بيئة في سحابة ذات سيادة مثل Azure Government. في Azure Commercial Cloud، يتم تعيين هذه الخصائص تلقائيا إلى https://www.wvd.microsoft.com وhttps://rdweb.wvd.microsoft.com على التوالي.

  3. قم بتعيين نهج الوصول على Key Vault Azure عن طريق تشغيل PowerShell cmdlet التالي:

    Set-AzKeyVaultAccessPolicy -VaultName "<Key Vault Name>" -ServicePrincipalName 9cdead84-a844-4324-93f2-b2e6bb768d07 -PermissionsToSecrets get -PermissionsToKeys sign
    
  4. قم بتخزين المفتاح أو الشهادة المشتركة في Azure Key Vault مع علامة تحتوي على قائمة مفصولة بغيبوبة من معرفات الاشتراك المسموح لها باستخدام السر.

    • إذا كنت تستخدم مفتاحًا مشتركًا في Key Vault، فقم بتشغيل PowerShell cmdlet التالي لتخزين المفتاح المشترك وتعيين العلامة:

      $hp = Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" 
      $secret = Set-AzKeyVaultSecret -VaultName "<Key Vault Name>" -Name "adfsssosecret" -SecretValue (ConvertTo-SecureString -String $config.SSOClientSecret  -AsPlainText -Force) -Tag @{ 'AllowedWVDSubscriptions' = $hp.Id.Split('/')[2]}
      
    • إذا كانت شهادتك موجودة بالفعل في Key Vault، فقم بتشغيل أمر PowerShell cmdlet التالي لتعيين العلامة:

      $hp = Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>"
      $secret = Update-AzKeyVaultCertificate -VaultName "<Key Vault Name>" -Name "<Certificate Name>" -Tag @{ 'AllowedWVDSubscriptions' = $hp.Id.Split('/')[2]} -PassThru
      
    • إذا كان لديك شهادة محلية، فقم بتشغيل PowerShell cmdlet التالي لاستيراد الشهادة في Key Vault وتعيين العلامة:

      $hp = Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" 
      $secret = Import-AzKeyVaultCertificate -VaultName "<Key Vault Name>" -Name "adfsssosecret" -Tag @{ 'AllowedWVDSubscriptions' = $hp.Id.Split('/')[2]} -FilePath "<Path to pfx>" -Password (ConvertTo-SecureString -String "<pfx password>"  -AsPlainText -Force)
      

إشعار

يمكنك اختياريًا تكوين عدد المرات التي تتم فيها مطالبة المستخدمين ببيانات الاعتماد عن طريق تغيير إعدادات تسجيل الدخول الأحادي لـAD FS. بشكل افتراضي، ستتم مطالبة المستخدمين كل 8 ساعات على الأجهزة غير المسجلة.

تكوين تجمع مضيف Azure Virtual Desktop

حان الوقت لتكوين معلمات AD FS SSO على تجمع مضيف Azure Virtual Desktop. للقيام بذلك، قم بإعداد بيئة PowerShell لـAzure Virtual Desktop إذا لم تكن قد قمت بذلك بالفعل وقم بالاتصال بحسابك.

بعد ذلك، قم بتحديث معلومات تسجيل الدخول الأحادي لتجمع المضيف الخاص بك عن طريق تشغيل أحد cmdlets التاليين في نفس نافذة PowerShell على AD FS VM:

  • إذا كنت تستخدم مفتاحًا مشتركًا في Key Vault، فقم بتشغيل PowerShell cmdlet التالي:

    Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType SharedKeyInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
    

    إشعار

    تحتاج إلى تعيين الخاصية SsoClientId لمطابقة سحابة Azure التي تقوم بنشر تسجيل الدخول الأحادي فيها. في Azure Commercial Cloud، يجب تعيين هذه الخاصية إلى https://www.wvd.microsoft.com. ومع ذلك، سيكون الإعداد المطلوب لهذه الخاصية مختلفًا للسحب الأخرى، مثل سحابة Azure Government.

  • إذا كنت تستخدم شهادة في Key Vault، فقم بتشغيل PowerShell cmdlet التالي:

    Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType CertificateInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
    

    إشعار

    تحتاج إلى تعيين الخاصية SsoClientId لمطابقة سحابة Azure التي تقوم بنشر تسجيل الدخول الأحادي فيها. في Azure Commercial Cloud، يجب تعيين هذه الخاصية إلى https://www.wvd.microsoft.com. ومع ذلك، سيكون الإعداد المطلوب لهذه الخاصية مختلفًا للسحب الأخرى، مثل سحابة Azure Government.

تكوين تجمعات مضيف إضافية

عندما تحتاج إلى تكوين تجمعات مضيف إضافية، يمكنك استرداد الإعدادات التي استخدمتها لتكوين تجمع مضيف موجود لإعداد تجمع مضيف جديد.

لاسترداد الإعدادات من تجمع المضيف الحالي، افتح نافذة PowerShell وقم بتشغيل cmdlet هذا:

Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" | fl *

يمكنك اتباع الخطوات لتكوين تجمع مضيف Azure Virtual Desktop باستخدام نفس قيم SsoClientId وSsoClientSecretKeyVaultPath وSsoSecretType وSsoadfsAuthority.

إزالة تسجيل الدخول الأحادي

لتعطيل تسجيل الدخول الأحادي على تجمع المضيف، قم بتشغيل cmdlet التالي:

Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority ''

إذا كنت ترغب أيضًا في تعطيل تسجيل الدخول الأحادي على خادم AD FS، فقم بتشغيل cmdlet هذا:

Install-Script UnConfigureWVDSSO
UnConfigureWVDSSO.ps1 -WvdWebAppAppIDUri "<WVD Web App URI>" -WvdClientAppApplicationID "a85cf173-4192-42f8-81fa-777a763e6e2c"

إشعار

يجب أن تتطابق الخاصية WvdWebAppAppIDUri مع سحابة Azure التي تقوم بنشرها فيها. في Azure Commercial Cloud، هذه الخاصية هي https://www.wvd.microsoft.com. سيكون مختلفًا للسحب الأخرى مثل سحابة Azure Government.

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

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