gpt4 book ai didi

.net - 跨平台 SSO - 从哪里开始?

转载 作者:行者123 更新时间:2023-12-04 17:38:40 25 4
gpt4 key购买 nike

我正在研究两个不同系统之间的单点登录选项:一个 .NET,一个 Java EE。它们各自独立管理,具有单独的用户管理,有一些重叠的用户。

我希望能够在不重新提示输入密码的情况下从一个链接到另一个。

SSO 产品和协议(protocol)似乎有很多选择。我相当有信心我可以一次性编写代码来生成和验证我自己的安全 token ,但不希望重新发明轮子。

在方法和/或产品(最好是开源)方面,您会推荐什么?

首先,您会选择支持 SAML、OpenID、OAuth 还是以上都不支持的东西?

其次,在免费/开源产品中,我知道 OpenAM、Shibboleth、JOSSO 和 CAS。有什么经验可以和他们分享,好的、坏的或丑陋的?

最佳答案

首先让我们看一下协议(protocol):

  • SAML 2.0 是一种集中式/分散式 SSO 协议(protocol)。这是最
    高级协议(protocol)和提供联合,即您可以允许用户
    使用任一 X 系统登录,或通过
    单一系统(称为 IDP)。 SAML 2.0 广泛用于
    金融和政府部门以及一些主要托管
    应用程序(例如 Google 应用程序和 Saleforce)。它也是
    最复杂的协议(protocol)
  • 开放ID 是一种去中心化协议(protocol),最适合互联网,
    不是内联网/外联网应用程序。用户可以选择从
    任何 OpenId 提供程序。 Stackoverflow 是 OpenId 的一个很好的例子——我们
    可以选择使用我们的 Google 或 Facebook 帐户登录。你可以
    通过强制默认值以集中方式实现 OpenId
    消费应用程序之间的关联(称为依赖
    方)和 SSO 系统(称为服务提供者)。
  • OAuth 不是真正的 SSO 协议(protocol)。它允许用户授予
    应用程序 A 访问他在应用程序 B 中的信息,而无需
    将应用程序 B 的凭据提供给应用程序 A。一些
    人们已经将 OAuth 用作伪身份验证的一种形式,即如果
    系统能够访问属于用户 X 的照片,然后
    用户必须是 X。这是一个 hack,不推荐。

  • 使用标准化协议(protocol)以避免锁定绝对是一个好主意。Microsoft 最近引入了对 SAML 2.0 的支持,并且有许多可用于 Java 的开源和商业产品。有可用于 java 的 OpenId 实现,但我对 .NET 世界了解不足,无法发表评论。

    正如您所提到的,有一系列可用的开源 SAML 产品(OpenAM、Shibboleth、JOSSO 和 CAS)。需要注意的一点 - SAML 是一种复杂的协议(protocol),因此如果您确实走开源路线,您将需要为一些艰苦的工作做好准备。当我们建立我们的 Cloudseal SSO 平台(基于 SAML 2.0)我们花了很多时间试图简化事物以抽象复杂性。其他商业供应商也做了同样的事情,但你提到的开源产品更注重功能而不是简单——恕我直言! :)

    关于.net - 跨平台 SSO - 从哪里开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9986156/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com