SSO 和 OAuth 混淆

SSO and OAuth Confusion

这实际上是一个关于我实际需要什么的问题,而不是一个 howto。

我们有一个客户端使用 Ping Identity/Ping Federate 进入他们系统中的所有站点。我们为他们开发了一个 Web 应用程序,他们希望从他们的主要门户访问该应用程序,而不是为我们的站点获取单独的登录名。

他们没有告诉我们太多,但他们似乎认为我们还需要购买 Ping Identity/Federate 或设置一个 ADFS 场,这样他们才能访问我们的系统。

这就是我感到困惑的地方。在他们的主要门户网站中设置 link(一旦他们使用 Ping 进行身份验证)在我们的网站上调用 REST API 来获取他们的用户,这不是 easier/make 更有意义吗名称(在本例中为电子邮件)和令牌,然后登录?我们是小公司,我无法想象为此设置 ADFS 场或获得昂贵的 Ping 许可证是值得的。

有什么想法吗?

您的客户实际上要求您提供一种利用行业标准(如 SAML 2.0 或 OpenID Connect*)的联合身份验证方法。我认为这是合理的,因为;

  • 他们不必实施一次性解决方案。我也会推动使用标准(经验之谈)。
  • 向其他客户销售相同的解决方案会更容易,因为您拥有标准解决方案。

话虽如此,设置 PingFederate 或 ADFS 的备选方案有很多,大致可分为三组:

  • IDaaS:Azure AD、PingOne、Okta、OneLogin 等。它们接管联合任务,通常为开发人员提供非常简单的集成选项,价格合理甚至免费。
  • 本地联合解决方案:与 PingFederate 和 ADFS 类似,但也有开源替代方案。他们再次负责联合并为开发人员提供简单的集成选项。
  • Federation Frameworks/Libraries:只需用您喜欢的语言搜索它,例如 Spring Security 是 Java 的一个不错的选择。通过使用这些,您的应用程序本身就具有联合能力。这些通常是免费的,但需要集成到应用程序中,这有时会很复杂。

*:请不要将 OAuth2 用于身份验证目的,那不是它的用途。