我想使用 Azure API 管理将我们现有的 API 公开给第三方开发人员。 Azure API管理提供了一个开发人员门户,第三方可以登录并获取订阅密钥。然后,订阅密钥应与每个请求一起作为查询字符串参数传递,或与 POST 参数一起传递。
这似乎是一个问题,因为如果有人可以拦截 HTTP 流量,则有可能轻松访问此密钥。常见的机制是使用客户端秘密生成请求的HMAC并将其与请求一起发送以确保请求的完整性和真实性,而不是与请求一起发送客户端秘密。
是否可以在Azure API Management上启用基于 HMAC 的完整性检查?
还可以配置 Azure API 管理以使用HMAC发回响应,以便客户端也可以验证响应是否来自可靠的来源?
答案 0 :(得分:1)
关于计算消息认证码的问题,您想将什么用作散列函数的输入 - 只是URL,整个身体,还有其他什么?
或者,您可以使用客户端认证身份验证策略来增加安全性,但我知道它不是HMAC的真正替代品: https://msdn.microsoft.com/en-us/library/azure/061702a7-3a78-472b-a54a-f3b1e332490d#ClientCertificate
答案 1 :(得分:0)
https。