【问题标题】:Choosing the correct authentication protocol选择正确的身份验证协议
【发布时间】:2015-03-06 09:30:04
【问题描述】:

您能帮我确定我应该在以下用例中使用哪种身份验证协议吗?我是这个开发领域的新手,对那里的所有技术信息有点迷惑 - 所以非常感谢“傻瓜”的回答。

我有一个提供英语课程的在线学习网站。出现了一个要求,即我们应该与 3rd 方企业系统集成(因为我们将课程出售给企业)。

主要要求是允许第 3 方系统将其用户重定向到我的站点,并让他们使用第 3 方系统凭据访问它(我相信这称为单点登录?)。第 3 方系统显然是远程系统,我更关注功能而不是 1 个特定客户/集成。

那么,我想了解的是,我应该提供什么能力来允许这种情况发生?我正在尝试开发一个通用的“开发人员工具包”,这样我就不必在出现许多单独的集成时陷入困境。

我读到这个领域有很多协议/事物(SAML、OAuth、OAuth2、OpenID、Shibboleth 等)——所以我想知道应该把注意力集中在哪里并进行研究?哪个是企业系统(CRM 等)中最常见的?

另外,作为一个子问题。 OAuth 2.0 发布后,OAuth 是被弃用还是被嘲笑?

非常感谢任何帮助!

谢谢大家。

【问题讨论】:

  • 标题和标签建议不同,但这个问题是关于身份验证(仅限),而不是授权
  • 我很抱歉 - 这是我的无知。我已经更改了标签和措辞。

标签: authentication oauth oauth-2.0 openid saml


【解决方案1】:

SAML 2.0 是企业系统中最流行的单点登录协议。大多数(如果不是全部)企业都能够为第三方网站提供基于 SAML 的 SSO。

理想情况下,如果正确实施,企业将需要配置他们的系统以发送您的网站 SAML 断言(XML 形式的身份信息),并且您将断言中的信息用于登录用户。

在这种情况下,企业将被称为身份提供商 (IDP),而您的网站将被称为服务提供商 (SP)

有许多可用的开源库允许实现 SAML(Spring 等),或者您现有的服务器也可能具有这些功能。

完成基本实现后,您可以选择做两件事:

  1. 如果您的数据库中不存在该用户,请创建一条新记录并允许该用户访问。

  2. 您正在与之集成的企业必须事先提供用户列表,然后您可以只允许数据库中存在的用户。

虽然第二个选项开销很大且不经常使用。

---------------------------- 回复评论---------------- ---------

这取决于您设置交互的方式。设置 SAML SSO 有两种方式:

  1. SP 发起的 SSO:这意味着用户始终访问您的站点,然后被重定向到 IDP 进行身份验证。 SAML 令牌在身份验证后发送回您的站点。

  2. IDP 发起的 SSO:其工作方式是 IDP 生成 SAML 令牌并将其直接发布到您网站的 SAML 端点。

如果您使用选项#1并且用户已经登录,则不需要步骤 C,因为用户已经登录并且可以直接生成令牌。

对于选项#2,只需要步骤 D 和 E。但是,我强烈建议您不要忽略 SP 发起的 SSO 实施,因为某些 IDP 不支持 IDP 发起的 SSO。

希望对你有帮助

视频

【讨论】:

  • 嗨,阿维,谢谢。我是否正确建议如果配置正确 - 那么只需要此 SAML 流程的步骤 D 和 E 吗? Link to picture of SAML flow
  • 因为他们在点击链接进入我的网站(资源服务器)时已经登录到授权服务器。
  • 在评论中参考您的问题更新了答案
  • 谢谢 Avi,关于选项 1 的另一个问题。如果我允许 SP 发起的 SSO,这是否意味着我需要为每个第 3 方提供一个“使用 XX 登录”选项我集成的系统? (这对于 50 多个独立的企业集成来说可能是不现实的)。
  • 作为与站点建立合作伙伴关系的第一步,您将执行元数据交换(带有您的标识符、签名证书、端点 URL 等的 XML 文档)。实际流程是用户将使用标识 IDP 的参数访问指向您的 SAML 端点 URL 的链接。基于此,您将识别合作伙伴并使用编码的 SAML Authn 请求重定向到他们的 SAML 端点。此请求将包含您之前与 IDP 共享的 ID,他们将生成令牌并将其发布到您的 SAML 端点。您将验证并登录
猜你喜欢
  • 2014-07-26
  • 2021-07-21
  • 2021-12-31
  • 2016-03-02
  • 1970-01-01
  • 2013-09-22
  • 2011-07-13
  • 2013-09-19
  • 2011-12-03
相关资源
最近更新 更多