对于非Microsoft人士,ADFS是什么?
与LDAP之类的东西有什么不同?
它如何工作?对ADFS服务器的典型请求中将包含哪些信息?它是为身份验证和授权而设计的吗?
通常可以从Internet上访问ADFS服务器(而不能通过公司AD域控制器访问)吗?
我可以吗?我曾尝试阅读一些Technet文档,但是充斥微软语言,并没有太大帮助。
Wikipedia更好(请参见下文),但是ServerFault社区中的一些人可以填写一些内容差距。
Active Directory联合身份验证服务(ADFS)是Microsoft开发的软件组件,可以安装在Windows Server操作系统上,以为用户提供对系统的单点登录访问和跨组织边界的应用程序。它使用基于声明的访问控制授权模型来维护应用程序的安全性并实现联合身份。
基于声明的身份验证是基于一组有关其身份的声明对用户进行身份验证的过程。受信任的令牌。
在ADFS中,通过在两个安全领域之间建立信任关系来在两个组织之间建立身份联合。一侧(帐户一侧)的联合服务器通过Active Directory域服务中的标准方法对用户进行身份验证,然后发出令牌,其中包含有关用户的一系列声明,包括其身份。另一方面,在资源方面,另一个联合服务器验证令牌并为本地服务器发出另一个令牌以接受声明的身份。这允许系统向属于另一个安全领域的用户提供对其资源或服务的受控访问,而无需用户直接向系统进行身份验证,并且两个系统无需共享用户标识或密码的数据库。
实际上,用户通常会感觉这种方法如下:
用户登录到本地PC(就像早上开始工作时通常那样)
用户需要在合作伙伴公司的Extranet网站上获取信息-例如获取价格或产品详细信息
用户导航到合作伙伴公司的Extranet网站-例如:http://example.com
合作伙伴网站现在不需要输入任何密码-而是使用AD FS将用户凭据传递到合作伙伴外联网站点。
用户现在登录到合作伙伴网站并可以进行交互网站“已登录”
来自http s://en.wikipedia.org/wiki/Active_Directory_Federation_Services
#1 楼
对于非Microsoft人员,ADFS是什么?
ADFS是Microsoft的单点登录和基于Web的身份验证的解决方案。
它是主要用于提供一组凭据,这些凭据可以访问不一定在同一域中托管的各种站点。
与LDAP之类的东西有什么不同? br />
LDAP:
在端口389(或LDAPS的端口636)上使用TCP / UDP进行通信
包含用于搜索/检索/添加/删除的命令/修改用户,配置文件和其他目录条目
不能直接通过网络浏览器执行,但是HTTP身份验证可以使用Apache
mod_authnz_ldap
之类的东西转换为LDAP。用于第三方网站身份验证时,要求将用户名和密码提供给第三方,这对于安全性而言并不理想。
更多的是开放标准,并且具有许多Linux实现。
ADFS:
更好的设计为网络设计,因为它通过标准HTTPS进行通信
遵循与OAuth类似(但不完全)的安全过程,在该过程中,原始用户名/密码直接提供给组织的ADFS服务器(或代理,但不提供给第三方一方)(如果有效),则返回一个唯一的令牌,该令牌可用于访问第三方网站。需要仅在Windows Servers上运行的Internet信息服务(IIS)。
另请参见此主题上的答案。
它是如何工作的?对ADFS服务器的典型请求中将包含哪些信息?它既用于身份验证又用于授权?
它通过拥有一个托管ADFS / ADFS代理服务器的站点(站点A)来工作,该站点可以访问凭据(通常通过与Active Directory域控制器进行通信)。然后在需要通过ADFS进行身份验证的其他站点(站点B和C)之间获得信任。
当用户尝试在其浏览器中访问站点B时,该站点会将用户重定向到ADFS。 -proxy网站(站点A)询问其用户名和密码,进行身份验证,返回一组用于记住它们的cookie,并将它们连同访问令牌重定向到站点B。
如果用户随后尝试访问站点C,则他们还将从ADFS代理网站重定向到站点A进行身份验证。如果存在正确的cookie,则不需要用户再次输入密码,而是立即使用令牌将其重定向回站点C。
可以为ADFS配置特定的声明(或权限)为了用户,出于授权目的。因此,它可以同时扮演两个角色。 (请注意,身份验证和授权之间的区别。)
有些人更喜欢不使用它进行授权,而是将权限管理保留在第三方网站中。明显的不利之处在于,站点A和B都需要跟踪用户帐户,而在ADFS同时处理两个用户的情况下,只有ADFS才需要了解用户。
通常可以从Internet访问ADFS服务器(而不能通过公司AD域控制器访问)吗?
是的,几乎总是可以的。 ADFS基于将主要用于网站身份验证的概念。并且基于IIS构建。
ADFS代理站点是通常可以从Internet访问的站点。但是,ADFS本身不是。通常,ADFS是与ADFS代理分开的独立服务器。
ADFS服务器
链接到凭据并具有声明配置和信任关系的服务器。通常不能公开访问。
ADFS代理服务器
承载IIS实例的服务器,该实例具有需要身份验证的网站的登录页面。需要身份验证时,与ADFS通信。通常可公开访问。
评论
需要说明的是:ADFS代理服务器必须在IIS(Windows)上运行。但是,客户端网站(B&C)可以运行任何操作系统和Web服务器,包括Linux。
–奥利
16-09-23在7:57
非常有帮助,刚刚创建了一个帐户来尝试一下。
–胡安
18年5月22日在6:47
扩展@Reaces的答案,Windows Server 2016上的ADFS 4.0完全支持OAuth / OpenId Connect。
–穆罕默德·雷扎·萨德雷迪尼(Mohammad Reza Sadreddini)
19年8月9日在11:58
@MohammadRezaSadreddini随时编辑答案以扩大答案。
–现实
19年8月10日在8:54
评论
我发现这些文章和此视频有助于提供概述。雷斯提供了一个很好的答案。我要添加的唯一附加信息是,可能需要了解ADFS实施的标准WS-Federation协议和安全性声明标记语言(SAML)。以下是我发现对理解这些(相当复杂的)概念有用的视频。不幸的是,它们包含了太多的材料,因此我无法在此处包含。 ![视频缩略图了解YouTube上的SAML和单一登录101](youtube.com/watch?v=gUmMcecHN9s)[![视频缩略图](http
我在理解ADFS时也遇到了麻烦。我从一开始就需要一个解释(我不是AD人)。该视频包含在此处评论中提到的系列中,对我非常有帮助。在这里,任何新的,零经验的ADFS使用者都应从这里开始,然后继续观看本系列的其他视频。希望对您有所帮助。 youtube.com/…
抱歉,主持人删除了我的回答,并附上了有用的视频,并在上面发表了评论,但现在已被破坏。令人沮丧。