共用方式為


GraphConnectorNotificationPlugin

在 Teams 管理員 Center (TAC) 中啟用或停用 Microsoft Graph 連接器時,模擬通知。 驗證建立和刪除外部連線的要求。

若要發出已設定的通知要求,請在執行 Dev Proxy 的命令提示字元工作階段中按 w

兩個命令提示字元分割的螢幕快照。頂端部分顯示開發人員 Proxy 發出仿真的Teams 管理員中心通知。底部部分顯示接收通知的 Microsoft Graph 連接器。

發出通知要求

GraphConnectorNotificationPlugin 使用額外的功能來擴充 MockRequestPlugins ,以模擬來自 TAC 的通知。

Token 描述
@dynamic.validationToken 用來驗證通知真確性的 JWT 令牌。 Dev Proxy 會以憑證簽署 Dev Proxy CA 的有效 JWT 令牌取代它。

驗證處理通知併發出 Graph 連接器要求

在模擬通知要求旁邊,會 GraphConnectorNotificationPlugin 驗證通知 API 是否正確處理通知,並發出正確的 Microsoft Graph 要求。

為了處理 TAC 通知,外掛程式會檢查 API 是否傳送 202 接受的回應,而不需本文。 此外,外掛程式會檢查對 Microsoft Graph 端點的 /external/connections/* 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 應用程式註冊標識碼 empty Yes
mockFile 包含模擬要求的檔案路徑 mock-request.json Yes
tenant Microsoft Graph 連接器建立外部連線的租用戶標識碼 empty Yes

命令列選項

模擬要求檔案範例

以下是數個 API 檔案範例,這些檔案會定義 CRUD 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" ]
    }
  }
}