0

我正在开发一个控制台应用程序,该应用程序使用本文档https://docs.microsoft.com/en-us/graph/api/trustframework-之后的 Graph API 上传自定义策略(该部分正在工作)和相关策略密钥post-keysets?view=graph-rest-beta&tabs=http#example-2-create-a-keyset-with-a-key

要求:

URL: https://graph.microsoft.com/beta/trustFramework/keySets
Headers: Content-Type = application/json, Authorization = Bearer eyJ0e...Mca9g
Payload: {
  "id":"Test3AADSecret",
  "keys":
  [
    {
      "use":"sig",
      "k":"A1B2C3D4E5F6G7H8I9J10K11L12M13N14O15P16Q17R18S19T20U21V22W23X24Y25Z26",
      "nbf":1644941414,
      "exp":4070908800
    }
  ]
}

如果我将 keys 属性设置为空数组,则该请求有效。但是,当我尝试在 keys 属性中包含一个键时(如上例所示),我得到 400 Bad Request status 与此响应负载一起返回

{
  "error":
  {
    "code":"AADB2C",
    "message":"The 'keySet' field is invalid in request. Please check the request body and parameters.",
    "innerError":
    {
      "correlationId":"ee3aa070-a5a7-4c52-96b7-f0a9471fba63",
      "date":"2022-02-15T16:27:36",
      "request-id":"ad5dba0f-595a-4f94-ade2-fec2357bcb55",
      "client-request-id":"ad5dba0f-595a-4f94-ade2-fec2357bcb55"
    }
  }
}

我可以在 github 上找到的唯一问题与使用 GraphServiceClient C# 类(而不是 Graph API)创建带有密钥的密钥集有关,并且该问题已关闭(已解决)https://github.com/microsoftgraph/msgraph-beta- sdk-dotnet/问题/67

我已经尝试安装最新版本的 Microsoft.Graph nuget 包(4.18.0),但我无法从这里https://docs.microsoft.com/en-us/graph/api/trustframework-遵循 C# 示例post-keysets?view=graph-rest-beta&tabs=csharp#request因为没有 TrustFrameworkKeySet 类并且 GraphServiceClient 不包含 TrustFramework 的定义。我尝试在 nuget 和 google 上搜索其他 nuget 包来填补这些空白,但我什么也没找到。

是的,我可以使用空键数组调用https://graph.microsoft.com/beta/trustFramework/keySets API,然后再次调用https://graph.microsoft.com/beta/trustFramework/keySets /{id}/uploadSecret将密钥添加到 ketset。但是当我这样做时,我最终得到了两个策略键,其中一个的名称具有 .bak 扩展名。

所以我有很多问题

  1. 使用键数组中的键调用 Graph API 时我做错了吗
  2. 我是否缺少 GraphServiceClient C# 类的 nuget 包。如果是这样,我在哪里可以找到它们?
  3. 在创建空密钥集后尝试在单独的 API 调用中添加密钥时,如何防止出现第二个策略密钥(.bak 文件)

如果您帮助我实现这些方法中的至少一种,请提前致谢。

4

0 回答 0