Ошибка `` недопустимая подпись '' для токена доступа (Azure Active Directory / msal js)

Я использовал MSAL JS для аутентификации пользователя и последующего вызова acquTokenPopup(scopes) для токена доступа.

Я получаю токен доступа, но не могу его использовать, поскольку в нем написано " Недействительная подпись". (тоже проверил в jwt.io - та же ошибка)

На форуме я обнаружил, что это связано с тем, что Graph добавляет nonce. Какое будет решение? Пожалуйста помоги.

Ниже приведен код.

tenantConfig = {
    scopes: ["directory.read.all"]
};

this.clientApplication.acquireTokenSilent(this.tenantConfig.scopes).then (function (accessToken) {

            },
            function (error) {
                console.log(error);
                this.clientApplication
                    .acquireTokenPopup(this.tenantConfig.scopes)
                    .then(
                        function (accessToken) {

                            console.log("access token   " + accessToken);
                        },
                        function (error) {
                            alert(error);
                        }
                    );
            }
        );

2 ответа

Ваш параметр scopes должен быть "[CLIENT_ID]/. Default". При использовании MSAL.js и если вы не используете api графика:

var requestObj = {
  scopes:["[CLIENT_ID]/.default"]
};

Если вы намереваетесь использовать api графика, параметр scopes будет другим:

var ResourceId = "https://graph.windows.net/";
var scopes = [ ResourceId + "Directory.Read", ResourceID + "Directory.Write"];

Пример здесь https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-spa использует api графика и генерирует конкретный токен для api графика, измените параметр scopes, если вы необходимо сгенерировать токен доступа для других целей.

Дополнительная информация о параметре scopes: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-v1-app-scopes

Это не имеет значения. Просто измените алгоритм наHS256 в jwt.io, тогда подпись будет проверена.

Токен доступа должен быть в порядке. Просто убедитесь, что вы добавили разрешение Diretory.Read.All на портал Azure и предоставили согласие администратора.

'

Ссылка:

Вызов Graph API из одностраничного приложения JavaScript с использованием msal.js

Другие вопросы по тегам