GraphConnectorNotificationPlugin

在 Teams 管理中心 (TAC) 中启用或禁用 Microsoft Graph 连接器时模拟通知。 验证创建和删除外部连接的请求。

若要发出配置的通知请求,请在运行开发代理的命令提示符会话中按 w

两个命令提示符拆分的屏幕截图。顶部部分显示开发人员代理发出模拟 Teams 管理中心通知。底部部分显示接收通知的 Microsoft Graph 连接器。

发出通知请求

GraphConnectorNotificationPlugin 扩展了具有额外功能的 MockRequestPlugins,以模拟来自 TAC 的通知。

令 牌 描述
@dynamic.validationToken 用于验证通知真实性的 JWT 令牌。 开发代理将其替换为由 Dev Proxy CA 证书签名的有效 JWT 令牌。

验证处理通知和发出 Graph 连接器请求

在模拟通知请求旁边,GraphConnectorNotificationPlugin 验证通知 API 是否正确处理通知并Microsoft Graph 请求更正问题。

为了处理 TAC 通知,插件会检查 API 是否在没有正文的情况下发送 202 接受的响应。 此外,插件会检查对 /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 通知

下面是 Teams 管理中心在用户启用 Microsoft Graph 连接器时发送的通知示例。

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