我在Azure APIM上实现了许多受订阅密钥保护的API,它们都运行良好。
不过,我确实有一个限制,因为客户端应用程序无法修改(*(,我只能将URL设置为参数(即:没有额外的头(。我通过实现一个小型代理应用程序来克服这一限制,客户可以在本地部署该应用程序,并添加订阅密钥。换句话说,客户端应用程序连接到本地URL,然后代理调用API。这也很好。
然而,我想为潜在客户提供一个更简单的评估,而无需部署代理。我想我可以为每个客户提供他们自己的租户URL(例如:guid.mydomain.com(,然后在Azure APIM上使用这些信息来查找auth密钥并调用后端API。这是我想不通的部分。
我正在寻找替代设计理念或如何使其发挥作用的技巧。
知道吗?
Marco
(*(它属于另一家公司。
对于那些可能感兴趣的人,我通过添加一组新的azure函数和子域的自定义通配符证书来解决这个问题。
在azure函数中,域和子域信息可以在HttpRequest.Host属性中找到。在我的情况下,子域等同于租户id,然后我可以使用它来检索订阅密钥并调用APIM API。