область действия Azure Ad от имени потока всегда возвращает все согласованные области - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь создать приложение, которое запускается как приложение nodejs / реагирует.он вызывает внешний API, который также зарегистрирован в Azure Ad, используя часть потока.

в зависимости от пользователя, вошедшего в систему, я хочу запросить передачу определенных областей в службу от имени вошедшего в систему пользователя.мой код выглядит следующим образом:

const request = require('request');

function getApiTokenOnBehalfOf(req, callback) {

    var options = {
        method: 'POST',
        url: 'https://login.microsoftonline.com/organizations/oauth2/v2.0/token',
        headers:
        {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        form:
        {
            assertion: req.user.accessToken,
            grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
            client_id: process.env.PASSPORT_AZUREAD_ID,
            client_secret: process.env.PASSPORT_AZUREAD_SECRET,
            scope: 'https://`myorg.com/api/Users.Read.All',
            requested_token_use: 'on_behalf_of'
        }
    };

    request(options, callback);

}

по какой-то причине области, возвращаемые в токене, всегда включают все области, на которые пользователь когда-либо соглашался для этого приложения.как ограничить токены, возвращаемые пользователю, только теми, которые я запрашиваю при вызове?

1 Ответ

0 голосов
/ 04 июля 2019

Если вы пытаетесь получить токен доступа для доступа к другому ресурсу, scps и разрешения не должны иметь значения, потому что аудитории будут другими.

Однако, если вы действительно пытаетесь контролировать разрешения с помощью зубного гребня, область действия по умолчанию будет возвращать только статические разрешения, поэтому только те разрешения, которые вы ожидаете, должны быть возвращены через токен доступа.Пожалуйста, смотрите здесь документы для получения дополнительной информации по этому вопросу, https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#the-default-scope

...