AD FS可实现Windows Server跨域单点登录,需依次安装角色、配置联合服务器、添加信赖方信任、设置声明规则,并可选部署Web应用程序代理。
如果您希望在Windows Server环境中实现跨域应用的单点登录,AD FS(Active Directory Federation Services)可作为身份提供者(IdP)与外部服务提供者(SP)建立信任关系。以下是配置AD FS以支持联合身份验证的具体步骤:
AD FS作为Windows Server内置角色,需通过服务器管理器或PowerShell启用,该步骤为后续配置提供运行时基础和管理界面。
1、以管理员身份打开“服务器管理器”,点击“管理”菜单,选择“添加角色和功能”。
2、在“开始之前”页点击“下一步”,进入“选择安装
类型”,保持默认“基于角色或基于功能的安装”并点击“下一步”。
3、在“选择目标服务器”页确认当前服务器已选中,点击“下一步”。
4、在“选择服务器角色”页,展开“身份识别”,勾选“Active Directory 联合身份验证服务”,弹出对话框中点击“添加功能”。
5、继续点击“下一步”直至“确认安装选择”,勾选“如果需要,自动重启目标服务器”,点击“安装”。
安装完成后需运行AD FS配置向导,指定SSL证书、服务账户及FQDN,确保外部请求能被正确路由并建立加密通信通道。
1、安装完毕后,在“通知标志”中点击“配置此服务器上的AD FS”。
2、在“欢迎”页点击“下一步”,选择“创建新的联合服务器”,点击“下一步”。
3、在“指定证书”页,从下拉列表中选择一个绑定到443端口且私钥可导出的有效SSL证书,点击“下一步”。
4、在“指定服务账户”页,输入具有读取AD对象权限的域账户(如DOMAIN\adfssvc),点击“下一步”。
5、在“指定联邦服务名称”页,输入完全限定域名(如 fs.contoso.com),该名称必须能被客户端DNS解析且与证书主题匹配,点击“下一步”完成配置。
此步骤将外部应用程序注册为信赖方,AD FS据此生成符合SAML 2.0或WS-Fed协议的断言,并设定声明规则以映射用户属性。
1、打开“AD FS管理”控制台(可在服务器管理器→工具中找到)。
2、右键点击“信赖方信任”,选择“添加信赖方信任”。
3、在向导中选择“声称感知”,点击“下一步”。
4、选择“导入数据,该数据来自位于本地计算机上的文件”,点击“浏览”上传SP提供的元数据XML文件,或选择“手动输入数据”并填写SP的标识符(如 https://app.example.com/metadata.xml),点击“下一步”。
5、在“指定显示名称”页输入易识别名称(如“MyWebApp”),点击“下一步”。
6、在“选择访问控制策略”页,选择“允许所有用户访问此信赖方”,点击“下一步”。
7、勾选“关闭此向导后,配置声明规则”,点击“关闭”。
声明规则决定哪些用户属性(如UPN、电子邮件、组成员身份)以何种格式传递给信赖方,是实现精准授权的关键环节。
1、在“AD FS管理”中,展开“信赖方信任”,右键刚添加的信赖方,选择“编辑声明规则”。
2、在“颁发转换规则”选项卡中,点击“添加规则”。
3、选择模板“发送LDAP属性作为声明”,点击“下一步”。
4、在“声明规则名称”中输入“Send UPN”,在“属性存储”中选择“Active Directory”,映射如下:
LDAP属性:User-Principal-Name → 声明类型:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
5、再次点击“添加规则”,选择模板“发送LDAP属性作为声明”,映射:
LDAP属性:E-Mail-Addresses → 声明类型:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
6、点击“完成”保存所有规则。
若需支持Internet用户访问AD FS登录页,需部署Web应用程序代理(WAP)服务器作为反向代理,将HTTPS请求转发至内网AD FS服务器。
1、在另一台Windows Server(非域控制器)上,通过服务器管理器安装“远程访问”角色,勾选“Web应用程序代理”。
2、安装完成后,打开“远程访问管理”控制台,运行“配置向导”,选择“Web应用程序代理”。
3、在“指定AD FS服务器”页,输入内网AD FS服务器的FQDN(如fs.contoso.com)及管理员凭据。
4、在“指定证书”页,选择与AD FS公网FQDN匹配的SSL证书(如fs.publicdomain.com),点击“下一步”。
5、完成向导后,在“WAP服务器”节点右键“发布应用程序”,添加新发布规则,设置内部URL为AD FS服务地址(https://fs.contoso.com/adfs/ls/),外部URL为公网地址(https://fs.publicdomain.com/adfs/ls/)。