选择正确的身份验证协议
Choosing the correct authentication protocol
你能帮我确定我应该为以下用例使用哪种身份验证协议吗?我是这个开发领域的新手,对那里的所有技术信息有点困惑 - 所以 'for dummies' 回答将不胜感激。
我有一个提供英语课程的在线学习网站。出现了我们应该与第 3 方企业系统集成的要求(因为我们向企业出售课程)。
主要要求是允许第 3 方系统将他们的用户重定向到我的站点,并让他们使用第 3 方系统凭据访问它(我相信这称为单点登录?)。第 3 方系统显然是远程系统,我更关注功能而不是 1 个特定客户/集成。
所以,我想了解的是,我应该提供什么功能来实现这种情况?我正在尝试开发一个通用的 'developer toolkit',这样我就不必在大量单独的集成出现时陷入困境。
我读到此 space 中有很多协议/内容(SAML、OAuth、OAuth2、OpenID、Shibboleth 等)- 所以我想知道我应该把注意力和研究集中在哪里?企业系统(CRM 等)中哪个最常见?
另外,作为一个子问题。 OAuth 2.0 发布后,OAuth 是否被弃用或嘲笑?
非常感谢任何帮助!
谢谢大家。
SAML 2.0 是企业系统中最流行的单点登录协议。大多数(如果不是全部)企业都能够为第三方网站提供基于 SAML 的 SSO。
理想情况下,如果正确实施,企业将需要配置他们的系统以发送您网站的 SAML 断言(XML 形式的身份信息)并且您将断言中的信息用于登录用户.
在这种情况下,企业将称为身份提供者 (IDP),而您的网站将称为服务提供者 (SP)
有许多可用的开源库允许实施 SAML(Spring 等),或者您现有的服务器也可能具有此功能。
完成基本实现后,您可以选择做两件事:
如果您的数据库中不存在该用户,请创建一个新记录并允许该用户访问。
您要集成的企业必须事先提供用户列表,然后您可以只允许数据库中存在的用户。
虽然第二个选项开销很大而且不经常使用。
---------------------------- 回复评论---------------- ----------
这取决于您设置交互的方式。有两种设置 SAML SSO 的方法:
SP initiated SSO:这意味着用户始终访问您的站点,然后被重定向到 IDP 进行身份验证。 SAML 令牌被发送回您的站点 post 身份验证。
IDP 发起的 SSO:其工作方式是 IDP 生成 SAML 令牌并直接post将其发送到您网站的 SAML 端点。
如果您使用选项#1 并且用户已经登录,则不需要步骤 C,因为用户已经登录并且可以直接生成令牌。
对于选项#2,只需要步骤 D 和 E。但是,我强烈建议您不要忽略 SP 发起的 SSO 实施,因为一些 IDP 不支持 IDP 发起的 SSO。
希望对您有所帮助
阿维
你能帮我确定我应该为以下用例使用哪种身份验证协议吗?我是这个开发领域的新手,对那里的所有技术信息有点困惑 - 所以 'for dummies' 回答将不胜感激。
我有一个提供英语课程的在线学习网站。出现了我们应该与第 3 方企业系统集成的要求(因为我们向企业出售课程)。
主要要求是允许第 3 方系统将他们的用户重定向到我的站点,并让他们使用第 3 方系统凭据访问它(我相信这称为单点登录?)。第 3 方系统显然是远程系统,我更关注功能而不是 1 个特定客户/集成。
所以,我想了解的是,我应该提供什么功能来实现这种情况?我正在尝试开发一个通用的 'developer toolkit',这样我就不必在大量单独的集成出现时陷入困境。
我读到此 space 中有很多协议/内容(SAML、OAuth、OAuth2、OpenID、Shibboleth 等)- 所以我想知道我应该把注意力和研究集中在哪里?企业系统(CRM 等)中哪个最常见?
另外,作为一个子问题。 OAuth 2.0 发布后,OAuth 是否被弃用或嘲笑?
非常感谢任何帮助!
谢谢大家。
SAML 2.0 是企业系统中最流行的单点登录协议。大多数(如果不是全部)企业都能够为第三方网站提供基于 SAML 的 SSO。
理想情况下,如果正确实施,企业将需要配置他们的系统以发送您网站的 SAML 断言(XML 形式的身份信息)并且您将断言中的信息用于登录用户.
在这种情况下,企业将称为身份提供者 (IDP),而您的网站将称为服务提供者 (SP)
有许多可用的开源库允许实施 SAML(Spring 等),或者您现有的服务器也可能具有此功能。
完成基本实现后,您可以选择做两件事:
如果您的数据库中不存在该用户,请创建一个新记录并允许该用户访问。
您要集成的企业必须事先提供用户列表,然后您可以只允许数据库中存在的用户。
虽然第二个选项开销很大而且不经常使用。
---------------------------- 回复评论---------------- ----------
这取决于您设置交互的方式。有两种设置 SAML SSO 的方法:
SP initiated SSO:这意味着用户始终访问您的站点,然后被重定向到 IDP 进行身份验证。 SAML 令牌被发送回您的站点 post 身份验证。
IDP 发起的 SSO:其工作方式是 IDP 生成 SAML 令牌并直接post将其发送到您网站的 SAML 端点。
如果您使用选项#1 并且用户已经登录,则不需要步骤 C,因为用户已经登录并且可以直接生成令牌。
对于选项#2,只需要步骤 D 和 E。但是,我强烈建议您不要忽略 SP 发起的 SSO 实施,因为一些 IDP 不支持 IDP 发起的 SSO。
希望对您有所帮助
阿维