【问题标题】:How to get the User from the subscription-key using Azure API Management REST API?如何使用 Azure API 管理 REST API 从订阅密钥中获取用户?
【发布时间】:2014-10-12 19:55:43
【问题描述】:

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

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

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

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

{ “时间戳”:“2014-08-19T15:20:06.7804622Z”, "source":"请求处理程序", “数据”:{ “配置”:{ “API”:{ “来自”:“回声”, “到”:“http://echoapi.cloudapp.net/api” }, “手术”:{ “方法”:“获取”, “uriTemplate”:“/资源” }, “用户”:{ “身份证”:1, “组”:[ ] }, “产品”:{ “身份证”:3 } } } },

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

能否告诉我是否可以使用 Azure API 管理 REST API 从订阅密钥中获取用户?

谢谢,

强尼

【问题讨论】:

    标签: rest azure-api-management


    【解决方案1】:

    您可以使用策略为每个请求检索有关用户的信息。它位于 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 />
    

    有关使用变量设置标头的更多信息,请参阅https://docs.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#SetHTTPheader

    【讨论】:

      【解决方案2】:

      请参考MSDN上的讨论forum

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-18
        • 2018-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-20
        相关资源
        最近更新 更多