إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح لك هذه المقالة كيفية استخدام Microsoft Entra ID للمصادقة باستخدام Azure Synapse Analytics.
Note
مبادئ خوادم Microsoft Entra حاليا قيد المعاينة ل Azure Synapse Analytics.
المتطلبات المسبقه
لاستخدام مصادقة Microsoft Entra مع Azure Synapse Analytics، تحتاج إلى المتطلبات المسبقة التالية:
- مستأجر Microsoft Entra مملوء بالمستخدمين والمجموعات.
- A existing Azure Synapse workspace أو SQL pool مخصص مستقل.
إنشاء مستأجر Microsoft Entra وملئه
قبل أن تتمكن من تكوين مصادقة Microsoft Entra ل Azure Synapse Analytics، تحتاج إلى إنشاء مستأجر Microsoft Entra وملئه بالمستخدمين والمجموعات. يمكنك إدارة مستأجري Microsoft Entra بالكامل داخل Azure أو استخدامها في اتحاد خدمة Active Directory Domain محلية.
لمزيد من المعلومات، انظر:
- ما هو معرف Microsoft Entra؟
- دمج هوياتك المحلية مع Microsoft Entra ID
- إضافة اسم مجالك إلى معرف Microsoft Entra
- ما هو الاتحاد مع معرف Microsoft Entra؟
- مزامنة الدليل مع معرف Microsoft Entra
- إدارة معرف Microsoft Entra باستخدام Windows PowerShell
- المنافذ والبروتوكولات المطلوبة للهوية المختلطة
تعيين مسؤول Microsoft Entra
لاستخدام مصادقة Microsoft Entra، يحتاج مورد Azure Synapse الخاص بك إلى مسؤول Microsoft Entra.
يمكنك أيضا تكوين مسؤول Microsoft Entra عند إنشاء المورد. إذا كان لديك مسؤول معين بالفعل، تجاوز هذا القسم.
مساحة عمل Azure Synapse
لمساحة عمل Azure Synapse، قم بتكوين مدير Microsoft Entra على مساحة العمل. لمزيد من المعلومات، راجع هيكل المسؤول.
تجمع SQL مخصص مستقل
عند تعيين مسؤول Microsoft Entra، فإنك تفعل مصادقة Microsoft Entra للخادم المنطقي الذي يستضيف مجموعة SQL مخصصة مستقلة. يمكنك تعيين المسؤول باستخدام بوابة Azure أو PowerShell أو Azure CLI أو REST APIs.
في بوابة Azure، يمكنك العثور على اسم الخادم المنطقي
- في حقل اسم الخادم في صفحة النظرة العامة لمجموعة SQL المخصصة المستقلة الخاصة بك في Azure Synapse Analytics.
- مدخل Azure
- بوويرشيل
- واجهة سطر الأوامر Azure (Azure CLI)
- واجهات برمجة التطبيقات REST
لتعيين مسؤول Microsoft Entra للخادم المنطقي في مدخل Microsoft Azure، اتبع الخطوات التالية:
في صفحة الأدلة + الاشتراكات الخاصة ببوابة Azure، اختر الدليل الذي يحتوي على مورد Azure Synapse الخاص بك كدليل الحالي.
ابحث عن خوادم SQL ثم اختر الخادم المنطقي لمجموعة SQL المخصصة لفتح لوحة خوادم SQL .
في لوحة خادم SQL الخاصة بخادم المنطق، اختر Microsoft Entra ID تحت الإعدادات لفتح لوحة Microsoft Entra ID.
في لوحة Microsoft Entra ID، اختر تعيين المسؤول لفتح لوحة Microsoft Entra ID.
يعرض لوح Microsoft Entra ID جميع المستخدمين والمجموعات والتطبيقات في دليلك الحالي ويسمح لك بالبحث بالاسم أو الاسم المستعار أو المعرف. ابحث عن الهوية التي تريدها لمسؤول Microsoft Entra واخترها، ثم اختر اختر لإغلاق اللوحة.
في أعلى صفحة معرف Microsoft Entra ID لخادمك المنطقي، اختر حفظ.
يتم عرض معرف الكائن بجانب اسم المسؤول لمستخدمي ومجموعات Microsoft Entra. بالنسبة للتطبيقات (مبادئ الخدمة)، يتم عرض معرف التطبيق .
قد تستغرق عملية تغيير المسؤول عدة دقائق. ثم يظهر المسؤول الجديد في حقل مسؤول Microsoft Entra.
لإزالة المسؤول، في أعلى صفحة Microsoft Entra ID، اختر إزالة المسؤول، ثم اختر الحفظ. تؤدي إزالة مسؤول Microsoft Entra إلى تعطيل مصادقة Microsoft Entra للخادم المنطقي.
Note
يتم تخزين مسؤول Microsoft Entra في قاعدة بيانات الخادم master كمستخدم (رئيسي قاعدة البيانات). نظرا لأن أسماء القواعد الرئيسية يجب أن تكون فريدة، فلا يمكن أن يكون اسم عرض المسؤول هو نفسه اسم أي مستخدم في قاعدة بيانات الخادم master . إذا كان المستخدم الذي يحمل الاسم موجودا بالفعل، يفشل إعداد مسؤول Microsoft Entra ويتراجع، مما يشير إلى أن الاسم قيد الاستخدام بالفعل.
تعيين أذونات Microsoft Graph
لبعض العمليات، يتطلب Azure Synapse Analytics أمنيات للاستعلام عن Microsoft Graph، كما هو موضح في صلاحيات Microsoft Graph. يدعم Azure Synapse Analytics أمنيات Microsoft Graph API الدقيقة مثل User.Read.All، GroupMember.Read.All، وعلى Application.Read.All هوية المورد. يتبع هذا النهج مبدأ أقل امتياز ويوصى به. يمكنك أيضا استخدام دور قارئي الدليل كبديل أوسع. لمزيد من المعلومات، انظر Managed identities in Microsoft Entra for Azure Synapse Analytics.
دور Directory Readers
لإجراء موجه، راجع تعيين دور قارئي الدليل لمجموعة Microsoft Entra.
يضيف السكربت التالي لنظام PowerShell هوية مورد Azure Synapse إلى دور قارئ الدليل.
# This script grants "Directory Readers" permission to an Azure Synapse service principal.
# It can be executed only by a user who is a member of the **Privileged Roles Administrator** role.
Import-Module Microsoft.Graph.Authentication
$instanceName = "<InstanceName>" # Enter the name of your managed instance or server
$tenantId = "<TenantId>" # Enter your tenant ID
Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}
# Get service principal for your logical server
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$instanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No service principal with name '$($instanceName)' found, make sure that instanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: Multiple service principals with name '$($instanceName)'"
Write-Output $roleMember | Format-List DisplayName, Id, AppId
exit
}
# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
# Add principal to Directory Readers role
Write-Output "Adding service principal '$($instanceName)' to 'Directory Readers' role..."
$body = @{
"@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
Write-Output "'$($instanceName)' service principal added to 'Directory Readers' role."
} else {
Write-Output "Service principal '$($instanceName)' is already member of 'Directory Readers' role."
}
يمكن لمسؤول Microsoft Entra الآن إنشاء مبادئ خوادم Microsoft Entra (تسجيلات الدخول) ومبادئ قواعد البيانات (المستخدمين).
إنشاء أساسيات Microsoft Entra في SQL
للاتصال بقاعدة بيانات في Azure Synapse Analytics مع مصادقة Microsoft Entra، تحتاج إلى تكوين مبدأ في قاعدة البيانات لتلك الهوية مع الحصول على إذن على الأقلCONNECT.
أذونات مستخدم قاعدة البيانات
عندما تنشئ مستخدم قاعدة بيانات، يحصل CONNECT على إذن قاعدة البيانات بشكل افتراضي. يرث مستخدم قاعدة البيانات أيضا الأذونات في حالتين:
- المستخدم عضو في مجموعة Microsoft Entra التي تم تعيين أفعالها أيضا على الخادم.
- تقوم بإنشاء المستخدم من تسجيل الدخول، ويرث المستخدم الأذونات المخصصة من الخادم لتسجيل الدخول والتي تنطبق على قاعدة البيانات.
تعمل إدارة الأذونات لأساسيات الخادم وقاعدة البيانات بنفس الطريقة بغض النظر عن نوع الأساسي (معرف Microsoft Entra ومصادقة SQL وما إلى ذلك). امنح الأصوات لأدوار قاعدة البيانات بدلا من منح الأذونات مباشرة للمستخدمين. ثم أضف المستخدمين للأدوار التي تحمل صلاحيات مناسبة. هذا النهج يبسط إدارة الأجنحة طويلة الأمد ويقلل من احتمالية احتفاظ الهوية بالوصول عندما لا يكون ذلك مناسبا.
لمزيد من المعلومات، انظر:
- أذونات وأمثلة مشغل قاعدة البيانات
- المدونة: أساسيات أذونات مشغل قاعدة البيانات
- Authorize database access to Azure Synapse Analytics
مستخدمو قاعدة البيانات المضمنة
مستخدم قاعدة البيانات المحتوي هو نوع من مستخدمي SQL غير متصل بتسجيل الدخول في master قاعدة البيانات. لإنشاء مستخدم قاعدة بيانات يحتوي على Microsoft Entra، اتصل بقاعدة البيانات التي تحمل هوية Microsoft Entra التي تحمل على الأقل ALTER ANY USER الإذن. المثال التالي في T-SQL ينشئ مبدأ قاعدة بيانات مسمى Microsoft_Entra_principal_name من Microsoft Entra ID.
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
لإنشاء مستخدم قاعدة بيانات محتوية لمجموعة Microsoft Entra، أدخل اسم العرض للمجموعة:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
لإنشاء مستخدم قاعدة بيانات محتوى لهوية مدارة أو رئيسي خدمة، أدخل اسم عرض الهوية:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
لإنشاء مستخدم قاعدة بيانات محتوية لمستخدم Microsoft Entra، أدخل اسم المستخدم الرئيسي للهوية:
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
المستخدمون المستندون إلى تسجيل الدخول
Note
مبادئ خوادم Microsoft Entra (logins) حاليا في المعاينة ل Azure Synapse Analytics.
يتم دعم أساسيات خادم Microsoft Entra (أو عمليات تسجيل الدخول)، مما يعني أن مستخدمي قاعدة البيانات المضمنة غير مطلوبين. يمكن إنشاء أساسيات قاعدة البيانات (المستخدمين) استنادا إلى أساس الخادم، مما يعني أن مستخدمي Microsoft Entra يمكنهم وراثة الأذونات المعينة على مستوى الخادم لتسجيل الدخول.
CREATE USER [appName] FROM LOGIN [appName];
لبناء الجملة حول إنشاء أساسيات خادم Microsoft Entra (تسجيلات الدخول)، راجع إنشاء تسجيل الدخول.
مستخدمون خارجيون
لا يمكنك إنشاء مستخدم قاعدة بيانات مباشرة لهوية مدارة في مستأجر Microsoft Entra مختلف عن المستأجر المقترن باشتراك Azure الخاص بك. ومع ذلك، يمكنك استيراد المستخدمين من أدلة أخرى إلى الدليل المرتبط كمستخدمين خارجيين. يمكنك بعد ذلك استخدامها لإنشاء مستخدمين محتوى في قاعدة البيانات يمكنهم الوصول إلى قاعدة البيانات. يمكن للمستخدمين الخارجيين أيضا الوصول من خلال العضوية في مجموعات Microsoft Entra.
أمثلة: لإنشاء مستخدم قاعدة بيانات يحتوي يمثل مستخدم نطاق Microsoft Entra الموحد أو المدار:
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- حساب المستخدم الفيدرالي للنطاق الذي تستيراده إلى نطاق مدار كمستخدم خارجي يجب أن يستخدم هوية النطاق المدار.
اعتبارات الأسماء
لا يمكنك استخدام أحرف خاصة مثل النقطتين : أو علامة العلامة & في أسماء المستخدمين ل T-SQL CREATE LOGIN والعبارات CREATE USER .
يختلف Microsoft Entra ID و Azure Synapse Analytics في تصميم إدارة المستخدمين في جانب رئيسي واحد: يسمح Microsoft Entra ID بأسماء عرض مكررة داخل المستأجر، بينما يتطلب Azure Synapse Analytics أسماء رئيسية فريدة للخوادم في تجمع SQL مخصص وأسماء رئيسية فريدة لقواعد البيانات في قاعدة البيانات.
أذونات Microsoft Graph
يتطلب الأمر CREATE USER ... FROM EXTERNAL PROVIDER من Azure Synapse Analytics الوصول إلى Microsoft Entra ID (المزود الخارجي) نيابة عن المستخدم المسجل. أحيانا، يعيد Microsoft Entra ID استثناء.
- قد تواجه خطأ SQL 33134، الذي يحتوي على رسالة الخطأ الخاصة بمعرف Microsoft Entra. يشير الخطأ عادة إلى أن الوصول مرفوض، أو أنه يجب على المستخدم التسجيل في المصادقة متعددة العوامل للوصول إلى المورد، أو أنه يجب معالجة الوصول بين تطبيقات الطرف الأول عبر المصادقة المسبقة. في الحالتين الأوليين، تحدث المشكلة عادة بسبب نهج الوصول المشروط التي تم تعيينها في مستأجر Microsoft Entra للمستخدم: فهي تمنع المستخدم من الوصول إلى الموفر الخارجي. تحديث سياسات الوصول المشروط للسماح بالوصول إلى التطبيق
00000003-0000-0000-c000-000000000000(معرف التطبيق لواجهة برمجة تطبيقات Microsoft Graph API) يجب أن يحل المشكلة. إذا كان الخطأ يقول إنه يجب معالجة الوصول بين تطبيقات الطرف الأول عبر المصادقة المسبقة، فإن المشكلة هي أن المستخدم قد سجل الدخول ككيان خدمة. يجب أن ينجح الأمر إذا تم تنفيذه من قبل مستخدم بدلا من ذلك. - إذا استلمت إشعار انتهاء صلاحية الاتصال، قد تحتاج إلى تعيين
TransparentNetworkIPResolutionمعامل سلسلة سلسلة الاتصال على false. لمزيد من المعلومات، راجع مشكلة مهلة الاتصال مع .NET Framework 4.6.1 - TransparentNetworkIPResolution.
لمزيد من المعلومات حول إنشاء مستخدمي قاعدة البيانات المضمنة استنادا إلى هويات Microsoft Entra، راجع CREATE USER.
تكوين المصادقة متعددة العوامل
لتحسين الأمان، فكر في تكوين المصادقة متعددة العوامل (MFA)، التي تطلب من المستخدم استخدام طريقة ثانية للمصادقة في قاعدة البيانات، مثل مكالمة هاتفية أو تطبيق مصادقة.
لاستخدام المصادقة متعددة العوامل مع Azure Synapse Analytics، قم أولا بتمكين المصادقة متعددة العوامل، ثم استخدم سياسة الوصول المشروط لتطبيق المصادقة متعددة العوامل (MFA).
الاتصال ب Microsoft Entra
بعد تكوين مصادقة Microsoft Entra، يمكنك استخدامه للاتصال ب Azure Synapse Analytics عبر SQL Server Management Studio أو SQL Server Data Tools، وتكوين تطبيقات العملاء للاتصال باستخدام هويات Microsoft Entra.
استكشاف أخطاء مصادقة Microsoft Entra وإصلاحها
للحصول على التوجيه، راجع استكشاف المشكلات المتعلقة بمصادقة Microsoft Entra.