有人告诉我,我们的PHP应用程序可能需要支持使用ADFS的认证。
我想请问一下:"你是怎么知道的?"
1.对于一个非微软的人来说,什么是ADFS?
2.2. 它与LDAP之类的东西有什么不同?
3.它是如何工作的? 在向ADFS服务器发出的典型请求中会包括哪些信息? 它是为认证和授权而设计的吗?
4.ADFS服务器是否通常可以从互联网上访问(而企业的AD域控制器则不可以)?
我试着阅读了一些Technet的文档,但其中充满了微软的术语,没有什么帮助。
维基百科比较好(见下文),但也许ServerFault社区的一些人可以填补一些空白。
活动目录联盟服务(ADFS)**是微软开发的一个软件组件,可以安装在Windows服务器操作系统上,为用户提供跨组织边界的系统和应用程序的单点登录访问。它使用一个基于索赔的访问控制授权模型来维护应用程序的安全并实施联合身份。
基于索赔的认证是根据可信令牌中包含的关于用户身份的一组索赔来认证用户的过程。
在ADFS中,身份联合是通过在两个安全领域之间建立信任而在两个组织之间建立的。一方的联盟服务器(账户方)通过活动目录域服务中的标准手段对用户进行认证,然后发出一个包含一系列关于用户的声明的令牌,包括其身份。在另一边,即资源方,另一个联盟服务器验证该令牌,并为本地服务器发出另一个令牌以接受声称的身份。这允许一个系统向属于另一个安全领域的用户提供对其资源或服务的受控访问,而不要求用户直接向系统进行认证,并且两个系统不共享用户身份或密码的数据库。
在实践中,这种方法通常被用户认为是:。
1.用户登录他们的本地电脑(就像他们在早上开始工作时通常会做的那样)。 2.用户需要在伙伴公司的外联网网站上获取信息--例如,获取价格或产品细节 3.用户导航到伙伴公司的外联网网站--例如:http://example.com 4.合作伙伴网站现在不需要输入任何密码,而是使用AD FS将用户证书传递给合作伙伴外联网网站。 5.用户现在已经登录到合作伙伴的网站,并可以与网站进行互动'登录'
从https://en.wikipedia.org/wiki/Active_Directory_Federation_Services
对于一个非微软人来说,什么是ADFS?
ADFS是微软的单点登录和基于网络的认证解决方案。
它主要用于提供一套单一的凭证,可以访问不一定托管在同一域内的各种网站。
它与LDAP等东西有什么不同?
LDAP:
mod_authnz_ldap
这样的东西转换为LDAP。ADFS:
关于这个问题,还请看这个答案。
它是如何工作的?对ADFS服务器的典型请求中会包括哪些信息?它是为认证和授权而设计的吗?
它的工作原理是由一个单一的站点(站点A)来主持ADFS/ADFS代理服务器,它可以访问证书(通常通过与活动目录域控制器通信)。然后,它在其他需要通过ADFS进行认证的站点(站点B& C)之间给予信任。
当用户试图在他们的浏览器中访问网站B时,该网站将用户重定向到ADFS-代理网站(网站A),该网站询问他们的用户名& 密码,对他们进行认证,返回一组用于记住他们的cookies,并将他们重定向到网站B,同时提供访问令牌。
如果用户再试图访问C站点,他们也会被重定向到ADFS-代理网站进行认证。 如果存在正确的cookies,用户将不需要再次输入他们的密码,而是立即带着令牌被重定向到网站C。
ADFS可以为用户配置特定的要求(或权限),以达到授权的目的。所以它可以同时扮演这两个角色。(注意认证和授权之间的区别)。
有些人喜欢不把它用于授权,而是把权限管理放在第三方网站上。显而易见的缺点是,网站A & B都需要跟踪用户的账户,而在ADFS处理两者的情况下,只有ADFS需要知道用户的情况。
ADFS服务器是否通常可以从互联网上访问(而企业的AD域控制器则不可以)?
是的,几乎总是如此。ADFS的基础是它将主要用于网站认证。它是围绕IIS建立的。
ADFS-代理网站通常可以从互联网上访问。然而,ADFS本身却不是。ADFS通常是一个独立于ADFS-代理的服务器。