SPA +后端+ Office365 SSO

时间:2019-08-07 04:39:22

标签: oauth-2.0 openid

我正在构建一个包含以下内容的应用程序

  1. SPA(为用户提供执行操作的前端)-app.myservice.com-React JS

  2. API(提供核心业务逻辑,并由SPA调用)-api.myservice.com-节点JS

我想做的是允许人们使用Office 365“整体”注册我的应用程序。

但是...。我希望API生成JWT令牌,SPA以后将使用该JWT令牌与API进行通信。我不希望SPA具有Office365特定的令牌。

整个过程看起来像这样:

  1. 用户转到app.myservice.com
  2. 用户点击“注册”
  3. 用户被重定向到Office365以提供登录详细信息
  4. Office365重定向到我的API
  5. API在其数据库中创建本地用户
  6. API生成JWT
  7. API将JWT返回到SPA
  8. SPA使用JWT调用API来执行操作。

我不清楚,要使用哪种OAuth2 / OpenID流类型来实现这一目标。

此外,我想了解我的方法是否总体上有任何缺陷。

非常感谢

1 个答案:

答案 0 :(得分:0)

在上面的步骤3中,我认为您的SPA应该重定向到用户登录的Azure AD。您的SPA随后将收到一个Azure AD令牌并将其发送到API。如果需要,API可能会读取用户信息并创建用户。 API不应发布自己的令牌或接收重定向。不确定这是否会100%满足您的要求,但这是3足SPA和基于OAuth 2.0 API的舞蹈的标准模式。