首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用授权码授权的前端VueJS(或React或Angular)应用的认证体系结构

使用授权码授权的前端VueJS(或React或Angular)应用的认证体系结构
EN

Stack Overflow用户
提问于 2020-04-08 10:40:23
回答 1查看 174关注 0票数 1

我正在开发一个前端是VueJS,后端是NodeJS和ExpressJS的应用程序。

NodeJS,ExpressJS将托管REST API,我想使用Azure AD保护它们。我想使用Auth Code flow。

我的问题是:我已经把我的想法放在图表中,这是正确的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-11 23:19:21

这种方法对我来说很好。我认为它是基于JWT (https://jwt.io/)身份验证的高级版本。JWT请参考以下步骤:

credentials.

  • The服务器客户端通过提供
  1. 请求身份验证,从而为客户端提供使用服务器中存在的私钥加密的令牌。JWT
  2. 存储在客户端的会话中,每当客户端向服务器请求需要身份验证的内容时,它都会被发送到服务器。
  3. 服务器随后使用公钥/私钥解密令牌,并将响应发送回客户端。
  4. 此时已验证会话。

对于你上面描述的架构,它做了完全相同的事情,除了加密(生成)和解密(验证) Azure AD中存在的令牌。以下是根据您的架构实现身份验证的步骤:

JWT客户端通过提供credentials.

  • The Azure AD服务器来请求身份验证,但最终提供令牌(相当于前一个approach).

  • The中的
  1. ,它存储在客户端的会话中,并在客户端请求需要身份验证的内容时发送到应用程序后端服务器。
  2. 后端服务器使用Azure AD来验证令牌(类似于JWT的解密/验证步骤),并将响应发送回客户端。
  3. 此时已验证会话。

不过,我建议对此做一个小小的改变。如果你看一下上面的步骤4。应用服务器将在每次需要对会话进行身份验证时继续访问Azure AD。如果你可以为这个阶段添加一个实际的JWT,它可能有助于避免这些对Azure的冗余调用。

因此,上述针对JWT的步骤可能会在上述Azure AD的第4步之后添加,即创建JWT并将其存储在客户端会话中,一旦从Azure验证了所有内容,然后在未来对当前会话继续使用基于JWT的身份验证。

如果需要,JWT可以存储在浏览器cookie中,并且可以在特定时间段内完全避免对Azure AD的调用。然而,我们的目标不是减少Azure AD服务器上的负载,而只是建议在这种特定情况下使用JWT的方法。

我希望它能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61092501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档