【问题标题】:what to choose from OPENID and SAML 2.0从 OPENID 和 SAML 2.0 中选择什么
【发布时间】:2018-05-09 09:58:25
【问题描述】:

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

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

abc@testdomain.com ,xyz@xyzdomain.com

等等

哪个更适合我的应用?请提出建议。

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

【问题讨论】:

    标签: c# openid saml-2.0


    【解决方案1】:

    我的看法:

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

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

    【讨论】:

    • 但是 openid 适合我的需要吗?意味着我必须中继 openid 提供者,对吗?还是我必须创建自己的 openid 提供程序?
    • 不,您可以在用户存储之上使用 Keycloak。然后你可以使用和玩这两种类型的 SSO,因为 Keycloak 支持 OIDC 和 SAML。
    • 您能提供更多帮助吗?我对这件事完全陌生
    • Keycloak 只是另一个 IDP。他们都允许同样的事情,例如Okta、Auth0、Azure AD、ADFS、identityserver 等。如果您需要一些背景知识,请尝试auth0.com/docs
    • Dhaval - 对于 OpenID Connect 或 SAML,您将需要一个 IdP(或者更准确地说,您的用户进入将需要一个 IdP)。某处某处需要能够验证那个说他是“abc@testdomain.com”的人实际上就是那个人。正如其他人所说,OIDC 更容易实施和维护,因此现在应该是首选(现在是 2019 年)。
    【解决方案2】:

    是的 - 适用于企业的 SAML - 适用于移动设备或“现代身份验证”的 OpenID。

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

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

    【讨论】:

      【解决方案3】:

      首先,了解某个地方的某个人将不得不实际验证“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 进行了大量投资并且不打算重做该投资的大型公司或机构(例如大学)。如果您与他们合作,您几乎没有其他选择。

      【讨论】:

        猜你喜欢
        • 2011-12-03
        • 2015-08-04
        • 2011-04-03
        • 1970-01-01
        • 1970-01-01
        • 2015-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多