我已经研究了一段时间的SPAs单点登录解决方案。有很多解决方案有微妙的差别,同时我也发现并不是每个人都对SSO有相同的理解,并且没有太多针对SPA的SSO模式被建立。因此,我并不要求详细的设计/架构,而只是想看看这个主题上是否有任何通用做法。
我所说的SSO是什么意思?
1.我们正在开发几个新的SPAs(也可能是移动和平板应用程序),它们将部署在不同的服务器上并具有不同的域名。 2.我们还有一个中央IdP(authServer),其中存储所有用户标识。 3.一旦我登录了SPA1并点击一个按钮将我带到SPA2(或SPA3、SPA4等),我就不必输入用户凭据,会自动登录。
SPA与常规Web应用程序的区别是什么?
我看了一些解决方案,甚至包括旧的解决方案,如SAML(只是想了解一下SSO...)。我目前的候选方案是OpenId Connect,但后来意识到SPA有一个区别,如果我理解正确:与常规Web应用程序不同,SPA通常没有(或者我们尽量不要有)后端服务器。 SPA只有一个服务器提供静态页面以及脚本、样式表和图像。 现在出现了问题: OpenId Connect基于OAuth2授权码授权类型,这意味着要么:
关于第一点,我的理解是否正确?不让SPA拥有像常规网络应用程序那样的后端代码会更好吗?
对于第二点,那听起来像是一个解决方案,但它在本质上与OAuth2 Implicit授权类型有什么不同?
还有其他的解决方案(框架、协议等)吗,我需要知道但尚未探索的?
我所说的SSO是什么意思?
1.我们正在开发几个新的SPAs(也可能是移动和平板应用程序),它们将部署在不同的服务器上并具有不同的域名。 2.我们还有一个中央IdP(authServer),其中存储所有用户标识。 3.一旦我登录了SPA1并点击一个按钮将我带到SPA2(或SPA3、SPA4等),我就不必输入用户凭据,会自动登录。
SPA与常规Web应用程序的区别是什么?
我看了一些解决方案,甚至包括旧的解决方案,如SAML(只是想了解一下SSO...)。我目前的候选方案是OpenId Connect,但后来意识到SPA有一个区别,如果我理解正确:与常规Web应用程序不同,SPA通常没有(或者我们尽量不要有)后端服务器。 SPA只有一个服务器提供静态页面以及脚本、样式表和图像。 现在出现了问题: OpenId Connect基于OAuth2授权码授权类型,这意味着要么:
- 如果我想让它工作,我需要为每个SPA使用类似于后端代理的模块。
- 我使用不同的解决方案来进行客户端SSO,例如auth0提供的解决方案
- 我没有找到其他解决方案/示例
关于第一点,我的理解是否正确?不让SPA拥有像常规网络应用程序那样的后端代码会更好吗?
对于第二点,那听起来像是一个解决方案,但它在本质上与OAuth2 Implicit授权类型有什么不同?
还有其他的解决方案(框架、协议等)吗,我需要知道但尚未探索的?