18

一个多月以来,我一直试图了解这个问题是如何解决的。我真的需要想出一个可行的通用方法。我有一个理论,但我不确定这是最简单(或正确)的方法,而且我无法找到任何信息来支持我的想法。

这是场景:

1) 您有一个复杂的 Web 应用程序,它在订阅的基础上提供安全内容。

2) 用户需要使用用户名和密码登录您的应用程序。

3) 您向已经拥有公司身份验证技术(例如 Active Directory)的大公司销售产品。

4) 您希望与企业身份验证机制集成,让他们的用户无需输入用户名和密码即可登录您的 Web App。

现在,您提出的任何解决方案都必须提供一种机制:

  • 添加新用户
  • 删除用户
  • 更改用户信息
  • 允许用户登录

理想情况下,当企业客户对自己的身份验证进行相应更改时,所有这些都会“自动”发生。

现在,我有一个理论,这样做的方法(至少对于 Active Directory)是我编写一个与客户的 Active Directory 集成的客户端应用程序以跟踪目标更改,然后将这些更改传达给我的网络应用程序。我认为,如果这种通信是通过我的网络应用程序提供的网络服务完成的,那么它将保持不可破解的安全级别,这显然是这些企业客户的要求。

我发现了一些关于名为 Active Directory 联合服务 (ADFS) 的 Microsoft 产品的信息,它可能适合我,也可能不适合我。它似乎有点笨重,并且有一些可能不适用于所有客户的要求。

对于其他现有的 ID 场景(如雅典和 Shibboleth),我认为不需要客户端应用程序。这可能只是绑定到现有 ID 服务的问题。

如果有人对我在这里提到的任何事情提出任何建议,我将不胜感激。特别是,如果您能告诉我关于提供与服务器端 Web 服务通信的客户端应用程序的理论是否正确,或者我是否完全走错了方向。此外,如果您能指出任何解释如何执行此操作的网站或文章,我将不胜感激。到目前为止,我的研究成果并不多。

最后,如果您能告诉我目前提供此服务的任何 Web 应用程序(特别是与企业 Active Directory 相关联的应用程序),我将不胜感激。我想知道其他 B2B Web 应用程序,如 salesforce.com 或 hoovers.com 是否为他们的企业客户提供类似的服务。

我讨厌在黑暗中,非常感谢你能散发出的任何光芒......

杰里米

4

2 回答 2

3

Shibboleth旨在完全支持这种情况。但是,它将依赖于您客户的公司实施身份提供者机制。目前,这仅在大学中很常见。此外,如果您想要用户信息(不仅仅是假名标识符),您需要公司同意向您发布这些属性。

我很难相信很多公司会向你开放他们的企业认证系统,只是为了提供 SSO。

您可能会发现依赖OpenID或类似的东西会更好,并使用“记住我”cookie 来减少人们输入密码的需要。

于 2010-04-02T22:54:21.487 回答
2

您的方法的一个基本问题是您正在孤立地考虑您的 Web 应用程序。您客户公司的员工不仅需要 SSO 到您的 Web 应用程序,还需要一些/很少/许多其他应用程序,并且扩展您的方法将需要为每个应用程序定制实现以启用访问。

因此,学术图书馆社区广泛采用 OpenAthens 和 Shibboleth,以利用本地颁发的证书。典型的大中型大学可以订阅来自 50 多个不同出版商的各种产品/服务,通过部署 OpenAthens/Shibboleth,他们可以利用 SAML 开放标准(SAML 是 Shibboleth 使用的协议),该标准的使用量正在增加不仅在学术领域,而且在商业领域。

John 的上述回答指出了另一个问题:最近出现了许多开放标准,其中包括 SAML 和 OpenID。因此,内容提供商必须决定是否要在本地实现其中的部分或全部,但他们使用单独的技术堆栈,因此实现和支持成本可能会重复。

相当多的主要出版商已经实施了 OpenAthens,因为它在单个平台上支持雅典、SAML/Shibboleth 和 OpenID,还可以选择插入其他技术,或者编写自定义模块以允许内部应用程序连接,例如发票或权利系统记录哪些客户的用户正在登录。

这个访问管理领域肯定正在朝着开放标准发展,因此构建自己的方法将剥夺大量用户对应用程序的访问权限

于 2010-04-03T12:46:57.113 回答