FE -> (token_a) Middleman -> (token_b) DownstreamServiceA
Насколько я понимаю, для Middleman
для выполнения вызовов API для DownstreamServiceA
необходимо обменять на token_b
, используяtoken_a
.Я пытался смоделировать это поведение в почтальоне.Но я не могу обменять на token_b
, используя token_a
.Я получаю следующую ошибку
AADSTS65001: The user or administrator has not consented to use the application with ID '{my-middleman-clientid}'
На портале Azure я настроил разрешение API-интерфейса FE для доступа к открытой области API DownstreamServiceA
& Middleman
.На это я также получил согласие администратора от имени пользователей моей организации.
Получение токена_a
POST to https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
grant_type:password
client_secret: foobar
client_id: my-fe-clientid
username: awesome
password: bar
scope: api://{MiddlemanId}/Middleman.All
Обмен на токен_b
POST to https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token
grant_type: urn:ietf:params:oauth:grant-type:jwt-bearer
client_id: my-middleman-clientid
client_secret: foobar
scope: api://{DownstreamServiceAId}/ServiceA.all
assertion: {token_a}
requested_token_use: on_behalf_of
Могу ли я знать, что я делаю не так?Насколько я понимаю, моему FE нужно запросить и предоставить разрешение на предварительную область действия DownStreamServiceA
, что я сделал с помощью гранта администратора на портале Azure.