تصفية نقاط نهاية الموصل (إصدار أولي)

[هذا المقال عبارة عن وثائق نسخة مسبقة وهو عرضة للتغيير.]

تتيح تصفية نقطة نهاية الموصل للمسؤولين التحكم في نقاط النهاية المحددة التي يمكن لصانعي النهاية الاتصال بها عند إنشاء التطبيقات أو التدفقات أو روبوتات الدردشة. تم تكوينه ضمن نهج بيانات، وهو متاح حصريا للموصلات التالية:

  • HTTP
  • HTTP مع Microsoft Entra ID (AD)
  • إخطار على الويب HTTP
  • SQL Server (يتضمن استخدام موصل خادم SQL للوصول إلى مستودع بيانات Azure Synapse)
  • Azure Blob التخزين
  • SMTP
  • التشغيل التلقائي للمتصفح
  • أتمتة واجهة المستخدم

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

التحذير

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

هام

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

إضافة قواعد تصفية نقطة النهاية إلى سياسات البيانات

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

يمكن تكوين نقطة النهاية في صفحة الموصلات المنشأة مسبقًا.

إذا كانت قيمة العمود نقطة النهاية القابلة للتكوين هي نعم‎‎، يمكنك استخدام هذه الإمكانية بالنقر بزر الماوس الأيمن ثم تحديد تكوين الموصل‎>‎نقاط نهاية الموصل.

تكوين الموصل > نقاط نهاية الموصلات.

يؤدي هذا إلى فتح لوحة جانبية حيث يمكنك تحديد قائمة مرتبة من أنماط عنوان URL السماح أو الرفض. الصف الأخير في القائمة هو قاعدة لحرف البدل (*) التي تنطبق على جميع نقاط النهاية في ذلك الموصل. بشكل افتراضي، * يتم إعداد النمط ك Allow لنهج البيانات الجديدة، ولكن يمكنك وضع علامة عليه على أنه Allow أو Deny.

تحديد قائمة مرتبة من أنماط السماح والرفض لعناوين URL للموصلات المخصصة.

إضافة قاعدة جديدة

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

حدد إضافة نقطة نهاية لإضافة قواعد جديدة.

بعد إضافة نمط، يمكنك تحريره أو حذفه عن طريق تحديد صف معين ثم تحديد حذف.

حذف نمط.

بعد حفظ قواعد تصفية نقطة نهاية الموصل ونهج البيانات حيث يتم تعريفها، يتم فرضها على الفور على البيئات المستهدفة. تعرض الصورة التالية مثالا حيث يحاول صانع توصيل تدفق السحابة الخاص به بنقطة نهاية HTTP غير مسموح بها.

خطأ في نهج البيانات بسبب قواعد تصفية نقطة النهاية.

القيود المعروفة

  • لا يتم فرض قواعد تصفية نقطة النهاية على متغيرات البيئة والمدخلات المخصصة ونقاط النهاية المرتبطة ديناميكيًا أثناء وقت التشغيل. يتم فرض نقاط النهاية الثابتة المعروفة والمحددة فقط عند إنشاء تطبيق أو تدفق أو روبوت دردشة أثناء وقت التصميم. وهذا يعني أنه لا يتم فرض قواعد تصفية نقطة نهاية الموصل ل SQL Server ومساحة تخزين Azure Blob إذا تمت مصادقة الاتصالات باستخدام معرف Microsoft Entra. في اللقطتين التاليتين، يقوم صانع بإنشاء تدفق سحابي يحدد SQL Server وقاعدة البيانات داخل المتغيرات، ثم يستخدم هذه المتغيرات كإدخال لتعريف الاتصال. ونتيجة لذلك، لا يتم تقييم قواعد تصفية نقطة النهاية، ويتم تنفيذ تدفق السحابة بنجاح.

    لقطة شاشة لتدفق سحابي يستخدم متغيرات للاتصال ب SQL.

    لقطة شاشة لتدفق سحابي يعمل بنجاح.

  • يجب إعادة نشر تطبيقات Power Apps المنشورة قبل ١ أكتوبر 2020 لتطبيق قواعد إجراءات موصل سياسة البيانات وقواعد نقطة النهاية. يتيح البرنامج النصي التالي للمسؤولين والصانعين تحديد التطبيقات التي يجب إعادة نشرها للامتثال لقواعد التحكم الدقيقة الجديدة في نهج البيانات:

    Add-PowerAppsAccount
    
    $GranularDLPDate = Get-Date -Date "2020-10-01 00:00:00Z"
    
    ForEach ($app in Get-AdminPowerApp){
    
        $versionAsDate = [datetime]::Parse($app.LastModifiedTime)
    
        $olderApp = $versionAsDate -lt $GranularDLPDate
    
        $wasBackfilled = $app.Internal.properties.executionRestrictions -ne $null -and $app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult -ne $null -and ![string]::IsNullOrEmpty($app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult.lastAdvancedBackfillDate) 
    
        If($($olderApp -and !$wasBackfilled)){
            Write-Host "App must be republished to comply with granular data policy: " $app.AppName " "  $app.Internal.properties.displayName " " $app.Internal.properties.owner.email
        } 
        Else{ 
            Write-Host "App is already Granular data policy compliant: " $app.AppName 
        }
    }
    

تنسيقات وأمثلة إدخال نقطة النهاية

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

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

SQL Server

سرد نقاط نهاية اتصال SQL Server بالتنسيق <Server_name, database_name> . عليك أن تضع في اعتبارك بعض الأمور:

  • يمكن للمصنيعين إدخال اسم الخادم بتنسيقات مختلفة. لمعالجة نقطة نهاية، أدخلها بجميع التنسيقات الممكنة. على سبيل المثال، يمكن أن تكون المثيلات المحلية بتنسيق <machine_name\named_instance, database_name> أو <IP address, custom port, database_name>. في هذه الحالة، يجب عليك تقديم طلب السماح أو قواعد الحظر بكلا التنسيقين لنقطة نهاية. على سبيل المثال:

    • حظر WS12875676\Servername1,MktingDB
    • حظر 11.22.33.444,1401,MktingDB
  • لا يوجد منطق خاص يعالج العناوين النسبية مثل localhost. لذلك، إذا حظرت *localhost*، فإن ذلك يمنع المُنشئين من استخدام أي نقاط نهاية باستخدام localhost كجزء من نقطة نهاية خادم SQL. ومع ذلك، فإن ذلك لا يمنعهم من الوصول إلى نقطة النهاية باستخدام العنوان المطلق، إلا إذا قام المسؤول بحظر العنوان المطلق أيضًا.

وإليك بعض الأمثلة:

  • السماح فقط لمثيلات Azure SQL Server:

    1. السماح لـ *.database.windows.net*
    2. رفض *
  • السماح لنطاق IP معين فقط: (يمكن لصانع النظام الاستمرار في إدخال عناوين IP غير المسموح بها بتنسيق <machine_name\named_instance>.)

    1. السماح لـ 11.22.33*
    2. رفض *

Dataverse

يتم تمثيل نقاط نهاية Dataverse بواسطة معرف المؤسسة، مثل 00aa00aa-bb11-cc22-dd33-44ee44ee44ee. يُرجَى ملاحظة أن موصل Dataverse العادي فقط هو حاليًا في نطاق تصفية نقطة النهاية. لا يشمل هذا النطاق ديناميكيات Dataverse وموصلات Dataverse الحالية. كما لا يمكن حظر استخدام المثيل المحلي لـ Dataverse (المعروف أيضًا باسم البيئة الحالية) داخل بيئة. وهذا يعني أنه يمكن للواضعي دائما الوصول إلى بيئة Dataverse الحالية داخل أي بيئة معينة.

لذلك، قاعدة تقول:

  1. السماح لـ 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
  2. رفض *

يعني في الواقع:

  1. السماح لـ Dataverse current environment
  2. السماح لـ 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
  3. رفض *

السماح بـ Dataverse current environment هو دائمًا القاعدة الأولى في قائمة تصفية نقطة النهاية في Dataverse لأي بيئة معينة.

Azure Blob التخزين

تستخدم نقاط نهاية مساحة تخزين Azure Blob اسم حساب تخزين Azure.

SMTP

يتم تمثيل نقاط نهاية SMTP بتنسيق <SMTP server address, port number>.

فيما يلي مثال على السيناريو:

  1. رفض smtp.gmail.com,587
  2. السماح لـ *

HTTP مع Microsoft Entra ID، وHTTP Webhook، وموصلات HTTP

تستخدم نقاط نهاية موصل HTTP نمط URL. إن إجراء الحصول على مورد الويب لـ HTTP مع موصل Microsoft Entra خارج النطاق.

إليك مثال على السيناريو:

السماح بالوصول إلى صفحة اشتراكات Azure فقط داخل https://management.azure.com/.

  1. السماح لـ https://management.azure.com/subscriptions*
  2. رفض https://management.azure.com/*
  3. رفض *

التشغيل التلقائي للمتصفح

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

‏‫ملاحظة‬

لا يتم التحقق من صحة تصفية نقطة النهاية عند تكوين إجراءات "إطلاق متصفح الويب" للارتباط بنافذة المقدمة. في مثل هذه الحالات، لا يتم حظر الإجراء إلا في حالة رفض الوصول إلى جميع صفحات الويب.

فيما يلي مثال على السيناريو:

السماح بالوصول إلى جميع صفحات الويب باستثناء عنوان URL‎ https://www.contoso.com/ وأي عنوان URL أو صفحة ويب تحتوي على السلسلة powerplatform.

  1. رفض https://www.contoso.com/
  2. رفض *powerplatform*
  3. السماح لـ *

أتمتة واجهة المستخدم

تتيح لك هذه الميزة تحديد التطبيقات والشاشات التي يمكن أن يتفاعل معها تدفق سطح المكتب في Power Automate لسطح المكتب. يتم تحديد نقاط النهاية باستخدام اسم عملية التطبيق. عندما يكون اسم العملية هو ApplicationFrameHost أو Java أو Javaw - مما يشير إلى النظام الأساسي العام ل Windows (UWP) أو تطبيق Java حيث قد تشترك مثيلات متعددة في نفس الاسم - يستخدم Power Automate لسطح المكتب اسم العملية واسم عرض النافذة لتحديد الهدف بدقة. يتم استخدام أحرف البدل للمطابقة المرنة.

يحدث التحقق من الصحة على أي إجراء داخل مجموعة أتمتة واجهة المستخدم. يتحقق من سمة العملية (المشار إليها بالرقم 1 في الصورة) أو سمة الاسم (المشار إليها بالرقم 2 في الصورة) في محدد الشاشة المستهدفة (كما هو موضح بواسطة السهم في الصورة). عادة ما يتم استخدام أصل عناصر واجهة المستخدم ذات الصلة لتحديد ما إذا كان التفاعل مسموحا به.

محدد الشاشة

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

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

‏‫ملاحظة‬

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

فيما يلي مثال على السيناريو. للسماح بالوصول إلى جميع التطبيقات والشاشات، باستثناء تلك التي تكون فيها السمة Process أو Name إما بالضبط Calculator أو تحتوي على السلسلة Java، يمكنك تكوين القواعد التالية:

  1. رفض Calculator
  2. رفض *Java*
  3. السماح لـ *

HTTP

تتيح لك هذه الميزة التحكم في نقاط النهاية التي يمكن لتدفق سطح المكتب الوصول إليها عند استخدام إجراءات HTTP في Power Automate لسطح المكتب. يتم تعريف نقاط النهاية باستخدام تنسيق URL، ويمكنك استخدام أحرف البدل للمطابقة المرنة لعناوين URL الديناميكية.

إذا انتهكت نقطة النهاية المطلوبة قواعد التصفية المحددة، يتم حظر الإجراء ويفشل التدفق مع انتهاك النهج.

يتم تقييم قواعد تصفية نقطة النهاية بالترتيب، استنادا إلى أنماط السماح والرفض المكونة في نهج منع فقدان البيانات (DLP).

مثال على السيناريو: السماح بالوصول إلى جميع نقاط النهاية باستثناء عنوان URL https://www.contoso.com/ وأي عنوان URL يحتوي على السلسلة powerplatform.

  1. رفض https://www.contoso.com/
  2. رفض powerplatform
  3. السماح لـ *

دعم PowerShell لتصفية نقاط النهاية

تكوين قواعد تصفية نقاط النهاية لسياسة

يسمى الكائن الحاوي على قواعد تصفية نقاط النهاية لسياسة ما تكوينات الموصلات.

يكون كائن تكوينات الموصل له البنية التالية:

$ConnectorConfigurations = @{ 
  connectorActionConfigurations = @() # used for connector action rules
  endpointConfigurations = @( # array – one entry per 
    @{  
      connectorId # string
      endpointRules = @( # array – one entry per rule 
        @{ 
          order # number 
          endpoint # string
          behavior # supported values: Allow/Deny
        }
      ) 
    }
  ) 
}

ملاحظات

  • يجب أن تنطبق القاعدة الأخيرة لكل موصل دائما على عنوان URL * للتأكد من أن جميع عناوين URL مشمولة بالقواعد.
  • يجب أن تستخدم خاصية الطلب الخاصة بالقواعد لكل موصل الأرقام من 1 إلى N، حيث N هي عدد القواعد لهذا الموصل.

استرجاع تكوينات الموصل الحالية لسياسة البيانات

Get-PowerAppDlpPolicyConnectorConfigurations 

إنشاء تكوينات الموصل لنهج البيانات

New-PowerAppDlpPolicyConnectorConfigurations

تحديث إعدادات الموصل لنهج بياناتي

Set-PowerAppDlpPolicyConnectorConfigurations

المثال

الهدف:

لموصل SQL Server:

  • رفض الوصول إلى قاعدة البيانات "testdatabase" للخادم "myservername.database.windows.net"
  • السماح لجميع قواعد البيانات الأخرى للخادم "myservername.database.windows.net"
  • رفض جميع الخوادم الأخرى

بالنسبة لموصل SMTP:

  • السماح لـ Gmail (عنوان الخادم: smtp.gmail.com، المنفذ: 587)
  • رفض جميع العناوين الأخرى

بالنسبة لموصل HTTP:

  • السماح بنقاط النهاية https://mywebsite.com/allowedPath1 وhttps://mywebsite.com/allowedPath2
  • رفض جميع عناوين URL الأخرى

‏‫ملاحظة‬

في أمر cmdlet التالي، يشير PolicyName إلى معرف GUID فريد. استرد المعرف الفريد العمومي لسياسة البيانات بتشغيل الأمر Get-DlpPolicy.

$ConnectorConfigurations = @{ 
  endpointConfigurations = @(
    @{  
      connectorId = "/providers/Microsoft.PowerApps/apis/shared_sql" 
      endpointRules = @(
        @{ 
          order = 1 
          endpoint = "myservername.database.windows.net,testdatabase" 
          behavior = "Deny"
        }, 
        @{ 
          order = 2 
          endpoint = "myservername.database.windows.net,*" 
          behavior = "Allow"
        }, 
        @{ 
          order = 3
          endpoint = "*" 
          behavior = "Deny"
        } 
      ) 
    }, 
    @{  
      connectorId = "/providers/Microsoft.PowerApps/apis/shared_smtp" 
      endpointRules = @(
        @{ 
          order = 1 
          endpoint = "smtp.gmail.com,587" 
          behavior = "Allow"
        }, 
        @{ 
          order = 2 
          endpoint = "*" 
          behavior = "Deny"
        } 
      ) 
    },
    @{  
      connectorId = "http" 
      endpointRules = @(
        @{ 
          order = 1 
          endpoint = "https://mywebsite.com/allowedPath1" 
          behavior = "Allow"
        }, 
        @{ 
          order = 2
          endpoint = "https://mywebsite.com/allowedPath2" 
          behavior = "Allow"
        }, 
        @{ 
          order = 3
          endpoint = "*" 
          behavior = "Deny"
        } 
      ) 
    } 
  ) 
}
New-PowerAppDlpPolicyConnectorConfigurations -TenantId $TenantId -PolicyName $PolicyName -NewDlpPolicyConnectorConfigurations $ConnectorConfigurations