2010-04-02 139 views
12

我一直在试图了解如何解决这个问题一个多月了。我真的需要想出一个可行的一般方法。我有一个理论,但我不确定这是最简单的(或正确的)方法,而且我还没有找到任何信息来支持我的想法。单一登录为Web应用程序

这里的情景:

1)您有一个复杂的网络应用程序,它提供了一个基于订阅的安全内容。

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

3)您出售给已经拥有企业认证技术的大型企业(例如Active Directory)。

4)您想与企业身份验证机制集成以允许其用户登录Web应用程序,而无需输入其用户名和密码。

现在,你拿出任何解决方案必须为提供一种机制:

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

理想情况下,所有这些都会在企业客户进行相应更改时“自动”发生他们自己的认证。

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

我发现了一些有关称为Active Directory联合身份验证服务(ADFS)的Microsoft产品的信息,这些信息可能对我来说也可能不正确。这似乎有点笨重,并且有一些要求可能不适用于所有客户。

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

我希望任何人对我在这里提到的任何建议有任何建议。特别是,如果您能告诉我我的理论是否正确地提供了一个与服务器端Web服务进行通信的客户端应用程序,或者我完全走错了方向。另外,如果你能指出我在任何网站或文章解释如何做到这一点,我真的很感激它。到目前为止,我的研究还没有发现。

最后,如果您可以让我知道当前提供此服务的任何Web应用程序(尤其是与公司Active Directory绑定的),我将非常感激。我想知道其他B2B Web应用是否像salesforce.com或hoovers.com为其企业客户提供类似的服务。

我讨厌在黑暗中,并会非常感谢你可以摆脱任何光线...

杰里米

+0

我很好奇为什么昨天有人低估了这个问题。谨慎评论? – 2012-05-26 04:52:52

+0

请注意,在发布某人低估了它之后是两年。巧合的是(或许?),贬低它的人可能是第一千名观众。 – 2012-05-26 06:39:36

+0

我正在寻找非常相似的东西。你有没有解决你的问题?请分享有关如何实现这一目标的任何见解。 – Gala101 2013-07-26 06:25:03

回答

3

Shibboleth被设计为支持的正是这种情况。但是,它将依赖于您的客户公司实施身份提供商机制。目前,这在大学里只是非常普遍。此外,如果您需要用户信息(不仅仅是一个假名标识符),您需要公司同意将这些属性发布给您。

我发现很难相信很多公司会为您提供公司认证系统,只是为了提供SSO。

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

2

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

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

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

不少主要出版商已经实现OpenAthens因为这支持雅典,SAML/Shibboleth的和OpenID在一个单一平台,选择在其他技术插过,或编写自定义模块允许一个内部应用程序进行连接,例如该客户的用户在登录的发票或权利的系统记录。

访问管理的这个部门肯定是走向开放的标准,因此建立自己的方法将被剥夺到你的应用程序的大量用户

的访问