在Azure API管理中只传递1个标头而不是Authorization和Ocp-Apim-Subscription-K



我有几个APIAzure API管理. 我需要Azure检查有效的订阅,但同时我需要一些头值的授权和身份验证。现在客户端带来了OAuth 2.0必须存在的要求。现在我们有一个订阅密钥(Ocp-Apim-Subscription-Key)的标头,我需要的2个标头(如LocationCode,ApplicationKey)和1个授权标头(来自AD的Bearer token)。

我需要一个解决方案,只有一个头,所有这些必须从它派生。谁有什么建议,如何实现它?

我一直尝试到现在是我已经从我的代码生成一个JWT,并添加订阅键,和其他头到它,但我不能传递订阅键。我不是政策编辑专家但如果有人能帮助,那么这可能是可以实现的。

我们可以添加一些自定义头到OAuth访问令牌,可以从Azure AD与应用程序注册生成吗?

提前感谢!!

您可以在JWT中包含LocationCodeApplicationKey作为自定义声明(参考这篇文章,它很好地涵盖了这些步骤)。

但是订阅键必须在header或查询字符串中,APIM才能考虑它。所以,你可以用这种方法把这个头从四个减少到两个。

将其简化为一个的一种方法是将SubscriptionKey也作为声明,但有一个代理(也可以是另一个APIM操作),该代理将从声明中提取密钥,然后调用需要它的实际API。但是考虑到订阅密钥是一个秘密,这是不可取的。

相关内容

最新更新