我有兴趣为 web.api 创建 API 密钥并允许客户端使用 API 密钥而不是 web.api 提供的授权与 API 进行通信。
我希望多个客户端能够与 web.api 进行通信。我可以使用 api 密钥而不是创建用户名和密码,并允许客户端与客户端通信。
有这样的内置功能吗?
如果要实施它,您将如何解决?
我有兴趣为 web.api 创建 API 密钥并允许客户端使用 API 密钥而不是 web.api 提供的授权与 API 进行通信。
我希望多个客户端能够与 web.api 进行通信。我可以使用 api 密钥而不是创建用户名和密码,并允许客户端与客户端通信。
有这样的内置功能吗?
如果要实施它,您将如何解决?
您可以通过使用HMAC Authentication来实现。基本上,可能有一个名为ApiKey (apiKey, secretKey)的数据库表。每个客户端都有每个 Apikey 和密钥:
ApiKey 就像一个公钥,将通过 HTTP 发送(类似于用户名)。
密钥不是通过 HTTP 发送的,使用这个密钥来做 hmac 一些信息并将散列输出发送到服务器。从服务器端,根据公钥,您可以获得相关的密钥和哈希信息,以与哈希输出进行比较。
我已在以下位置发布了详细答案:如何保护 ASP.NET Web API
您可以在我的答案中通过 ApiKey 更改用户名和通过密钥更改哈希密码以映射您的想法。