有奖捉虫:行业应用 & 管理与支持文档专题 HOT
文档中心 > 访问管理 > 最佳实践 > 使用ADFS进行用户SSO的示例

操作场景

本文提供一个以 ADFS 与腾讯云进行用户 SSO 的示例,帮助您理解企业 IdP 与腾讯云进行 SSO 的端到端配置流程。

前提条件

1. 拥有一台 Windows Server 服务器。如您需要购买服务器,请参见 云服务器-购买指南
2. 在服务器内进行以下搭建工作。
2.1 DNS 服务器:将身份认证请求解析到正确的 Federation Service 上。
2.2 Active Directory 域服务(AD DS):提供对域用户和域设备等对象的创建、查询和修改等功能。
2.3 Active Directory Federation Service(AD FS):提供配置 SSO 信赖方的功能,并对配置好的信赖方提供 SSO 认证。
说明:
本文中涉及到 Microsoft Active Directory 配置的部分属于建议,仅用于帮助理解腾讯云 SSO 登录的端到端配置流程,腾讯云不提供 Microsoft Active Directory 配置的咨询服务。

操作步骤

安装部署 Microsoft AD

说明:
如您已安装部署 Microsoft AD,可忽略步骤1-5,从 步骤6 开始操作。
1. 在云服务器内,进入 Server Manager > Dashboard,单击 Add roles and features,如下图所示:


2. 一直单击 Next 直到单击 Install 完成安装,如下图所示:














3. 安装完成后单击 Promote this server to a domain controller,如下图所示:


4. 在 Deployment Configuration 页面选择 Add a new forest 补充 Root domain name 信息为 testdomain.com,如下图所示:


5. 在 Domain Controller Options 中补充 Password 信息,如下图所示,完成后一直单击Next,单击 Install 完成安装


6. 
安装完成后,服务
器将重启,重启完成后,进入 Start Menu > Active Directory Users and Computers,如下图所示:



7. Active Directory Users and Computers 页面,新建 Org 及 Users 信息,其中 Users-First name 名称需与后续腾讯云创建的子用户保持一致,如下图所示:










安装 CA

1. 在云服务器内,进入 Server Manager > Dashboard,单击 Add roles and features,如下图所示:



2. 一直单击 Next 直到 Server Roles 页面,在 Server Roles 页面选择 Active Directory Certificate Services,如下图所示:



3. 一直单击 Next 直到 AD CS > Role Services 页面,选择 Certification AuthorityCertification Authority Web Enrollment,如下图所示:



4. 一直单击 Next 直到 Results 页面,单击下图信息配置 AD CS Configuration,如下图所示:






5. 单击 Next,在 Role serveries 页面,勾选下图信息,单击 Next



6. Setup Type 页面,选择 Enterprise CA,如下图所示:



7. CA Type 页面,选择 Root CA,如下图所示:



8. Private Key 页面,选择 Create a new private key,如下图所示:












9. Certificate Database 页面,补充信息,单击 Next,如下图所示:






10. 访问 http://localhost/certsrv 确保 CA 安装成功,如下图所示:




安装 ADFS 服务

在配置前您需要给计算机或者指定的用户或者计算机授权证书颁发。安装 ADFS 前,需要创建和配置证书,本文中通过 IIS 进行证书申请。
1. 在云服务器内,单击

,在弹出的窗口单击工具,选择 IIS 管理器



2. 在 IIS 管理器中,单击服务器证书,如下图所示:



3. 
进入服务器证
书页面,单击创建证书申请,如下图所示:












4. 访问 http://localhost/certsrv,单击申请证书 > 高级证书申请 > 使用 base64 编码,如下图所示:









5. 在弹出的提交证书申请页面,将申请证书保存的证书文件内容复制之后补充至以下输入框,证书模板选择 Web 服务器,单击提交。如下图所示:



6. 
提交之后
,单击下载证书,如下图所示:



7. 服务器证书页面,单击完成证书申请,在弹出的页面选择 步骤6 下载的证书,如下图所示:






8. 网站 > Default Web Site 主页,右键单击编辑绑定,如下图所示:



9. 在弹出的网站绑定页面,单击添加,选择类型为 https,IP 地址为全部未分配,端口为 80,SSL 证书为 test.cert,如下图所示:



10. 在管理工具页面,单击证书颁发机构,如下图所示:



11. 证书颁发机构页面,选择证件模板,右键单击管理,如下图所示:



12. 请参考下图配置:









13. 进入服务器管理器 > 仪表板页面,单击添加角色和功能,按照默认选择一直单击下一步直到服务器角色选择页面,勾选 Active Directory Federation Services,一直单击下一步直至安装完成
14. 在安装完成页面,单击在此服务器上配置联合身份验证服务,如下图所示:



15. 在弹出的向导页面,单击下一步。



16. 设置指定服务属性,选择并填写好所需数据,单击下一步



17. 设置指定服务账户,选择使用现有的域用户账户或组托管服务账户,单击选择



18. 选择指定账户后,单击确认,确认后直至安装完成。




用户SSO配置

1. 
在服务器内
浏览器访问 https://adserver.testdomain.com/FederationMetadata/2007-06/FederationMetadata.xml,将源数据 XML 下载至本地。
2. 进入访问管理-用户 SSO 控制台,单击右侧编辑,设置 SSO 协议为 SAML,上传 步骤1 保存的 XML 文件。
3. 在服务器内进入 ADFS 管理页面,选择信任关系 > 信赖方信任,右键选择添加信赖方信任,单击启动,补充联合元数据地址,元数据地址从第 2 步中获取,一直单击下一步,如下图所示:









4. 配置完后,效果如下图所示:




为腾讯云 SP 配置 SAML 断言属性

为保证腾讯云 SAML 响应定位到正确的子用户,SAML 断言中的 NameID 字段需要是腾讯云子用户名。SAML 断言中的 NameID 默认传入为(TESTDOMAIN\\子用户名)格式,需正则表达式去除原有配置 TESTDOMAIN,仅保留子用户名(TESTDOMAIN 是前面的默认 NETBIOS 名)。自定义规则为:安装 ADFS 服务中步骤3 申请证书所在文件内的 txt 内容。






说明:
若出现请求终止,无法创建 SSL/TLS 安全通道时,可通过 powershell 执行方式重启服务器解决。
32位机器:
Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft.NetFramework\\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
64位机器:
Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft.NetFramework\\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
用户 SSO 登录:
1. 在浏览器输入 https://adserver.testdomain.com/adfs/ls/idpinitiatedsignon
2. 输入用户名、密码信息,即可完成登录,如下图所示: