Как получить пользователя из ключа подписки с помощью REST API управления API Azure?

В Azure API Management я хотел бы использовать ключ подписки, переданный от прокси-сервера службе, чтобы идентифицировать пользователя, стоящего за вызовом.

Единственное решение, которое я могу найти, - это получить все подписки и отфильтровать по primaryKey или secondaryKey, чтобы окончательно найти пользователя с этим REST API, но это будет слишком долго, потому что у меня будет много подписок.

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

Когда я активирую трассировку, чтобы увидеть, как сообщение обрабатывается управлением API в Echo API, я вижу, что прокси может идентифицировать пользователя и продукт:

    {
    "timestamp":"2014-08-19T15:20:06.7804622Z",
    "source":"request handler",
    "data":{
    "configuration":{
    "api":{
    "from":"echo",
    "to":"http://echoapi.cloudapp.net/api"
    },
    "operation":{
    "method":"GET",
    "uriTemplate":"/resource"
    },
    "user":{
    "id":1,
    "groups":[
    ]
    },
    "product":{
    "id":3
    }
    }
    }
    },

Я хотел бы получить эту информацию на стороне сервиса для идентификации пользователя.

Не могли бы вы сказать мне, можно ли получить пользователя по ключу подписки с помощью REST API управления API Azure?

Спасибо,

Джонни


person Johnny Max    schedule 19.08.2014    source источник


Ответы (2)


Вы можете получить информацию о пользователе для каждого запроса с помощью политик. Он находится в /Admin/Policies/ на портале издателя API.

<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 />

See https://docs.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#SetHTTPheader for more info regarding setting headers with variables.

person Dominic Cabral    schedule 16.02.2017

См. Обсуждение в MSDN forum

person Miao Jiang    schedule 28.08.2014