首页 文章

我可以使用OAuth令牌作为Ocp-Apim-Subscription-Key的替代方案吗?

提问于
浏览
0

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

大多数API使用OAuth 2.0应用程序流(ClientID Client Secret,后端API检查声明/范围)进行保护 . 这很好用,但是当客户端通过APIM使用这些API时,他们需要提供APIM订阅密钥和OAuth 2.0令牌 . 我知道APIM订阅密钥用于将客户端标识到APIM(用于速率限制,日志记录等),并且令牌用于后端认证/授权 .

有没有办法将客户端ID用作APIM订阅密钥的替代方案?也就是说,客户端不需要提供APIM订阅密钥,并且OAuth 2.0令牌标识用于所有APIM特征(例如,通过客户端ID限制速率) .

1 回答

  • 1

    无法使用OAuth令牌来识别客户端,但您可以将其用于速率限制和日志记录(排序) . 通过创建不需要订阅的新产品,可以匿名访问添加到该产品的任何API . 为了反击你可以在该产品上放置validate-jwt策略以要求OAuth令牌并检查它的声明,或者如果你真的不关心令牌内容只是想知道它在那里你可以使用check-header策略 .

    使用策略表达式,您可以执行context.Headers.GetValueOrDefault(“Authorization”) . AsJwt()将提供的头解析为JWT对象模型,检查其声明,并在按键限制和按键配额中使用它每个客户端实施限制的策略 .

    为了使日志记录工作,目前没有其他方法可以依靠log-to-eventhub策略并自己记录必要的信息 . 这确实意味着您需要维护EventHub实例和更多基础设施以从中读取记录并将其存储在某处 . 一些变化正在扩大日志记录功能,这将使这更容易 .

相关问题