如何使用Azure API管理REST API从订阅键获取用户



在Azure API管理上,我想使用从代理传递到服务的订阅密钥来识别调用背后的用户。

我能找到的唯一解决方案是在primaryKey或secondaryKey上获取所有订阅和过滤,最终找到使用此REST API的用户,但它将太长,因为我将有很多订阅。

https://xxx.management.azure-api.net/subscriptions?api-version=2014-02-14

当我激活跟踪以查看Echo API上的API管理如何处理消息时,我可以看到代理可以识别用户和产品:

<>之前{"时间戳":"2014 - 08 - 19 t15:20:06.7804622z","源":"请求处理程序","数据":{"配置":{"api":{"从":"回声","到":"http://echoapi.cloudapp.net/api"},"操作":{"法":"获得",:"uriTemplate/资源"},"用户":{"id":1、"组织":(]},"产品":{"id":3}}}},之前

我想在服务端获得这些信息来识别用户。

你能告诉我是否有可能使用Azure API管理REST API从订阅键获取用户吗?

谢谢,约翰尼

您可以为利用策略的每个请求检索有关用户的信息。它位于API发布者门户的/Admin/Policies/中。

<policies>
<inbound>
    <set-header name="request-email" exists-action="override">
        <value>@(context.User.Email)</value>
    </set-header>
    <set-header name="request-id" exists-action="override">
        <value>@(context.User.Id)</value>
    </set-header>
</inbound>
<backend>
    <forward-request />
</backend>
<outbound />

请参考MSDN论坛

最新更新