相关疑难解决方法(0)

IdentityServer4使用ApiKey或Basic身份验证直接到API

我正在使用 IdentityServer4 让我的客户通过 JavaScript 登录并访问网页和 api,并且运行良好。然而,有一个新的要求,而不是使用用户名和密码从身份服务器获取访问令牌,然后使用它通过承载身份验证访问 api...我需要使用“Basic”直接调用 api身份验证标头和 api 将与身份服务器确认身份。类似于下面用于访问 ZenDesk api 的代码...

\n
        using (var client = new HttpClient())\n        {\n            var username = _configuration["ZenDesk:username"];\n            var password = _configuration["ZenDesk:password"];\n            var token = Convert.ToBase64String(Encoding.ASCII.GetBytes(username + ":" + password));\n            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", token);\n\n            var response = client.PostAsync("https://...\n
Run Code Online (Sandbox Code Playgroud)\n

对我如何实施这个有任何帮助吗?IdentityServer4 中是否内置了任何可以适应这种方法的东西?我将 .Net Core 3.1 用于 api 服务器和身份服务器。

\n

另一种(看似常见)方法是为每个用户生成一个 api 密钥,然后允许用户像这样调用 api...

\n
using (var client = new HttpClient())\n{\n    client.BaseAddress = new Uri(URL_HOST_API);\n    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("ApiKey", "123456456123456789");\n\xe2\x80\xa6\n}\n
Run Code Online (Sandbox Code Playgroud)\n

想法?

\n

c# basic-authentication api-key identityserver4

5
推荐指数
1
解决办法
4650
查看次数