GraphConnectorNotificationPlugin
在 Teams 管理員 Center (TAC) 中啟用或停用 Microsoft Graph 連接器時,模擬通知。 驗證建立和刪除外部連線的要求。
若要發出已設定的通知要求,請在執行 Dev Proxy 的命令提示字元工作階段中按 w
。
發出通知要求
會 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" ]
}
}
}