次の方法で共有


GraphConnectorNotificationPlugin

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

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

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

通知要求の発行

GraphConnectorNotificationPlugin では、TAC からの通知をシミュレートする追加機能を使用して MockRequestPlugins を拡張します。

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

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

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

TAC 通知を処理するために、プラグインは、API が本文なしで 202 Accepted 応答を送信するかどうかを確認します。 さらに、プラグインは、/external/connections/* Microsoft Graph エンドポイントに対する POST 要求と DELETE 要求を検査します。 要求に、通知で指定されたチケットを含む 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"
  }
}

構成プロパティ

財産 形容 デフォルト 必須
audience Microsoft Graph コネクタが通知要求の認証に使用する Microsoft Entra アプリ登録 ID はい
mockFile モック要求を含むファイルへのパス mock-request.json はい
tenant Microsoft Graph コネクタが外部接続を作成するテナント ID はい

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

何一つ

モック要求ファイルの例

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

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

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

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.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" ]
    }
  }
}