我是Open ID和SAML的新手,需要您的帮助才能从两者中选择正确的单点登录。
我的应用程序拥有来自不同域的用户,例如
abc@testdomain.com ,XYZ @ xyzdomain.com
等
这对我的申请会更好吗?,请建议。
我尝试过搜索互联网,但无法找到并排差异。 此外,任何使用.NET C#MVC实现它的演示或参考都会有所帮助。
感谢先进:)
答案 0 :(得分:3)
我的观点:
如果您不需要支持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进行了大量投资,并且不打算重做该投资。如果您与他们合作,那么您别无选择。