Microsoft Graph API を使用してMicrosoft Entra Internet Accessを構成する

Microsoft Entra Internet Accessは、サービスとしてのソフトウェア (SaaS) アプリケーションやその他のインターネット トラフィック用の ID 中心の Secure Web Gateway (SWG) ソリューションを提供します。 管理者は、Microsoft Entra Internet Accessを使用して、クラス最高のセキュリティ制御とトラフィック ログによる可視性を使用して、インターネットの広範な脅威環境からユーザー、デバイス、およびデータを保護します。 Microsoft Entra ID条件付きアクセスと深く統合された Microsoft の SWG は ID 中心であり、IT 管理者は 1 つのエンジンでorganizationのポリシーを簡単に管理できます。

このチュートリアルでは、Microsoft Graph ネットワーク アクセス API を使用してプログラムでMicrosoft Entra Internet Accessを構成する方法について説明します。 あなたが:

  • Web コンテンツ フィルタリング ポリシーを作成して、特定の宛先へのアクセスを許可またはブロックします。
  • Web コンテンツ フィルター ポリシーを、フィルター 処理プロファイル コンテナー (セキュリティ プロファイルとも呼ばれます) を使用して条件付きアクセス ポリシーに合わせます。

重要

このチュートリアルの一部の API 操作では、 beta エンドポイントを使用します。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • Microsoft Entra スイート ライセンスを持つMicrosoft Entra テナント。
  • Graph などの API クライアントは、サポートされている管理者ロールを持つアカウントでエクスプローラーします。 次のMicrosoft Entraロールは、このチュートリアルの操作の最小特権です。
    • Web コンテンツ フィルタリング ポリシーとフィルター プロファイルを構成するためのグローバル セキュリティで保護されたアクセス管理者。
    • 条件付きアクセス ポリシーを構成するための条件付きアクセス管理者。
  • 委任されたアクセス許可: NetworkAccess.Read.All、 NetworkAccess.ReadWrite.All、 Policy.ReadWrite.ConditionalAccess
  • 条件付きアクセス ポリシーに割り当てるテスト ユーザー。
  • organizationのデバイスにデプロイされたグローバル セキュリティで保護されたアクセス (GSA) クライアント。

手順 1: インターネット アクセス トラフィック転送を有効にする

Microsoft Entra Internet Accessフィルタリング ポリシーを構成する前に、まずグローバル セキュア アクセス (GSA) クライアントをorganizationのデバイスに展開します。 次に、インターネット アクセス転送プロファイルを有効にして、GSA エッジの場所へのトラフィックの転送を開始します。

手順 1.1: インターネット アクセス トラフィック転送プロファイルを取得する

このチュートリアルの後半で使用するために、プロファイルの ID を記録します。

要求

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: Web コンテンツ フィルタリング ポリシーとセキュリティ プロファイルを作成する

Microsoft Entra Internet Accessでポリシーを構成するには、まず、Web カテゴリや完全修飾ドメイン名 (FQDN) などの宛先へのアクセスを制御するルールのコレクションであるフィルター ポリシーを作成する必要があります。 たとえば、人工知能カテゴリと個々の FQDN へのアクセスをブロックするルールを含むフィルター ポリシーを作成できます。 次に、条件付きアクセス ポリシーを対象にできるセキュリティ プロファイルにフィルター ポリシーを整理します。

手順 2.1: Web コンテンツ フィルター ポリシーを作成する

この例では、"人工知能" カテゴリへのアクセスをブロックするルールと、 bing.comの FQDN を含むフィルター ポリシーを作成します。 このポリシーが作成されたら、フィルター 処理プロファイルでリンクするためのフィルターポリシー ID を書き留めます。

要求

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: Web コンテンツ フィルタリング ポリシーを編集または更新する

フィルター ポリシーを作成した後は、プログラムで編集または更新できます。 ポリシーに新しいルールを追加するには、PATCH 要求を使用して POST 要求を送信するか、既存のルールの宛先を更新します。 これらの変更のいずれかを使用すると、より多くのカテゴリやドメインのブロックや既存のルールの変更など、organizationのニーズの変化に応じてフィルターポリシーを調整できます。

この例では、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: フィルター処理プロファイルまたはセキュリティ プロファイルを作成する

フィルターまたはセキュリティ プロファイルを作成してポリシーを保持し、条件付きアクセス セッション制御で対象にします。 プロファイルを作成した後、条件付きアクセス ポリシーで後で使用するためにフィルター処理プロファイル ID をメモします。

要求

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

フィルター プロファイルを適用するには、条件付きアクセス (CA) ポリシーにリンクする必要があります。 これにより、フィルター処理プロファイルの内容がユーザーとコンテキストに対応します。 この手順では、次の設定を使用して CA ポリシーを作成します。

  • id 00aa00aa-bb11-cc22-dd33-44ee44ee44ee を持つユーザーと、 appId5dc48733-b5df-475c-a49b-fa307ef00853 を使用してアプリ "グローバル セキュリティで保護されたアクセスを持つすべてのインターネット リソース" を対象にします。
  • globalSecureAccessFilteringProfile ID dddddddd-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 をブロックするセキュリティ プロファイルまたはフィルター 処理プロファイルを構成したので、そのユーザーはそれらのサイトへのアクセスをブロックされます。