Partage via


Filtrage du point de terminaison du connecteur (version préliminaire)

[Cet article fait partie de la documentation en version préliminaire et peut faire l’objet de modifications.]

Le filtrage du point de terminaison du connecteur permet aux administrateurs de déterminer les points de terminaison spécifiques auxquels les créateurs peuvent se connecter lors de la création d’applications, de flux ou de chatbots. Il est configuré dans le cadre d’une stratégie de protection contre la perte de données (DLP) et est exclusivement disponible pour six connecteurs :

  • HTTP
  • HTTP avec Microsoft Entra ID (AD)
  • Webhook HTTP
  • SQL Server (inclut l’utilisation du connecteur SQL Server pour accéder à l’entrepôt de données Azure Synapse)
  • Stockage Blob Azure
  • SMTP

Lorsqu’un créateur essaie de connecter son application, flux ou chatbot à un point de terminaison bloqué, il rencontre un message d’erreur DLP.

Avertissement 

Les règles de filtrage du point de terminaison ne sont pas appliquées dans les variables d’environnement, les entrées personnalisées ou tout point de terminaison qui est créé dynamiquement au moment de l’exécution. Seuls les points de terminaison statiques sont évalués dans les concepteurs d’application, de flux ou de chatbot. Pour plus d’informations, voir Limitations connues.

Important

Les fonctionnalités en version préliminaire ne sont pas destinées à une utilisation en production et peuvent être restreintes. Ces fonctionnalités sont disponibles avant une publication officielle afin que les clients puissent y accéder de façon anticipée et fournir des commentaires.

Ajouter des règles de filtrage du point de terminaison à vos stratégies DLP

La colonne Point de terminaison configurable de la page Connecteurs prédéfinis dans Stratégies de données indique si la fonction de filtrage du point de terminaison est prise en charge pour le connecteur.

Point de terminaison configurable dans la page Connecteurs prédéfinis.

Si la valeur de la colonne Point de terminaison configurable est Oui, vous pouvez utiliser cette capacité en cliquant avec le bouton droit, puis en sélectionnant Configurer le connecteur>Points de terminaison du connecteur.

Configurer le connecteur > Points de terminaison du connecteur.

Cela ouvre un panneau latéral dans lequel vous pouvez spécifier une liste triée de modèles d’URL Autoriser ou Refuser. La dernière ligne de la liste sera toujours une règle pour le caractère générique (*), qui s’applique à tous les points de terminaison de ce connecteur. Par défaut, le modèle * est configuré comme Autoriser pour les nouvelles stratégies DLP, mais vous pouvez le marquer comme Autoriser ou Refuser.

Spécifiez une liste triée de modèles d’URL Autoriser ou Refuser pour les connecteurs personnalisés.

Ajouter de nouvelles règles

Vous pouvez ajouter de nouvelles règles en sélectionnant Ajouter un point de terminaison. Les nouvelles règles sont ajoutées à la fin de la liste de modèles en tant qu’avant-dernière règle. En effet, * sera toujours la dernière entrée de la liste. Cependant, vous pouvez mettre à jour l’ordre des modèles en utilisant la liste déroulante Ordre ou en sélectionnant Déplacer vers le haut ou Déplacer vers le bas.

Sélectionnez Ajouter un point de terminaison pour ajouter de nouvelles règles.

Une fois qu’un modèle a été ajouté, vous pouvez modifier ou supprimer ces modèles en sélectionnant une ligne spécifique, puis en sélectionnant Supprimer.

Supprimer un modèle.

Après avoir enregistré vos règles de filtrage du point de terminaison du connecteur et la stratégie DLP dans laquelle elles sont définies, elles sont instantanément appliquées dans les environnements ciblés. Vous trouverez ci-dessous un exemple où un créateur a essayé de connecter son flux de cloud à un point de terminaison HTTP qui n’est pas autorisé.

Erreur DLP en raison des règles de filtrage du point de terminaison.

Limitations connues

  • Les règles de filtrage du point de terminaison ne sont pas appliquées dans les variables d’environnement, les entrées personnalisées et les points de terminaison dynamiquement liés pendant l’exécution. Seuls les points de terminaison statiques connus et sélectionnés lors de la création d’une application, d’un flux ou d’un chatbot au moment de la conception sont appliqués. Cela implique que les règles de filtrage du point de terminaison du connecteur pour SQL Server et Azure Blob Storage ne fonctionnent pas si les connexions sont authentifiées via Microsoft Entra ID. Dans les deux captures d’écran ci-dessous, un créateur a créé un flux de cloud qui définit SQL Server et la base de données au sein des variables, puis utilise ces variables comme entrée pour la définition de la connexion. Par conséquent, les règles de filtrage du point de terminaison ne sont pas évaluées et le flux de cloud peut s’exécuter avec succès.

    Le flux de cloud utilise des variables pour se connecter à SQL.Exécutions de flux de cloud réussies.

  • Certaines Power Apps publiées avant le 1er octobre 2020 doivent être republiées pour que les règles d’action du connecteur DLP et les règles du point de terminaison soient appliquées. Le script suivant permet aux administrateurs et aux créateurs d’identifier les applications qui doivent être republiées pour respecter ces nouvelles règles de contrôle granulaire DLP :

    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 be Granular DLP compliant: " $app.AppName " "  $app.Internal.properties.displayName " " $app.Internal.properties.owner.email
        } 
        Else{ 
            Write-Host "App is already Granular DLP compliant: " $app.AppName 
        }
    }
    

Formats de saisie et exemples de point de terminaison

Chaque connecteur a une notion différente de ce que signifie un point de terminaison. En outre, certains points de terminaison peuvent être définis dans plusieurs formats. Par conséquent, les points de terminaison doivent être saisis dans tous les formats possibles pour empêcher les créateurs de les utiliser lors de la création d’applications et de flux. Les administrateurs peuvent saisir le nom complet du point de terminaison ou utiliser la correspondance de modèles avec le caractère générique (*) lors de la création d’une règle de filtrage de point de terminaison. Ces règles sont saisies et présentées dans une liste triée de modèles de point de terminaison, ce qui signifie qu’elles seront évaluées dans l’ordre croissant par numéro. Notez que la dernière règle pour un connecteur donné est toujours * Autoriser ou * Refuser. Autoriser est la valeur par défaut, qui peut être modifiée en Refuser.

Les instructions suivantes décrivent comment saisir des points de terminaison de connecteur lors de la création de règles pour les autoriser ou les refuser.

SQL Server

Les points de terminaison de la connexion SQL Server doivent être répertoriés au format <Server_name, database_name>. Quelques éléments à prendre en compte :

  • Le nom du serveur peut être saisi dans différents formats par les créateurs. Par conséquent, pour définir vraiment un point de terminaison, il doit être saisi dans tous les formats possibles. Par exemple, les instances locales peuvent être au format <machine_name\named_instance, database_name> ou <IP address, custom port, database_name>. Dans ce cas, vous devrez appliquer les règles d’autorisation ou de blocage dans les deux formats pour un point de terminaison. Par exemple :

    • Bloquer WS12875676\Servername1,MktingDB
    • Bloquer 11.22.33.444,1401,MktingDB
  • Il n’existe aucune logique spéciale pour gérer les adresses relatives telles que localhost. Par conséquent, si vous bloquez *localhost*, cela empêchera les créateurs d’utiliser les points de terminaison en utilisant localhost dans le cadre du point de terminaison SQL Server. Cependant, cela ne les empêchera pas d’accéder au point de terminaison en utilisant l’adresse absolue, à moins que l’administrateur l’ait également bloquée.

Voici des exemples :

  • Autorisez uniquement les instances Azure SQL Server :

    1. Autoriser *.database.windows.net*
    2. Refuser *
  • Autorisez uniquement une plage d’adresses IP spécifique : (notez que les adresses IP qui ne sont pas autorisées peuvent toujours être saisies par le créateur au format <machine_name\named_instance>.)

    1. Autoriser 11.22.33*
    2. Refuser *

Dataverse

Les points de terminaison Dataverse sont représentés par l’ID d’organisation, par exemple, 7b97cd5c-ce38-4930-9497-eec2a95bf5f7. Notez que seul le connecteur Dataverse normal est actuellement dans la portée du filtrage de points de terminaison. Les connecteurs actuels Dataverse Dynamics et Dataverse ne sont pas dans la portée. De plus, l’instance locale de Dataverse (également appelée environnement actuel) ne peut jamais être bloquée pour une utilisation dans un environnement. Cela signifie que dans un environnement donné, les créateurs peuvent toujours accéder à l’environnement Dataverse actuel.

Par conséquent, une règle qui indique ce qui suit :

  1. Autoriser 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  2. Refuser *

Signifie en réalité :

  1. Autoriser Dataverse current environment
  2. Autoriser 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  3. Refuser *

Autoriser Dataverse current environment est toujours implicitement la première règle de la liste de filtrage de points de terminaison Dataverse pour un environnement donné.

Stockage Blob Azure

Les points de terminaison Stockage Blob Azure sont représentés par le nom du compte de stockage Azure.

SMTP

Les points de terminaison SMTP sont représentés au format <SMTP server address, port number>.

Voici un exemple de scénario :

  1. Refuser smtp.gmail.com,587
  2. Autoriser *

HTTP avec Microsoft Entra ID, Webhook HTTP et connecteurs HTTP

Les points de terminaison de tous les connecteurs HTTP sont représentés par un modèle d’URL. L’action Obtenir la ressource Web de HTTP avec le connecteur Microsoft Entra est hors de portée.

Voici un exemple de scénario :

Autorisez l’accès uniquement à la page d’abonnements Azure dans https://management.azure.com/.

  1. Autoriser https://management.azure.com/subscriptions*
  2. Refuser https://management.azure.com/*
  3. Refuser *

Prise en charge de PowerShell pour le filtrage du point de terminaison

Configurer les règles de filtrage du point de terminaison pour une stratégie

L’objet contenant les règles de filtrage du point de terminaison pour une stratégie est désigné ci-dessous comme les configurations de connecteur.

L’objet de configurations de connecteur a la structure suivante :

$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
        }
      ) 
    }
  ) 
}

Remarques

  • La dernière règle de chaque connecteur doit toujours être appliquée à l’URL *, pour garantir que toutes les URL sont couvertes par les règles.
  • La propriété de tri des règles pour chaque connecteur doit être renseignée avec les nombres 1 à N, N représentant le nombre de règles pour ce connecteur.

Récupérer les configurations de connecteur existantes pour une politique DLP

Get-PowerAppDlpPolicyConnectorConfigurations 

Créer des configurations de connecteur pour une politique DLP

New-PowerAppDlpPolicyConnectorConfigurations

Mettre à jour les configurations de connecteur pour une politique DLP

Set-PowerAppDlpPolicyConnectorConfigurations

Exemple

Objectif :

Pour le connecteur SQL Server :

  • Refuser la base de données « testdatabase » du serveur « myservername.database.windows.net »
  • Autoriser toutes les autres bases de données du serveur « myservername.database.windows.net »
  • Refuser tous les autres serveurs

Pour le connecteur SMTP :

  • Autoriser Gmail (adresse du serveur : smtp.gmail.com, port : 587)
  • Refuser toutes les autres adresses

Pour le connecteur HTTP :

  • Autoriser les points de terminaison https://mywebsite.com/allowedPath1 et https://mywebsite.com/allowedPath2
  • Refuser toutes les autres URL

Note

Dans l’applet de commande suivante, la valeur PolicyName fait référence au GUID unique. Récupérez le GUID DLP en exécutant l’applet de commande 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