Проверьте Azure idToken в Node.js - PullRequest
       16

Проверьте Azure idToken в Node.js

0 голосов
/ 04 октября 2018

У меня проблемы с проверкой подписи токена idtoken Azure, выданного конечной точкой v2.

Я прочитал документацию (https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-id-and-access-tokens#validating-tokens),, и также есть пример кода, но это относитсяна другой язык, кроме TS / JS.

В настоящее время я мой код

import {
  decode,
  verify
} from 'jsonwebtoken';

const token = 'myRand0mIdtoken...meh';
const key = 'key from -->'; // https://login.microsoftonline.com/common/discovery/v2.0/keys
console.log(
  decode(token), //works fine!
  verify(token, key) //JsonWebTokenError: invalid algorithm
);

Как мне поступить?Декодирование работает, а проверка - нет.

Сайт https://login.microsoftonline.com/common/discovery/v2.0/keys указывает на документ JSON, содержащий массив ключей.Это содержит несколько ключевых объектов.Из этого я использовал элемент, в котором значение «kid» совпадает со значением «kid» в заголовке моего idToken.

В этом элементе есть два поля, x5t и x5c, которые выглядят как открытые ключи.Я пробовал оба, но не повезло.

С уважением

1 Ответ

0 голосов
/ 04 октября 2018

Нашел решение.https://nicksnettravels.builttoroam.com/post/2017/01/24/Verifying-Azure-Active-Directory-JWT-Tokens.aspx

Кажется, я только что забыл начальную и конечную строки, содержащие открытый ключ.Рабочий формат:

----- НАЧАТЬ СЕРТИФИКАТ -----

СОДЕРЖАНИЕ ПОЛЯ x5c В JSON DOC

----- КОНЕЦ СЕРТИФИКАТА -----

...