次の方法で共有


GraphConnectorNotificationPlugin

Teams 管理 Center (TAC) で Microsoft Graph コネクタを有効または無効にするときの通知をシミュレートします。 外部接続を作成および削除するための要求を検証します。

構成された通知要求を発行するには、Dev Proxy が実行されているコマンド プロンプト セッションで を押 w します。

コマンド プロンプトが 2 に分割されているスクリーンショット。上部には、シミュレートされた Teams 管理 Center 通知を発行する開発プロキシが示されています。下部には、通知を受信する Microsoft Graph コネクタが表示されています。

通知要求の発行

GraphConnectorNotificationPlugin 、TAC からの通知を MockRequestPlugins シミュレートするための追加機能を備えた を拡張します。

トークン 説明
@dynamic.validationToken 通知の信頼性を検証するための JWT トークン。 開発プロキシは、証明書によって署名された有効な JWT トークンに Dev Proxy CA 置き換えます。

通知の処理と Graph コネクタ要求の発行の検証

通知要求をシミュレートする横に、 GraphConnectorNotificationPlugin 通知 API が通知を適切に処理し、正しい Microsoft Graph 要求を発行するかどうかを検証します。

TAC 通知を処理するために、プラグインは API が本文なしで 202 Accepted 応答を送信するかどうかを確認します。 さらに、プラグインは、Microsoft Graph エンドポイントへの POST 要求と DELETE 要求を /external/connections/* 検査します。 要求に、通知で指定されたチケットを GraphConnectors-Ticket 含むヘッダーが含まれているかどうかを確認します。 いずれかのチェックが失敗した場合、プラグインはエラーをログに記録します。

プラグイン インスタンスの定義

{
  "name": "GraphConnectorNotificationPlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
  "configSection": "graphConnectorNotificationEnabled"
}

構成の例

{
  "graphConnectorNotificationEnabled": {
    "mockFile": "graph-connector-notification-enabled.json",
    "tenant": "fa15d692-e9c7-4460-a743-29f29522229",
    "audience": "00001111-aaaa-2222-bbbb-3333cccc4444"
  }
}

構成プロパティ

プロパティ 説明 Default 必須
audience Microsoft Graph コネクタが通知要求の認証に使用するMicrosoft Entra アプリ登録 ID empty Yes
mockFile モック要求を含むファイルへのパス mock-request.json Yes
tenant Microsoft Graph コネクタが外部接続を作成するテナント ID empty Yes

コマンド ライン オプション

なし

モック要求ファイルの例

顧客に関する情報を得るための CRUD API を定義する API ファイルの例をいくつか次に示します。

Microsoft Graph コネクタの TAC 通知を有効にする

ユーザーが Microsoft Graph コネクタを有効にしたときに Teams 管理 センターが送信する通知の例を次に示します。

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.16.0/mockrequestplugin.schema.json",
  "request": {
    "url": "http://localhost:3000/api/notification",
    "method": "POST",
    "body": {
      "value": [
        {
          "changeType": "updated",
          "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
          "resource": "external",
          "clientState": null,
          "resourceData": {
            "@odata.type": "#Microsoft.Graph.connector",
            "@odata.id": "external",
            "id": "35177924-33fc-444d-bd51-f059ce385ec2",
            "state": "enabled",
            "connectorsTicket":"eyJhbGciOiJIUzI1"
          },
          "subscriptionExpirationDateTime": "2021-06-26T12:40:26.4436785-07:00",
          "tenantId": "fa15d692-e9c7-4460-a743-29f29522229"
        }
      ],
      "validationTokens": [ "@dynamic.validationToken" ]
    }
  }
}