请求协助在AWS实例中搭建ADFS以测试SAML身份验证
在AWS搭建ADFS环境用于SAML身份验证测试
一、先搞定AWS基础资源
- 启动两台Windows Server实例(推荐2019或2022版本):一台当域控制器(DC),一台当ADFS服务器,必须放在同一VPC和子网,安全组开放以下端口:
- DC:53(DNS)、88(Kerberos)、389(LDAP)、445(SMB)
- ADFS服务器:443(HTTPS,ADFS核心端口)、389(LDAP)
- 给两台实例设置静态私有IP,避免重启后IP变动导致域配置失效
二、搭建Active Directory域控制器
- 登录DC实例,打开服务器管理器,选择“添加角色和功能”,勾选Active Directory域服务,完成安装流程
- 将服务器提升为域控制器:
- 点击右上角通知,选择“将此服务器提升为域控制器”
- 选择“添加新林”,输入根域名(比如
testadfs.local) - 设置目录服务还原模式(DSRM)密码,配置完成后重启实例
- 创建测试用户:
- 打开Active Directory用户和计算机,在域下新建组织单元(OU),比如
ADFSUsers - 在该OU中创建测试用户,设置密码并勾选“密码永不过期”
- 打开Active Directory用户和计算机,在域下新建组织单元(OU),比如
三、将ADFS服务器加入域
- 登录ADFS服务器,右键“此电脑”→“属性”,点击“更改设置”→“更改”
- 选择“域”,输入之前创建的根域名(
testadfs.local),使用DC的域管理员账号密码验证,完成后重启实例
四、安装配置ADFS服务器
- 安装ADFS角色:
- 打开服务器管理器,选择“添加角色和功能”,勾选Active Directory联合身份验证服务,完成安装
- 配置ADFS:
- 点击通知栏的“配置联合身份验证服务”
- 选择“创建新的联合身份验证服务”,测试环境选“独立联合服务器”即可(无需搭建服务器农场)
- 选择服务账户:测试环境用域管理员账户就行,生产环境建议创建专门的ADFS服务账户
- 设置ADFS名称(比如
TestADFS),SSL证书选自签名证书即可(测试环境,生产环境需用CA签发的证书) - 配置完成后重启服务器
- 验证ADFS运行状态:
- 访问
https://<ADFS服务器私有IP>/adfs/ls/idpinitiatedsignon.htm,能看到登录页面就说明服务正常
- 访问
五、配置SAML应用(以测试应用为例)
- 获取ADFS元数据:
- 访问
https://<ADFS服务器私有IP>/FederationMetadata/2007-06/FederationMetadata.xml,保存该XML文件,这是IdP的元数据文件
- 访问
- 在测试应用(SP)中配置IdP:
- 上传刚才保存的元数据文件,或者手动输入实体ID(
http://testadfs.local/adfs/services/trust)、SSO登录URL(https://<ADFS服务器私有IP>/adfs/ls/)
- 上传刚才保存的元数据文件,或者手动输入实体ID(
- 在ADFS中添加SP信任:
- 打开ADFS管理控制台,右键“信任关系”→“添加信赖方信任”
- 选择“导入数据文件”,上传测试应用提供的SP元数据文件(或手动输入SP实体ID)
- 设置显示名称,完成信赖方信任创建
- 配置声明规则:
- 右键刚创建的信赖方信任→“编辑声明规则”
- 添加一条“发送LDAP属性作为声明”的规则:选择AD作为属性存储,映射必要属性(比如
E-Mail-Addresses对应Name ID,Given-Name对应GivenName),确保SAML断言包含应用所需的用户属性
六、测试SAML身份验证
- 打开测试应用的登录页面,选择ADFS登录选项
- 输入之前创建的域测试用户账号密码,能成功登录应用即说明SAML配置生效
内容的提问来源于stack exchange,提问作者Ganesh Thirumani
相关产品推荐
相关产品推荐

