我有两个Web应用程序.他们已经使用Oauth承载令牌,OWIN和asp.net身份.我只需要实现单点登录.更具体地说,我需要用户自动登录到一个网站,如果他们已经在其他登录.后端是C#,前端是Angular。这是否可以在没有第三方SSO提供商的情况下完成?我研究了authO和其他提供者,但我不需要身份和认证部分,只需要授权部分。
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个微型前端时,请选择第一个选项。当跨数据敏感度不同的业务领域时,请选择第二个选项。
1条答案
按热度按时间k5ifujac1#
这里有几种模式需要注意。
饼干分享
反向代理,如NGINX,使您能够独立开发多个应用程序,然后在部署时在同一个Web域下的不同路径组合它们。这是cookie共享,而不是SSO。
字符串
要在应用程序之间实现此功能而不发生冲突,一个选项是通过实用程序API发布Cookie。
单点登录
上面的例子并不是一个好的安全设计。(低安全性)营销应用程序的cookie不应该用于(高安全性)金融等领域的后端端点。
在这个例子中,SSO是一个更安全的选项。某些用户可能能够同时使用两个应用程序,这两个应用程序运行在不同的Web域中。要实现SSO,前提条件是两个应用程序必须通过相同的外部系统实现登录。在OAuth 2.0中,这是授权服务器(AS)。
型
这使得分离的API凭证和分离的跨站点脚本风险成为可能。如果恶意方攻击营销应用程序,他们将无法访问财务数据。同时,AS管理启用SSO的cookie共享。
摘要
这两种技术都是可行的。当您为同一业务领域提供2个微型前端时,请选择第一个选项。当跨数据敏感度不同的业务领域时,请选择第二个选项。