oauth2.0 如何在多个站点之间授权用户

piok6c0g  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(329)

我有两个Web应用程序.他们已经使用Oauth承载令牌,OWIN和asp.net身份.我只需要实现单点登录.更具体地说,我需要用户自动登录到一个网站,如果他们已经在其他登录.
后端是C#,前端是Angular。
这是否可以在没有第三方SSO提供商的情况下完成?
我研究了authO和其他提供者,但我不需要身份和认证部分,只需要授权部分。

k5ifujac

k5ifujac1#

这里有几种模式需要注意。

饼干分享

反向代理,如NGINX,使您能够独立开发多个应用程序,然后在部署时在同一个Web域下的不同路径组合它们。这是cookie共享,而不是SSO。

- https://www.example.com/marketing
- https://www.example.com/finance

字符串
要在应用程序之间实现此功能而不发生冲突,一个选项是通过实用程序API发布Cookie。

单点登录

上面的例子并不是一个好的安全设计。(低安全性)营销应用程序的cookie不应该用于(高安全性)金融等领域的后端端点。
在这个例子中,SSO是一个更安全的选项。某些用户可能能够同时使用两个应用程序,这两个应用程序运行在不同的Web域中。要实现SSO,前提条件是两个应用程序必须通过相同的外部系统实现登录。在OAuth 2.0中,这是授权服务器(AS)。

- https://www.marketingapp.com
- https://www.financeapp.com


这使得分离的API凭证和分离的跨站点脚本风险成为可能。如果恶意方攻击营销应用程序,他们将无法访问财务数据。同时,AS管理启用SSO的cookie共享。

摘要

这两种技术都是可行的。当您为同一业务领域提供2个微型前端时,请选择第一个选项。当跨数据敏感度不同的业务领域时,请选择第二个选项。

相关问题