GraphConnectorNotificationPlugin
在 Teams 管理中心 (TAC) 中启用或禁用 Microsoft Graph 连接器时模拟通知。 验证创建和删除外部连接的请求。
若要发出配置的通知请求,请在运行开发代理的命令提示符会话中按 w
。
发出通知请求
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" ]
}
}
}