Configurer Accès Internet Microsoft Entra à l’aide des API Microsoft Graph

Accès Internet Microsoft Entra fournit une solution de passerelle web sécurisée (SWG) centrée sur l’identité pour les applications SaaS (Software as a Service) et d’autres trafics Internet. Les administrateurs utilisent Accès Internet Microsoft Entra pour protéger les utilisateurs, les appareils et les données du vaste paysage des menaces d’Internet avec des contrôles de sécurité et une visibilité de premier ordre grâce aux journaux du trafic. Profondément intégré à l’accès conditionnel Microsoft Entra ID, le SWG de Microsoft est centré sur l’identité, ce qui permet aux administrateurs informatiques de gérer facilement la stratégie de leur organization dans un seul moteur.

Dans ce tutoriel, vous allez apprendre à configurer Accès Internet Microsoft Entra par programmation à l’aide des API d’accès réseau Microsoft Graph. Vous:

  • Créez des stratégies de filtrage de contenu web pour autoriser ou bloquer l’accès à des destinations données.
  • Alignez les stratégies de filtrage de contenu web sur les stratégies d’accès conditionnel via un conteneur de profil de filtrage, également appelé profil de sécurité.

Importante

Certaines opérations d’API de ce didacticiel utilisent le point de beta terminaison.

Configuration requise

Pour suivre ce didacticiel, vous avez besoin des éléments suivants :

  • Locataire Microsoft Entra avec la licence Suite Microsoft Entra.
  • Un client API tel que Graph Explorer avec un compte disposant des rôles d’administrateur pris en charge. Les rôles Microsoft Entra suivants sont les moins privilégiés pour les opérations de ce didacticiel :
    • Administrateur global de l’accès sécurisé pour la configuration des stratégies de filtrage de contenu web et des profils de filtrage.
    • Administrateur de l’accès conditionnel pour la configuration des stratégies d’accès conditionnel.
  • Autorisations déléguées : NetworkAccess.Read.All, NetworkAccess.ReadWrite.All et Policy.ReadWrite.ConditionalAccess
  • Utilisateur de test à affecter à la stratégie d’accès conditionnel.
  • Le client Global Secure Access (GSA) déployé sur les appareils de votre organization.

Étape 1 : Activer le transfert du trafic d’accès à Internet

Avant de configurer Accès Internet Microsoft Entra stratégies de filtrage, commencez par déployer le client Global Secure Access (GSA) sur les appareils de votre organization. Commencez ensuite à transférer le trafic vers les emplacements de périphérie GSA en activant le profil de transfert Accès Internet.

Étape 1.1 : Récupérer le profil de transfert du trafic d’accès à Internet

Enregistrez l’ID du profil pour l’utiliser plus loin dans ce tutoriel.

Demande

GET https://graph.microsoft.com/beta/networkAccess/forwardingProfiles?$filter=trafficForwardingType eq 'internet'

Réponse

HTTP/1.1 200 OK
Content-type: application/json

{
  "trafficForwardingType": "internet",
  "priority": 2,
  "id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
  "name": "Internet traffic forwarding profile",
  "description": "Default traffic forwarding profile for Internet traffic acquisition. Assign the profile to client or branch offices to acquire Internet traffic for Zero Trust Network Access.Internet traffic forwarding profile will exclude all endpoints defined in Microsoft 365 traffic forwarding profile.",
  "state": "enabled",
  "version": "1.0.0",
  "lastModifiedDateTime": "2025-01-14T13:11:57.9295327Z",
  "associations": [],
  "servicePrincipal": {
    "appId": "00001111-aaaa-2222-bbbb-3333cccc4444",
    "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  }
}

Étape 1.2 : Activer l’état du profil de transfert d’accès à Internet

La requête retourne une 204 No Content réponse.

Demande

PATCH https://graph.microsoft.com/beta/networkAccess/forwardingProfiles/bbbbbbbb-1111-2222-3333-cccccccccccc
Content-type: application/json

{
  "state": "enabled"
}

Étape 2 : Créer une stratégie de filtrage de contenu web et un profil de sécurité

Pour configurer des stratégies dans Accès Internet Microsoft Entra, vous devez d’abord créer une stratégie de filtrage, qui est une collection de règles régissant l’accès aux destinations telles que les catégories web et les noms de domaine complets (FQDN). Par exemple, vous pouvez créer une stratégie de filtrage avec des règles qui bloquent l’accès à la catégorie Intelligence artificielle et aux FQDN individuels. Ensuite, vous organisez les stratégies de filtrage dans un profil de sécurité que vous pouvez cibler avec des stratégies d’accès conditionnel.

Étape 2.1 : Créer une stratégie de filtrage de contenu web

Dans cet exemple, vous créez une stratégie de filtrage avec des règles qui bloquent l’accès à la catégorie « Intelligence artificielle » et aux noms de domaine complets pour bing.com. Une fois cette stratégie créée, notez l’ID de stratégie de filtrage pour la liaison dans le profil de filtrage.

Demande

POST https://graph.microsoft.com/beta/networkaccess/filteringPolicies
Content-type: application/json

{
  "name": "AI and Bing",
  "policyRules": [
    {
      "@odata.type": "#microsoft.graph.networkaccess.webCategoryFilteringRule",
      "name": "AI",
      "ruleType": "webCategory",
      "destinations": [
        {
          "@odata.type": "#microsoft.graph.networkaccess.webCategory",
          "name": "ArtificialIntelligence"
        }
      ]
    },
    {
      "@odata.type": "#microsoft.graph.networkaccess.fqdnFilteringRule",
      "name": "bing FQDNs",
      "ruleType": "fqdn",
      "destinations": [
        {
          "@odata.type": "#microsoft.graph.networkaccess.fqdn",
          "value": "bing.com"
        },
        {
          "@odata.type": "#microsoft.graph.networkaccess.fqdn",
          "value": "*.bing.com"
        }
      ]
    }
  ],
  "action": "block"
}

Réponse

HTTP/1.1 201 Created
Content-type: application/json

{
  "id": "cccccccc-2222-3333-4444-dddddddddddd",
  "name": "AI and Bing",
  "description": null,
  "version": "1.0.0",
  "lastModifiedDateTime": "2025-02-05T18:10:28.9760687Z",
  "createdDateTime": "2025-02-05T18:10:27Z",
  "action": "block"
}

Étape 2.2 : Modifier ou mettre à jour la stratégie de filtrage de contenu web

Après avoir créé une stratégie de filtrage, vous pouvez la modifier ou la mettre à jour par programmation. Vous pouvez ajouter de nouvelles règles à la stratégie en envoyant une requête POST ou mettre à jour des destinations dans des règles existantes à l’aide d’une requête PATCH. L’une ou l’autre de ces modifications vous permet d’ajuster les stratégies de filtrage à mesure que les besoins de votre organization changent, par exemple en bloquant d’autres catégories ou domaines, ou en modifiant des règles existantes.

Dans cet exemple, vous utilisez une requête PATCH pour ajouter une destination à la règle créée à l’étape 2.1.

Demande

POST https://graph.microsoft.com/beta/networkaccess/filteringPolicies('cccccccc-2222-3333-4444-dddddddddddd')/policyRules('<policyRuleId>')
Content-type: application/json

{
  "@odata.type": "#microsoft.graph.networkaccess.fqdnFilteringRule",
  "destinations": [
    {
      "@odata.type": "#microsoft.graph.networkaccess.fqdn",
      "value": "bing.com"
    },
    {
      "@odata.type": "#microsoft.graph.networkaccess.fqdn",
      "value": "*.bing.com"
    },
    {
      "@odata.type": "#microsoft.graph.networkaccess.fqdn",
      "value": "bing.co.uk"
    }
  ]
}

Réponse

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.type": "#microsoft.graph.networkaccess.fqdnFilteringRule",
  "id": "cccccccc-2222-3333-4444-dddddddddddd",
  "name": "bing FQDNs",
  "ruleType": "fqdn",
  "destinations": [
    {
        "@odata.type": "#microsoft.graph.networkaccess.fqdn",
        "value": "google.co.uk"
    },
    {
        "@odata.type": "#microsoft.graph.networkaccess.fqdn",
        "value": "google.com"
    },
    {
        "@odata.type": "#microsoft.graph.networkaccess.fqdn",
        "value": "bing.com"
    }
  ]
}

Étape 2.3 : Créer un profil de filtrage ou un profil de sécurité

Créez un profil de filtrage ou de sécurité pour contenir vos stratégies et le cibler dans le contrôle de session d’accès conditionnel. Après avoir créé le profil, notez l’ID de profil de filtrage pour une utilisation ultérieure dans la stratégie d’accès conditionnel.

Demande

POST https://graph.microsoft.com/beta/networkaccess/filteringProfiles
Content-type: application/json

{
  "name": "Security Profile for UserA",
  "state": "enabled",
  "priority": 100,
  "policies": []
}

Réponse

HTTP/1.1 201 Created
Content-type: application/json

{
  "priority": 100,
  "createdDateTime": "2025-02-05T18:27:31Z",
  "id": "dddddddd-3333-4444-5555-eeeeeeeeeeee",
  "name": "Security Profile for UserA",
  "description": null,
  "state": "enabled",
  "version": "1.0.0",
  "lastModifiedDateTime": "2025-02-05T18:27:31.660891Z"
}

Demande

POST https://graph.microsoft.com/beta/networkaccess/filteringProfiles/dddddddd-3333-4444-5555-eeeeeeeeeeee/policies
Content-type: application/json

{
  "priority": 100,
    "state": "enabled",
    "@odata.type": "#microsoft.graph.networkaccess.filteringPolicyLink",
    "loggingState": "enabled",
    "policy": {
        "id": "cccccccc-2222-3333-4444-dddddddddddd",
        "@odata.type": "#microsoft.graph.networkaccess.filteringPolicy"
}

Réponse

HTTP/1.1 201 Created
Content-type: application/json

{
    "id": "dddddddd-9999-0000-1111-eeeeeeeeeeee",
    "priority": 100,
    "state": "enabled",
    "version": "1.0.0",
    "loggingState": "enabled",
    "lastModifiedDateTime": "2025-02-05T18:31:32Z",
    "createdDateTime": "2025-02-05T18:31:32Z",
    "policy": {
        "@odata.type": "#microsoft.graph.networkaccess.filteringPolicy",
        "id": "cccccccc-2222-3333-4444-dddddddddddd",
        "name": "AI and Bing",
        "description": null,
        "version": "1.0.0",
        "lastModifiedDateTime": "2025-02-05T18:15:17.0759384Z",
        "createdDateTime": "2025-02-05T18:15:16Z",
        "action": "block"
    }
}

Pour appliquer votre profil de filtrage, vous devez le lier à une stratégie d’accès conditionnel (CA). Cela rend le contenu de votre profil de filtrage sensible à l’utilisateur et au contexte. Dans cette étape, vous créez une stratégie d’autorité de certification avec les paramètres suivants :

  • Ciblez-la sur un utilisateur avec l’ID 00aa00aa-bb11-cc22-dd33-44ee44ee44ee et l’application « Toutes les ressources Internet avec accès sécurisé global » avec appId5dc48733-b5df-475c-a49b-fa307ef00853.
  • Configurez un contrôle de session avec l’ID dddddddd-9999-0000-1111-eeeeeeeeeeeeglobalSecureAccessFilteringProfile.

Demande

POST https://graph.microsoft.com/beta/identity/conditionalAccess/policies
Content-type: application/json

{
    "conditions": {
        "applications": {
            "includeApplications": [
                "5dc48733-b5df-475c-a49b-fa307ef00853"
            ]
        },
        "users": {
            "includeUsers": [
                "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
            ]
        }
    },
    "displayName": "UserA Access to AI and Bing",
    "sessionControls": {
        "globalSecureAccessFilteringProfile": {
            "profileId": "dddddddd-9999-0000-1111-eeeeeeeeeeee",
            "isEnabled": true
        }
    },
    "state": "enabled"
}

Réponse

HTTP/1.1 201 Created
Content-type: application/json

{
    "id": "9c5fbb22-30ff-4a17-9b83-ea9fbf2912a9",
    "templateId": null,
    "displayName": "UserA Access to AI and Bing",
    "createdDateTime": "2025-02-05T18:58:32.7622998Z",
    "modifiedDateTime": null,
    "state": "enabled",
    "grantControls": null,
    "partialEnablementStrategy": null,
    "conditions": {
        "userRiskLevels": [],
        "signInRiskLevels": [],
        "clientAppTypes": [
            "all"
        ],
        "platforms": null,
        "locations": null,
        "times": null,
        "deviceStates": null,
        "devices": null,
        "clientApplications": null,
        "applications": {
            "includeApplications": [
                "5dc48733-b5df-475c-a49b-fa307ef00853"
            ],
            "excludeApplications": [],
            "includeUserActions": [],
            "includeAuthenticationContextClassReferences": [],
            "applicationFilter": null
        },
        "users": {
            "includeUsers": [
                "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
            ],
            "excludeUsers": [],
            "includeGroups": [],
            "excludeGroups": [],
            "includeRoles": [],
            "excludeRoles": [],
            "includeGuestsOrExternalUsers": null,
            "excludeGuestsOrExternalUsers": null
        }
    },
    "sessionControls": {
        "disableResilienceDefaults": null,
        "applicationEnforcedRestrictions": null,
        "cloudAppSecurity": null,
        "signInFrequency": null,
        "persistentBrowser": null,
        "continuousAccessEvaluation": null,
        "secureSignInSession": null,
        "globalSecureAccessFilteringProfile": {
            "profileId": "dddddddd-9999-0000-1111-eeeeeeeeeeee",
            "isEnabled": true
        }
    }
}

Conclusion

Maintenant que vous avez configuré un profil de sécurité ou un profil de filtrage bloquant l’intelligence artificielle et bing.com que pour l’exemple d’utilisateur, cet utilisateur ne peut pas accéder à ces sites.