Я создаю небольшое приложение React и хочу использовать Azure для входа в систему. У всех есть учетная запись Office 365, связанная с их арендатором.Я зарегистрировал приложение в Azure, разрешил неявный поток и т. Д., И я могу войти через интерфейс React.Я получаю токен и могу получить доступ к основным данным пользователя через область действия user.read
.Все хорошо.
Я использую библиотеку Msal, чтобы сделать все это, и я где-то читал, что если бы я получал JWT от Microsoft Graph, он имел бы одноразовый номер в заголовке и не мог бы быть использовандля этого типа целей (потому что Graph может обрабатывать проверку с каждым запросом).Я дважды проверил все, и он звонит Msal.UserAgentApplication
с моим clientId
и URL-адресом входа для нашего Арендатора.
Теперь серверная часть находится на AWS, поэтому я хотел бы получить каждый запрос отпользователь вызывает API на AWS и включает токен в заголовок.
Я пытался проверить токен, используя azure-ad-jwt и даже заменив код предложениями кого-то в этом посте , но я ничего не могу получитьно неверная подпись.
Из того, что я вижу, код в этих ссылках в основном декодировал JWT, выслеживает открытые ключи от Microsoft, находит соответствующий на основе kid
, делает некоторую уборкуиз сертификата, и пытается проверить это.Но он постоянно возвращается:
{
"name":"JsonWebTokenError",
"message":"invalid signature"
}
Бэкэнд написан на Nodejs, я не могу придумать больше причин, почему он не будет работать.Кто-нибудь может заставить это работать или есть какие-нибудь идеи?
Для чего это стоит, я также вставил токен в jwt.io , и он декодирует поиск, но также говорит, что Invalid Signature, хотя и вверхна данный момент я предположил, что это потому, что я не вставил открытый ключ или сертификат.