如何配置AD FS使SAML响应中的Issuer从HTTP改为HTTPS?
AD FS返回的SAML响应里的Issuer值,主要和AD FS服务的标识符(Entity ID)以及终结点配置挂钩,以下是具体配置步骤:
检查并修正AD FS终结点协议
打开AD FS管理控制台,依次进入服务 > 终结点,找到类型为SAML 2.0/WS-Federation的终结点,确认其URL前缀是https://。如果是HTTP,先确保AD FS服务器已经绑定了有效的SSL证书,然后把该终结点的协议改成HTTPS。用PowerShell修改AD FS服务标识符
先查看当前的服务标识符:Get-AdfsProperties | Select-Object Identifier如果输出是HTTP地址,执行下面的命令改成HTTPS版本:
Set-AdfsProperties -Identifier "https://[server_name]/adfs/services/trust"改完后重启AD FS服务:
Restart-Service adfssrv同步依赖方信任的标识符
打开AD FS管理控制台的信任关系 > 依赖方信任,找到你的应用对应的条目,右键选属性,切换到标识符标签页,确保里面的标识符和AD FS的服务标识符(HTTPS版本)完全一致。验证配置生效
访问AD FS的元数据地址:https://[server_name]/federationmetadata/2007-06/federationmetadata.xml,查找<EntityDescriptor>标签的entityID属性,确认它已经变成HTTPS的地址,这时候再发起SAML请求,响应里的Issuer就会是HTTPS了。
另外关于你提到的“默认EntityId是HTTP但变成了HTTPS”,大概率是之前有人通过PowerShell修改过AD FS的全局属性,或者在配置依赖方信任时手动指定了HTTPS的标识符,也有可能是AD FS绑定SSL证书后,部分配置被自动更新但终结点没同步到位。
内容的提问来源于stack exchange,提问作者hobbes_child

