我对涉及OAuth2的以下流程有一些疑问:
webapp1.xyz.com是具有授权代码授予类型的注册客户端,这是当前流程:
有人建议使用(隐式授权)访问令牌而不是会话cookie来进行ajax调用。甚至可能混合授权代码和隐式授权类型?也许我正在混合一些东西,我看不出为什么在ajax部分使用隐式授权类型的原因。
答案 0 :(得分:2)
甚至可能混合授权代码和隐式授权 类型?
问题更多的是你在谈论两个应用程序的一个令牌。或者更确切地说,webapp1既是OAuth客户端(调用Web API的网站 - webapi2),也是OAuth资源(SPA可以使用隐式授权调用的Web API)。
所以:SPA javascript> webapp1.xyz.com应用程序> webapp2.xyz.com应用程序。
在Oauth2.0术语中,您的SPA客户端应用程序将是客户端,而webapp1和webapp2将是资源。理想情况下,客户端将使用隐式授权来获取访问令牌,因为它是公共JavaScript客户端的优化流程。
如果可能,可以查看混合流 - OAuth2和OpenID Connect - 而不是授权代码流。
使用混合流程,webapp1将获得当前的令牌,但它也将获得一个ID令牌,它可以传递回SPA。
ID令牌旨在供客户端用于身份验证 - 此ID令牌可以执行会话cookie正在执行的相同工作(即SPA和SPA后端之间的身份验证)。并且访问令牌将安全地存储在远离SPA的webapp1服务器上。