Active directory Web应用的单点登录

Active directory Web应用的单点登录,active-directory,single-sign-on,shibboleth,Active Directory,Single Sign On,Shibboleth,一个多月以来,我一直在努力了解这个问题是如何解决的。我真的需要想出一个通用的方法。我有一个理论,但我不确定这是最简单(或正确)的方法,而且我还没有找到任何信息来支持我的想法 以下是场景: 1) 您有一个复杂的web应用程序,它在订阅的基础上提供安全的内容 2) 用户需要使用用户名和密码登录到您的应用程序 3) 您向已经拥有企业身份验证技术(例如Active Directory)的大公司销售产品 4) 您希望与公司身份验证机制集成,以允许其用户登录到您的Web应用程序,而无需输入用户名和密码 现在

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

以下是场景:

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

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

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

4) 您希望与公司身份验证机制集成,以允许其用户登录到您的Web应用程序,而无需输入用户名和密码

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

  • 添加新用户
  • 删除用户
  • 更改用户信息
  • 允许用户登录
理想情况下,当公司客户对自己的身份验证进行相应更改时,所有这些都将“自动”发生

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

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

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

我将非常感谢任何人对我在这里提到的任何事情的建议。特别是,如果你能告诉我,我关于提供与服务器端Web服务通信的客户端应用程序的理论是否正确,或者我是否完全走错了方向。另外,如果你能告诉我任何网站或文章,解释如何做到这一点,我会非常感激。到目前为止,我的研究成果还不多

最后,如果您能让我知道目前提供此服务的任何Web应用程序(特别是与公司Active Directory相关的应用程序),我将非常感谢。我想知道其他B2B网络应用程序,如salesforce.com或hoovers.com,是否为其公司客户提供类似的服务

我讨厌在黑暗中,我非常感激你能给我带来的一切

Jeremy的设计就是为了支持这个场景。但是,它将依赖于客户的公司实施身份提供者机制。目前,这只在大学里很普遍。此外,如果您想要用户信息(不仅仅是假名标识符),您需要公司同意向您发布这些属性

我发现很难相信许多公司会向您开放他们的企业身份验证系统,只是为了提供SSO


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

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

因此,OpenAthens和Shibboleth在学术图书馆社区中被广泛采用,以利用本地颁发的证书。一所典型的中型/大型大学可以订阅来自50多家不同出版商的各种产品/服务,通过部署OpenAthens/Shibboleth,他们可以利用SAML开放标准(SAML是Shibboleth使用的协议),该标准不仅在学术界,而且在学术界的使用率也在不断提高,但在商业部门也是如此

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

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


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

我很好奇为什么昨天有人否决了这个问题。想发表评论吗?请注意,在它发布两年后,有人对它投了否决票。巧合的是(也许?),投否决票的人可能是第千位观众。我正在寻找非常相似的东西。你找到解决问题的办法了吗?请分享关于如何实现这一目标的任何见解。@Gala101抱歉,不是真的。我最终离开了我本该做这项工作的公司,所以这对我来说不再是一个优先考虑的问题