Получение токена доступа к приложению AAD для вызова службы приложения Azure с секретом клиента - PullRequest
2 голосов
/ 24 мая 2019

Я пишу интерфейс командной строки Nodejs для развертывания AAD-Auth Protected Web API через шаблон Azure ARM.Возникают проблемы при получении Access-Token для вызова Web API.

Я использовал библиотеку adal-node для генерации токена доступа, используя clientID и секретный ключ AAD-App, но сгенерированный токен не имеет действительного objectId.

Я также попытался получить код_устройства, а затем попытался получить токен доступа с тем же, но не удалось с ошибкой "требуется разрешение на доступ к ресурсам в вашей организации, которое может предоставить только администратор. Пожалуйста, попросите администратора предоставить разрешениев это приложение, прежде чем вы сможете его использовать. "..

Однако, если я зайду в браузер и введу https://app -service-name.azurewebsites.net / .auth / me , мне предлагается ввести учетные данные для входа в Azure и дать разрешение AAD-App на доступ к ресурсам. Я получаю токен доступа в браузере.И этот токен доступа имеет все свойства (аудитория, издатель, objectId), которые мне нужны.Я изо всех сил пытаюсь получить подобный токен доступа от CLI nodejs.

const context = new AuthenticationContext('https://login.microsoftonline.com/my-tenant-id');
context.acquireTokenWithClientCredentials(
    aadAppIdUri, aadAppId, aadClientSecret, (err: Error, result: any) => {
        if (err) {
            reject(err);
        } else {
            resolve(result.accessToken);
        }
    });

Я хочу вызвать API-интерфейс, защищенный AAD, из моего CLI узла с действительным токеном доступа.Пожалуйста, помогите мне сгенерировать токен доступа для этого.

1 Ответ

0 голосов
/ 27 мая 2019

Для получения токена доступа через учетные данные клиента необходимо разрешение приложения .

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

Убедитесь, что у вас есть необходимое разрешение для вашего приложения. enter image description here

Также не забудьте нажать кнопку «Предоставить согласие администратора».

enter image description here

...