IdentityServer3 - OAuth 流程,不同的方法

IdentityServer3 - OAuth Flows, different approaches

我构建了一个实质上是 REST Web 的应用程序 API。我想为其他开发人员提供代表用户调用这些 API 的机会。我决定继续使用 OAuth 身份验证,将我的身份验证服务基于 IdentityServer3。 现在我已经成功地使用授权流程为第三方客户端生成了访问令牌。

无法说服我的是如何仅使用基于 cookie 的身份验证(+ 防伪令牌)来处理当前调用我的 Web API 的 SPA。此应用程序以 Javascript 编写,基于 Backbone。实质上,它所做的只是调用我的 Web API 并呈现结果。我对不同的授权流程感到困惑,我不想造成安全漏洞。

我想到的解决方案:

  1. 直接通过Javascript生成令牌。我应该使用哪种流程?如何处理令牌刷新?
  2. 从后端服务器应用程序生成令牌并将生成的令牌传回 SPA(显然是通过 SSL 通道)。这在某种程度上是安全的吗?如果是,我应该使用哪种流程(我会说授权代码流程)?如何处理令牌刷新?

你会如何处理?

谢谢,

马可

这里有一篇文章概述了哪种流程适用于哪种情况:https://leastprivilege.com/2016/01/17/which-openid-connectoauth-2-o-flow-is-the-right-one/