Проверка токена доступа oAuth 2.0 node.js - PullRequest
0 голосов
/ 18 марта 2019

У меня есть бэкэнд-API, написанный в framework.js express. Мне нужно реализовать oAuth 2.0 (тип предоставления client_credentials) с ним. Я узнал, что клиентская часть (которая является вызывающей стороной API) запрашивает https://login.microsoftonline.com/IDENTIFIER_STRING/oauth2/token с client_id и client_secret и получает токен доступа в ответ. После этого ИП отправит запрос моему API с заголовком авторизации с этим токеном доступа. Теперь мой вопрос: как я могу проверить этот токен доступа и предоставить доступ запрашивающей стороне? Нужно ли проверять его в автономном режиме как JWT с помощью некоторого открытого ключа и некоторой библиотеки node.js? Или мне нужно сделать это через Интернет, отправив токен доступа какой-либо конечной точке поставщика oAuth, аналогичной конечной точке токена?

1 Ответ

0 голосов
/ 18 марта 2019

В качестве потребителя токена проверка выполняется в автономном режиме, если эмитентом не указано иное.

Вы должны использовать библиотеку JWT, не катите свою собственную логику проверки, это не тривиально для правильной реализации.

Использовать MSAL для приложений Azure ADv2 -
https://github.com/AzureAD/microsoft-authentication-library-for-js https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics

Для v1 используйте более старый ADAL -
https://github.com/AzureAD/azure-activedirectory-library-for-js

v1 против конечной точки v2 -
https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison

Azure AD совместим с OAuth 2.0 и OpenID Connect. Это действительно означает, что вы должны иметь возможность проверять JWT с помощью сторонних библиотек.

...