我可以使用Oauth代币作为OCP-Apim-Subscription-key的替代方案



我正在考虑使用Azure API管理为许多后端API提供一致的前端。

大多数API都使用OAuth 2.0应用程序流(客户端 客户端秘密,带有后端API检查索赔/范围(保护。这效果很好,但是当客户通过APIM使用这些API时,他们需要提供APIM订阅密钥 oauth 2.0令牌。我知道APIM订阅密钥用于将客户端识别为APIM(出于限制速率,日志记录等(,并且令牌用于后端身份验证/授权。

有什么方法可以将客户ID用作APIM订阅密钥的替代方法?也就是说,客户端不需要提供APIM订阅密钥,并且OAuth 2.0令牌身份用于所有APIM功能(例如,按客户端ID限制速率(。

不可能使用oauth代币来识别客户端,但是您可以将其用于限制速率和记录(类别(。首先创建不需要订阅的新产品,该产品中添加的任何API都可以匿名访问。为了反对您可以将validate-jwt策略放在该产品上以需要OAuth令牌并检查其索赔,或者如果您真的不在乎令牌内容,则只想知道它可以使用Check-Header Policy。

使用策略表达式您可以执行context.headers.getValueordEfault("授权"(。asjwt((将标题放在JWT对象模型中,检查其索赔,并以bage-limit by-y-keet和quota--每个客户端实施节流的策略。

为了使记录工作目前没有其他方法,而是要依靠日志到venthub策略并自己记录必要的信息。这确实意味着您需要维护EventHub实例和进一步的基础架构才能从中读取记录并将其存储在某个地方。有些更改正在扩大日志记录功能,这将使这更容易。

最新更新