Web API创buildAPI密钥

我有兴趣为web.api创buildAPI密钥,并允许客户端使用API​​密钥与API通信,而不是授权web.api提供。

我想要多个客户端能够与web.api沟通。 而不是创build用户名和密码,我可以使用API​​密钥,并允许客户端与客户端进行通信。

有没有这样的内置function?

如果你想实施它,你会怎么做呢?

您可以通过使用HMACauthentication来实现。 基本上,可能有一个名为ApiKey(apiKey,secretKey)的数据库表。 每个客户端都有每个Apikey和密钥:

  1. ApiKey就像一个公钥,将通过HTTP发送(与用户名相似)。

  2. 秘密密钥不通过HTTP发送,使用这个秘密密钥来做hmac一些信息并发送散列输出到服务器。 从服务器端,基于公钥,可以得到相关的密钥和散列信息,与散列输出进行比较。

我已经发布了详细的答案: 如何保护ASP.NET Web API

您可以通过我的答案上的密钥更改用户名和ApiKey和哈希密码映射您的想法。