我一直试图了解这个问题现在已经解决了一个多月了。我真的需要提出一个有效的通用方法。我有一个理论,但我不确定这是最简单(或正确)的方法,而且我无法找到任何信息来支持我的想法。
以下是该方案:
1)您有一个复杂的Web应用程序,可以在订阅的基础上提供安全的内容。
2)用户需要使用用户名和密码登录您的应用程序。
3)您向已经拥有企业身份验证技术的大型公司(例如,Active Directory)销售。
4)您希望与企业身份验证机制集成,以允许其用户登录您的Web应用程序,而无需输入用户名和密码。
现在,您提出的任何解决方案都必须提供以下机制:
理想情况下,当公司客户对自己的身份验证进行相应更改时,所有这些都会“自动”发生。
现在,我有一个理论认为,这样做(至少对于Active Directory)的方法是我编写一个客户端应用程序,它与客户的Active Directory集成以跟踪目标更改,然后进行通信更改我的Web应用程序。我认为,如果通过我的网络应用程序提供的Web服务进行此通信,那么它将保持不可控制的安全级别,这显然是这些公司客户的要求。
我发现了一些名为Active Directory联合身份验证服务(ADFS)的Microsoft产品的信息,这对我来说可能是正确的方法,也可能不是。它看起来有点笨重,并且有些要求可能对所有客户都不起作用。
对于其他现有ID方案(如Athens和Shibboleth),我认为不需要客户端应用程序。这可能只是一个与现有ID服务相关的问题。
我很感激任何人对我在这里提到过的任何建议。特别是,如果你能告诉我,我的理论是否正确,提供了一个与服务器端Web服务通信的客户端应用程序,或者我是否完全朝着错误的方向前进。此外,如果你能指出我在任何网站或文章解释如何做到这一点,我真的很感激。到目前为止,我的研究还没有多少进展。
最后,如果您能告诉我当前提供此服务的任何Web应用程序(特别是与企业Active Directory相关联),我将非常感激。我想知道其他B2B网络应用程序是否像salesforce.com或hoovers.com为其企业客户提供类似的服务。
我讨厌在黑暗中,并且非常感谢你能摆脱的任何光......
杰里米
答案 0 :(得分:3)
Shibboleth旨在完全支持这种情况。但是,它将依赖于您的客户公司实施身份提供商机制。目前,这在大学里才真正常见。此外,如果您需要用户信息(不仅仅是假名标识符),您需要公司同意向您发布这些属性。
我发现很难相信许多公司会向您开放公司认证系统,只是为了提供SSO。
您可能会发现最好依赖OpenID或类似内容,并使用“记住我”Cookie来减少人们输入密码的需要。
答案 1 :(得分:2)
您的方法的一个基本问题是您正在考虑单独使用您的Web应用程序。客户公司的员工不仅要求对您的网络应用程序进行SSO,而且还需要一些/少数/许多其他人员,并且扩展您的方法需要为每个人提供定制的实施以实现访问。
因此,OpenAthens和Shibboleth在学术图书馆社区中广泛采用,以利用本地颁发的证书。典型的中型/大型大学可以订阅来自50多个不同出版商的各种产品/服务,通过部署OpenAthens / Shibboleth,他们可以利用SAML开放标准(SAML是Shibboleth使用的协议),不仅在学术领域,而且在商业领域。
John上面的回答指出了另一个问题:最近出现了许多开放标准,其中包括SAML和OpenID。因此,内容提供商必须决定是否要本地实现部分或全部这些内容,但他们使用单独的技术堆栈,因此可以重复实施和支持成本。
相当多的主要发布商已实施OpenAthens,因为它在单一平台上支持雅典,SAML / Shibboleth和OpenID,还可以选择插入其他技术,或编写自定义模块以允许内部应用连接,例如发票或权利系统,记录客户的用户登录。
这个访问管理部门肯定会转向开放标准,因此构建自己的方法将剥夺对大量用户访问您的应用程序