如何适当准备jsonwebkey以供API请求?

发布于 2025-01-25 04:52:07 字数 1760 浏览 2 评论 0原文

{
"client_name": "apk1",
"scopes": [
    "full"
],
"jwks": {
    "keys": [
        {
            "kty": "RSA",
            "e": "AQAB",
            "use": "sig",
            "kid": "xxxxxxxxxxxxxx",
            "alg": "RS512",
            "n": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        }
    ]
}}

API期望这样的JSON。谁能建议我如何正确交付JWK?我试图使用JSONWEBKEY类,但我不知道如何在JSON中获得上面的结构。

 var client = new RestClient("url");
        var request = new RestRequest("/auth/token", Method.Post);
        request.AddHeader("content-type", "application/json");
        request.AddHeader("Accept", "application/json");
        request.AddHeader("Authorization", "Bearer " + Authtoken);

        RSA rsa = RSA.Create(2048);
        var rs256 = new RS256Algorithm(rsa, rsa);

        //var token = GenerateToken(1);

        RSA rsa = RSA.Create(2048);
        var parameters = rsa.ExportParameters(true);
        var rsaSecurityKey = new RsaSecurityKey(parameters);
        var jwk = JsonWebKeyConverter.ConvertFromRSASecurityKey(rsaSecurityKey);

        request.AddJsonBody(new
        {
            client_name = "client_name",
            scopes = new[] { "full" },
            jwks = new { keys = new[] { jwk } }
        });

        var TaskResponse = client.ExecutePostAsync<CreateClientResponse>(request);
        TaskResponse.Wait();
{
"client_name": "apk1",
"scopes": [
    "full"
],
"jwks": {
    "keys": [
        {
            "kty": "RSA",
            "e": "AQAB",
            "use": "sig",
            "kid": "xxxxxxxxxxxxxx",
            "alg": "RS512",
            "n": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        }
    ]
}}

Api expects such json. Can anyone advise me on how to properly deliver jwks? I tried to use the JsonWebKey class but I have no idea how to get the structure like above in json.

 var client = new RestClient("url");
        var request = new RestRequest("/auth/token", Method.Post);
        request.AddHeader("content-type", "application/json");
        request.AddHeader("Accept", "application/json");
        request.AddHeader("Authorization", "Bearer " + Authtoken);

        RSA rsa = RSA.Create(2048);
        var rs256 = new RS256Algorithm(rsa, rsa);

        //var token = GenerateToken(1);

        RSA rsa = RSA.Create(2048);
        var parameters = rsa.ExportParameters(true);
        var rsaSecurityKey = new RsaSecurityKey(parameters);
        var jwk = JsonWebKeyConverter.ConvertFromRSASecurityKey(rsaSecurityKey);

        request.AddJsonBody(new
        {
            client_name = "client_name",
            scopes = new[] { "full" },
            jwks = new { keys = new[] { jwk } }
        });

        var TaskResponse = client.ExecutePostAsync<CreateClientResponse>(request);
        TaskResponse.Wait();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文