选择正确的身份验证协议

时间:2015-01-08 09:53:36

标签: authentication oauth oauth-2.0 openid saml

您能否帮我确定哪个身份验证协议应用于以下用例?我是这个发展领域的新手,并且有一点点所有的技术信息 - 所以非常感谢'对于傻瓜'的答案。

我有一个在线学习网站,主持英语课程。我们需要与第三方企业系统集成(因为我们将课程出售给企业)。

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

所以,我想要了解的是,我应该提供什么样的能力来实现这一目标?我正在尝试开发一个通用的“开发人员工具包”,这样我就不必在出现时就陷入许多单独的集成中。

我已经读过这个空间中有很多协议/事物(SAML,OAuth,OAuth2,OpenID,Shibboleth等) - 所以我想知道我应该把注意力集中在哪些方面和研究上?哪个是企业系统(CRM等)中最常见的?

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

真的很感激任何帮助!

谢谢大家。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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

  2. 您正在集成的企业必须提前提供用户列表,然后您只能允许数据库中存在的用户。

  3. 虽然第二个选项有很多开销而且不经常使用。

    ----------------------------回答评论---------------- ---------

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

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

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

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

      对于选项#2,仅需要步骤D和E.但是,我强烈建议您不要忽略SP启动的SSO实施,因为有些国内流离失所者不支持IDP发起的SSO。

      希望这有帮助

      阿维