我想使用 Azure API 管理来向第三方开发者公开我们现有的API。 Azure API 管理提供了一个开发人员门户,第三方可以在其中登录并获取订阅 key 。然后,订阅 key 应该作为查询字符串参数或与 POST 参数一起随每个请求一起传递。
这似乎是一个问题,因为如果有人能够拦截 HTTP 流量,他们就有可能轻松访问此 key 。常见的机制是使用客户端 key 生成请求的 HMAC 并将其与请求一起发送,以确保请求的完整性和真实性,并且不会将客户端 key 与请求一起发送。
是否可以在 Azure API 管理上启用基于 HMAC 的完整性检查?
此外,是否可以配置 Azure API 管理以使用 HMAC 发回响应,以便客户端也可以验证响应是否来自可靠的来源?
最佳答案
关于计算消息身份验证代码,您希望使用什么作为哈希函数的输入 - 只是 URL、整个正文还是其他内容?
或者,您可以使用客户端证书身份验证策略来增强安全性,但我知道它并不是 HMAC 的真正替代品: https://msdn.microsoft.com/en-us/library/azure/061702a7-3a78-472b-a54a-f3b1e332490d#ClientCertificate
关于Azure API 管理和 HMAC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26640489/