oAuth 2.0访问令牌验证node.js

时间:2019-03-18 07:59:58

标签: node.js oauth-2.0 jwt azure-active-directory

我有一个用node.js express框架编写的后端API。我需要使用它来实现oAuth 2.0(client_credentials授予类型)。我知道前端(谁是API的调用者)正在使用client_id和client_secret请求https://login.microsoftonline.com/IDENTIFIER_STRING/oauth2/token并获得访问令牌作为响应。之后,FE会将请求发送到带有该访问令牌的带有Authorization标头的API。现在我的问题是如何验证访问令牌并将访问权限授予请求者?我是否必须借助一些公共密钥和一些node.js库将它作为JWT脱机验证?还是我必须通过将访问令牌发送到与令牌端点类似的oAuth提供程序的某个端点来在线进行操作?

1 个答案:

答案 0 :(得分:0)

作为令牌使用者,除非发行人另行指定,否则验证是离线进行的。

您应该使用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 vs v2端点-
https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison

Azure AD符合OAuth 2.0和OpenID Connect。这确实意味着您还应该能够通过第三方库验证JWT。