共用方式為


連接器端點篩選 (預覽版)

[本文章是發行前版本文件,且隨時可能變更。]

連接器端點篩選可讓管理員控制製作者在建置應用程式、流程或聊天機器人時可以連線到哪些特定端點。 它是在資料政策內設定,而且僅適用於下列連接器:

  • HTTP
  • HTTP 與 Microsoft Entra ID (AD)
  • HTTP 網路掛勾 (Webhook)
  • SQL Server (包括使用 SQL Server 連接器存取 Azure Synapse 資料倉儲)
  • Azure Blob 儲存體
  • SMTP
  • 瀏覽器自動化
  • UI 自動化

當製作者將其應用程式、流程或聊天機器人連線到封鎖的端點時,他們會看到資料政策錯誤訊息。

警告

端點篩選規則不適用於環境變數、自訂輸入或在執行階段動態建立的任何端點。 只有靜態端點才會在應用程式、流程或聊天機器人設計師中進行評估。 如需詳細資訊,請參閱已知限制

重要

  • 這是預覽功能。
  • 預覽功能不供生產時使用,而且可能功能受限。 這些功能應受補充使用條款所拘束,其為在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。

將端點篩選規則新增至您的資料政策

「資料原則」中「預先建置的連接器」頁面上的「端點可設定」欄會指出連接器是否支援端點篩選功能。

端點可在 [預建連接器] 頁面中設定。

如果端點可設定資料行的值為,您可以按右鍵,然後選取設定連接器>連接器端點來使用此功能。

[設定連接器] > [連接器端點]。

這會開啟側邊面板,您可以在其中指定允許或拒絕 URL 模式的排序清單。 清單中的最後一列是萬用字元 (*) 的規則,適用於該連接器中的所有端點。 根據預設, * 模式會針對新的資料原則設定為 [允許],但您可以將其標記為 [允許] 或 [拒絕]。

為自訂連接器指定 Allow 或 Deny URL 模式的排序清單。

新增新規則

您可以選取新增端點來新增規則。 新規則會新增至型樣清單的結尾,做為倒數第二個規則。 這是因為 * 是列表中的最後一個條目。 不過,您也可以使用順序下拉式清單或選取上移下移來更新模式的順序。

選取新增端點新增規則。

新增模式之後,您可以選取特定資料列,然後選取 [刪除]來編輯或刪除它。

刪除模式。

儲存連接器端點篩選規則和定義它們的資料原則之後,它們會立即在目標環境中強制執行。 下圖顯示製作者嘗試將其雲端流程連線到不允許的 HTTP 端點的範例。

資料原則錯誤,因為端點篩選規則。

已知限制

  • 在執行階段,環境變數、自訂輸入和動態繫結端點不會強制執行端點篩選規則。 只會強制執行在設計階段建置應用程式、流程或聊天機器人時已知且選取的靜態端點。 這表示如果連線使用 Microsoft Entra ID 進行驗證,則不會強制執行 SQL Server 和 Azure Blob 儲存體的連接器端點篩選規則。 在下列兩個螢幕擷取畫面中,製作者會建置雲端流程,以定義變數內的 SQL Server 和資料庫,然後使用這些變數作為連線定義的輸入。 因此,不會評估端點篩選規則,且雲端流程會成功執行。

    使用變數連線至 SQL 的雲端流程螢幕擷取畫面。

    成功執行的雲端流程螢幕擷取畫面。

  • 在 2020 年 10 月 1 日之前發佈的 Power Apps 需要重新發佈,才能強制執行資料原則連接器動作規則和端點規則。 下列指令碼可讓系統管理員和製作者識別必須重新發佈的應用程式,以符合這些新的資料原則細微控制規則:

    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

以格式列出 <Server_name, database_name> SQL Server 連線端點。 幾個注意事項:

  • 製作者可以輸入各種格式的伺服器名稱。 若要定址端點,請以所有可能的格式輸入它。 例如,內部部署範例可以是<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 Server 端點的一部分來阻止製作者使用任何端點。 不過,這並不會阻止他們使用絕對地址存取端點,除非管理員也已封鎖該絕對地址。

以下是一些範例:

  • 僅允許 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 Dynamics 和 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. 允許 *

使用 Microsoft Entra ID、HTTP Webhook 和 HTTP 連接器的 HTTP

HTTP 連接器端點使用 URL 模式。 使用 Microsoft Entra ID 連接器的 HTTP 的取得 Web 資源動作不在範圍內。

範例案例如下:

只允許存取 https://management.azure.com/ 中的 Azure 訂閱頁面。

  1. 允許 https://management.azure.com/subscriptions*
  2. 拒絕 https://management.azure.com/*
  3. 拒絕 *

瀏覽器自動化

此功能可讓您控制桌面流程在桌面版 Power Automate 中存取的網頁。 端點以 URL 格式或網頁名稱格式表示,您可以使用萬用字元進行動態 URL 或頁面名稱比對。 在桌面流程繼續瀏覽器互動之前,會在「啟動網頁瀏覽器」或「移至網頁」動作期間進行驗證。

Note

將「啟動網頁瀏覽器」動作設定為附加至前景視窗時,不會驗證端點篩選。 在此類情況下,除非拒絕對所有網頁的存取,否則不會封鎖該動作。

範例案例如下:

允許存取除了 URL https://www.microsoft.com/ 以及任何包含字串 powerplatform 的 URL 或網頁以外的所有網頁。

  1. 拒絕 https://www.microsoft.com/
  2. 拒絕 *powerplatform*
  3. 允許 *

UI 自動化

此功能可讓您定義桌面流程可以在桌面版 Power Automate 中與哪些應用程式和螢幕互動。 端點是使用應用程式的處理程序名稱來指定。 當程序名稱為 ApplicationFrameHostJavaJavaw 時 (表示多個執行個體可能共用相同名稱的通用 Windows 平台 (UWP) 或 Java 應用程式,桌面版 Power Automate 會同時使用程序名稱和視窗顯示名稱來準確識別目標。 支援萬用字元以實現彈性比對。

驗證會發生在 UI 自動化群組內的任何動作上。 它檢查目標螢幕選擇器中的 Process 屬性(由圖中的數字1表示)或 Name 屬性(由圖中的數字2表示)(如圖中的箭頭所示)。 通常,相關 UI 元素的父系會用來判斷是否允許互動。

螢幕選擇器

端點篩選規則不適用於變數或動態繫結端點。 如果運算式包含常值字串以外的任何內容,則會略過篩選,可能允許存取受限制的連接器引數。 預設原則行為是所有端點篩選原則都包含核心規則 (允許 *拒絕 *),預設為 允許 * (全部允許)。

  • 使用 [允許 * ] 時:不會篩選動態值。 任何動態運算式都會略過端點篩選,即使特定應用程式受到限制也一樣。
  • 使用 Deny * 時:預設會封鎖所有動態值,確保更嚴格的強制執行。

Note

  • 如果相關屬性 (進程名稱) 不是選取器的一部分,則不會強制執行端點篩選。
  • 某些 Windows 作業系統 UI 元素不支援端點篩選,包括桌面圖示、工作列按鈕和 [開始] 功能表內的元件。

以下是範例案例。 若要容許存取所有應用程式和畫面,但「 處理程序 」或 「名稱 」屬性完全是 「計算機」 或包含字串 Java 的應用程式和畫面除外,您可以配置下列規則:

  1. 拒絕 Calculator
  2. 拒絕 *Java*
  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 伺服器連接器:

  • 拒絕伺服器 "myservername.database.windows.net" 的資料庫 "testdatabase"
  • 允許伺服器 "myservername.database.windows.net" 的所有其他資料庫
  • 拒絕所有其他伺服器

SMTP 連接器:

  • 允許 Gmail (伺服器位址:smtp.gmail.com,連接埠:587)
  • 拒絕所有其他地址

HTTP 連接器:

  • 允許端點 https://mywebsite.com/allowedPath1https://mywebsite.com/allowedPath2
  • 拒絕所有其他 URL

Note

在以下 Cmdlet 中,PolicyName 是指唯一的 GUID。 執行 Get-DlpPolicy Cmdlet 來擷取資料原則 GUID。

$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