什么选择OPENID和SAML 2.0

时间:2018-05-09 09:58:26

标签: c# openid saml-2.0

我是Open ID和SAML的新手,需要您的帮助才能从两者中选择正确的单点登录。

我的应用程序拥有来自不同域的用户,例如

  

abc@testdomain.com   ,XYZ @ xyzdomain.com

这对我的申请会更好吗?,请建议。

我尝试过搜索互联网,但无法找到并排差异。 此外,任何使用.NET C#MVC实现它的演示或参考都会有所帮助。

感谢先进:)

3 个答案:

答案 0 :(得分:3)

我的观点:

  • SAML - 用于企业域的复杂的基于XML的协议
  • Open ID - 易于实现,因为很多libs / tools +它是许多当前应用/身份提供商(Google,LinkedIn,GitHub)的标准SSO选项

如果您不需要支持SAML,请使用Open ID。经过认证的库列表(C#也在那里)http://openid.net/developers/certified/

答案 1 :(得分:2)

Yup - SAML for enterprise - OpenID for mobile或“modern authentication”。

对于C#,请使用OWIN OpenID Connect NuGet包。

如果您使用的是Azure AD,请查看here

答案 2 :(得分:0)

首先,要了解某个地方的某人将必须实际验证“ abc@testdomain.com”等的身份(通常是通过询问并验证密码)。一般而言,“某人”是身份提供者或IdP。其次,请注意,当您指定SAML 2.0时,我还假设您的意思是OpenID的当前(在2018年及之后)版本“ OpenID Connect”;以前的OpenID标准(通过1.2)非常不同,不再受支持,并且会在“我应该支持它”中降至“ SAML”之下。排名。

对于您要支持的用户,他们是否已经设置了IdP?如果是这样,IdP是否不支持OpenID Connect,并且是否支持SAML(或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进行了大量投资,并且不打算重做该投资。如果您与他们合作,那么您别无选择。