首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSO和data它们是分开的还是统一的?

SSO和data它们是分开的还是统一的?
EN

Stack Overflow用户
提问于 2022-11-23 23:21:03
回答 1查看 22关注 0票数 0

我正在做一个客户端项目,其中涉及创建三个单独的网站,目的是在SSO下将它们统一起来--所以,一次登录可以让您访问所有三个网站。这三个网站也将消耗一个内部数据API,所以我们计划在一个单独的数据服务器。因此,需要分离身份验证和数据服务。

我的问题是-数据和身份验证服务应该来自同一个API吗?是否有有意义的理由将身份验证和数据保持为单独的服务?还是将认证和数据分离会增加复杂性,而不会带来任何回报?我倾向于将它们合并成一个单一的来源,但由于我在这方面的经验有限,我不完全了解所涉及的风险(如果有的话)。

在过去的几天里,我还没有找到关于这个主题的相关阅读--我发现的有关SSO安全问题的所有材料更多的是与2FA和一般安全性有关,或者特别是OAuth认证内部网和更多企业级概念(例如onedrive)。许多关于使用SAML / OAuth对数据API进行身份验证的文章都是可用的,但没有一篇文章直接讨论SSO服务是否应该与其保护的数据服务分离或统一。我在这里也没有看到任何与此密切相关的问题。

我想从一个平台-不可知论,最佳实践方法-但如果上下文有帮助,这选择的平台是Laravel / Lumen。

也请注意,因为客户是这个项目的唯一股东,我没有能力改变这个项目的参数。例如,我们无法避免自己构建一个SSO服务--带有google / github的SSO在路线图上,但是如果没有使用第三方登录,客户仍然希望提供SSO。

EN

回答 1

Stack Overflow用户

发布于 2022-11-24 01:51:02

要为多个web应用程序提供单点登录,您需要一个身份提供者(IdP)。正如您在问题中提到的,您将希望在将来使用google / github,但现在使用的是第一方登录,您需要建立您自己的身份提供者。许多可用的自由和开放源码软件- 凯克雅克在脑海中浮现,您将需要在服务器上进行自我托管。另外,一个非常流行的选项是Auth0,它提供了许多关于启动和运行的SDK、指南等,可以自由使用,直到达到一定的极限。这两个身份提供者都将允许您使用本地用户数据库(第一方登录),然后允许用户使用第三方凭据(google、github等)登录。或者,您可以选择构建您自己的身份提供者服务的路线--但是请记住,如果没有对其进行适当的考虑/规划,许多复杂的问题可能会导致以后的安全问题。

一旦您在某个地方存储身份,您将需要使用一种协议--很多人使用OpenID连接和OAuth2.0 --该协议使您能够根据身份提供者对用户进行身份验证和授权,以决定他们是否应该访问您的web应用程序和后端API(以及访问的程度)。

因此,根据您想要实现的目标的性质,您可能会将您的"SSO服务“或身份提供者与您的数据API分开。这是因为它们有着完全不同的关注点,而且我还建议您使用您的身份提供程序来控制对数据API的访问,这可能不是同一个代码库的一部分。

一个开始深入阅读主题的好地方是Auth0的身份基础页面。Auth0还有一个Laravel,可以节省一些时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74553975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档