【发布时间】:2018-05-09 09:58:25
【问题描述】:
我是 Open ID 和 SAML 的新手,需要您的帮助才能从两者中选择正确的单点登录。
我的应用程序有来自不同域的用户,例如
abc@testdomain.com ,xyz@xyzdomain.com
等等
哪个更适合我的应用?请提出建议。
我曾尝试搜索互联网,但无法找到并排的差异。 此外,任何使用 .NET C# MVC 实现它的演示或参考都会有所帮助。
【问题讨论】:
我是 Open ID 和 SAML 的新手,需要您的帮助才能从两者中选择正确的单点登录。
我的应用程序有来自不同域的用户,例如
abc@testdomain.com ,xyz@xyzdomain.com
等等
哪个更适合我的应用?请提出建议。
我曾尝试搜索互联网,但无法找到并排的差异。 此外,任何使用 .NET C# MVC 实现它的演示或参考都会有所帮助。
【问题讨论】:
我的看法:
如果您不需要支持 SAML,请使用 Open ID。认证库列表(C# 也有)http://openid.net/developers/certified/.
【讨论】:
是的 - 适用于企业的 SAML - 适用于移动设备或“现代身份验证”的 OpenID。
对于 C#,使用 OWIN OpenID Connect NuGet 包。
如果您使用的是 Azure AD,请查看 here。
【讨论】:
首先,了解某个地方的某个人将不得不实际验证“abc@testdomain.com”等的身份(通常是通过询问和验证密码)。一般而言,“某人”是身份提供者或 IdP。其次,请注意,虽然您指定了 SAML 2.0,但我假设您还指的是 OpenID 的当前(2018 年和现在)版本,“OpenID Connect”;之前的 OpenID 标准(通过 1.2)非常不同,不再受支持,并且会在“我应该支持它吗?”中低于“SAML”。排名。
对于您要支持的用户,他们是否已经设置了 IdP?如果是这样,该 IdP 不是否支持 OpenID Connect 并且是否支持 SAML(或其他各种不太常见的 SSO 标准之一,如 WS-Trust、CAS、Facebook Connect、 Kerberos 等)?在那种情况和那种情况下只有,我会选择 SAML。
如果当前没有设置 IdP,或者如果有 IdP 并且 IdP 支持 OpenID Connect (OIDC),那么我会首先支持 OIDC。
显然,如果有 IdP 设置,并且他们不打算或不愿意继续使用更新的,并且 IdP 只支持某些东西“奇怪”,例如 CAS 或 Kerberos,您必须使用您的服务而不是 SAML 或 OIDC 来实现该标准。
通常,OIDC 比 SAML 更快地获得更多关注。 Microsoft(Azure AD、ADFS)、Google、Auth0、Ping 和大多数其他领先的 IdP 供应商要么单独支持 OIDC,要么建议使用 OIDC。它具有几乎所有语言的大型库支持。它是最常用的 API 授权框架 (OAuth 2.0) 的扩展。在护理和喂养方面需要很少的时间。如果您在设置 OIDC 依赖方支持时遇到问题,可以在线获取无数当前技术资源。
相比之下,SAML 是一个复杂的标准,它没有很好的库支持,并且往往依赖于您可能不想使用的技术(例如 XML)。设置和维护 SAML 集成非常耗时,尤其是在保持证书在整个系统中保持同步和最新方面。以我自己的个人经验,您可以在其中找到有关设置 SAML 的帮助,它通常会过时(不是因为 SAML 本身已更改,而是因为它周围的所有内容都已更改),因此您需要能够翻译说明,例如,Windows 2008,无论您今天实际使用什么。总的来说,SAML 具有衰退技术的所有特征。
话虽如此,SAML 仍然在某些领域得到广泛使用,尤其是在 10 多年前对 SAML 进行了大量投资并且不打算重做该投资的大型公司或机构(例如大学)。如果您与他们合作,您几乎没有其他选择。
【讨论】: