Настройка Интернет-доступ Microsoft Entra с помощью API Microsoft Graph

Интернет-доступ Microsoft Entra предоставляет решение для безопасного веб-шлюза (SWG) на основе удостоверений для приложений SaaS (программное обеспечение как услуга) и другого интернет-трафика. Администраторы используют Интернет-доступ Microsoft Entra для защиты пользователей, устройств и данных из широкого ландшафта угроз в Интернете с помощью лучших в своем классе элементов управления безопасностью и видимости через журналы трафика. Глубоко интегрированная с Microsoft Entra ID условным доступом, SWG Майкрософт ориентирована на идентификацию, что упрощает ИТ-администраторам управление политикой своей организации в одном ядре.

В этом руководстве описано, как программно настроить Интернет-доступ Microsoft Entra с помощью API доступа к сети Microsoft Graph. Вы:

  • Создайте политики фильтрации веб-содержимого, чтобы разрешить или заблокировать доступ к заданным назначениям.
  • Выравнивание политик фильтрации веб-содержимого с политиками условного доступа с помощью контейнера профиля фильтрации, также известного как профиль безопасности.

Важно!

Некоторые операции API в этом руководстве используют конечную точку beta .

Предварительные условия

Чтобы завершить работу с этим руководством, вам потребуется:

  • Клиент Microsoft Entra с лицензией Microsoft Entra Suite.
  • Клиент API, например Graph, Обозреватель с учетной записью с поддерживаемыми ролями администратора. Следующие Microsoft Entra роли являются наименее привилегированными для операций, описанных в этом руководстве:
    • Глобальный администратор безопасного доступа для настройки политик фильтрации веб-содержимого и профилей фильтрации.
    • Администратор условного доступа для настройки политик условного доступа.
  • Делегированные разрешения: NetworkAccess.Read.All, NetworkAccess.ReadWrite.All и Policy.ReadWrite.ConditionalAccess
  • Тестового пользователя, назначаемого политике условного доступа.
  • Клиент глобального безопасного доступа (GSA), развернутый на устройствах вашей организации.

Шаг 1. Включение переадресации трафика доступа к Интернету

Прежде чем настраивать политики фильтрации Интернет-доступ Microsoft Entra, начните с развертывания клиента глобального безопасного доступа (GSA) на устройствах вашей организации. Затем начните перенаправление трафика в пограничные расположения GSA, включив профиль переадресации доступа к Интернету.

Шаг 1.1. Получение профиля переадресации трафика через Интернет

Запишите идентификатор профиля для последующего использования в этом руководстве.

Запрос

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

Отклик

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"
  }
}

Шаг 1.2. Включение состояния профиля переадресации доступа к Интернету

Запрос возвращает 204 No Content ответ.

Запрос

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

{
  "state": "enabled"
}

Шаг 2. Создание политики фильтрации веб-содержимого и профиля безопасности

Чтобы настроить политики в Интернет-доступ Microsoft Entra, сначала необходимо создать политику фильтрации, которая представляет собой коллекцию правил, управляющих доступом к назначениям, таким как веб-категории и полные доменные имена (FQDN). Например, можно создать политику фильтрации с правилами, которые блокируют доступ к категории искусственного интеллекта и отдельным полным доменным именам. Затем политики фильтрации упорядочиваются в профиль безопасности, на который можно ориентироваться с помощью политик условного доступа.

Шаг 2.1. Создание политики фильтрации веб-содержимого

В этом примере создается политика фильтрации с правилами, которые блокируют доступ к категории "Искусственный интеллект" и полные доменные имена для bing.com. После создания этой политики запишите идентификатор политики фильтрации для связывания в профиле фильтрации.

Запрос

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"
}

Отклик

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"
}

Шаг 2.2. Изменение или обновление политики фильтрации веб-содержимого

После создания политики фильтрации ее можно изменить или обновить программным способом. Вы можете добавить в политику новые правила, отправив запрос POST или обновив назначения в существующих правилах с помощью запроса PATCH. Любое из этих изменений позволяет настраивать политики фильтрации по мере изменения потребностей вашей организации, например блокировать дополнительные категории или домены или изменять существующие правила.

В этом примере вы используете запрос PATCH для добавления назначения в правило, созданное на шаге 2.1.

Запрос

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"
    }
  ]
}

Отклик

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"
    }
  ]
}

Шаг 2.3. Создание профиля фильтрации или профиля безопасности

Создайте фильтр или профиль безопасности для хранения политик и нацеливания на него в управлении сеансом условного доступа. После создания профиля обратите внимание на идентификатор профиля фильтрации для последующего использования в политике условного доступа.

Запрос

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

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

Отклик

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"
}

Запрос

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"
}

Отклик

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"
    }
}

Чтобы применить профиль фильтрации, необходимо связать его с политикой условного доступа (ЦС). Это делает содержимое профиля фильтрации пользователем и контекстом. На этом шаге вы создадите политику ЦС со следующими параметрами:

  • Нацелите его на пользователя с идентификатором 00aa00aa-bb11-cc22-dd33-44ee44ee44ee и приложением "Все интернет-ресурсы с глобальным защищенным доступом" с appId5dc48733-b5df-475c-a49b-fa307ef00853.
  • Настройте элемент управления сеансом с идентификатором globalSecureAccessFilteringProfiledddddddd-9999-0000-1111-eeeeeeeeeeee.

Запрос

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"
}

Отклик

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

Заключение

Теперь, когда вы настроили профиль безопасности или профиль фильтрации, блокирующий искусственный интеллект и bing.com для примера пользователя, этот пользователь заблокирован для доступа к этим сайтам.