このドキュメントhttps://docs.microsoft.com/en-us/graph/api/trustframework-に従って、グラフ 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 ステータスが返されます。
{
"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/issues/67
Microsoft.Graph nuget パッケージ (4.18.0) の最新バージョンをインストールしようとしましたが、ここから C# の例をたどることができませんhttps://docs.microsoft.com/en-us/graph/api/trustframework- 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への 2 回目の呼び出しを行うことができます。 /{id}/uploadSecretを使用して、キーを ketset に追加します。しかし、これを行うと、2 つのポリシー キーが作成され、そのうちの 1 つは名前に .bak 拡張子が付きます。
なので質問が多いです
- キー配列内のキーを使用して Graph API を呼び出すときに、何か問題がありますか?
- GraphServiceClient C# クラスの nuget パッケージがありませんか? もしそうなら、どこでそれらを見つけることができますか?
- 空のキーセットを作成した後、別の API 呼び出しでキーを追加しようとしたときに、2 番目のポリシー キー (.bak ファイル) が表示されないようにするにはどうすればよいですか?
これらのアプローチの少なくとも 1 つを達成するのを手伝ってくれたら、事前に感謝します。