Active Directory Federation Services(ADFS)是 Microsoft's 推出的 Windows Server 活动目录联合服务 (ADFS). ADFS是一种能够用于一次会话过程中多个Web应用用户认证的新技术。腾讯云支持基于 SAML 2.0(安全断言标记语言 2.0)的联合身份验证,SAML 2.0 是许多身份验证提供商(Identity Provider, IdP)使用的一种开放标准。您可以通过基于 SAML 2.0 联合身份验证将 ADFS 与腾讯云进行集成,从而实现 ADFS 帐户自动登录(单一登录)腾讯云控制台管理腾讯云的资源,不必为企业或组织中的每一个成员都创建一个 CAM 子用户。
1.参考安装 AD 域服务和 DNS 服务中 步骤2,进入服务器角色页面,在服务器角色信息栏勾选 Web 服务器。
如您已拥有 SSL 证书,可直接进行 安装 ADFS 操作。
单击左下角Windows图标,在搜索框输入“mmc”命令,回车执行,进入控制台1-[控制台根节点]页面。
在控制台1-[控制台根节点]页面,单击文件>添加/删除管理单元,在弹出的窗口中选择证书,单击添加>完成。
单击证书,在展开的目录中,右键单击个人,单击所有任务>高级操作>创建自定义请求。
保持页面默认信息,一直单击下一步,进入证书注册页面,单击不使用注册策略继续。
在自定义请求页面,选择以下信息:
单击详细信息>证书属性,在常规栏补充友好名称、描述信息。
在使用者栏,填写值信息,本次示例为(*.example.com),单击添加。
在私钥栏下勾选 Microsoft RSA SChanel Cyptograhic Provider(加密)、使私钥可以导出。
单击确认>下一步,选择需要保存的目录,保存证书,单击完成。
参考安装 AD 域服务和 DNS 服务中 步骤2,进入服务器角色页面,勾选 Active Directory 联合身份验证服务。
保持页面默认信息,一直单击下一步>完成,在结果页面,单击在此服务器上配置联合身份验证服务。
保持页面默认信息,一直单击下一步,进入指定服务属性页面,填写导入以下信息
SSL 证书:导入在生成 SSL 证书中 步骤9 保存的证书文件。
联合身份服务名称:目标服务器名称(与右上角信息保持一致)或 sts.域名或 adfs.域名。
联合身份验证服务显示名称:用户在登录时看到显示名称。
在指定服务账户页面,输入账户名称、密码,保持页面默认信息,一直单击下一步直到安装 ADFS 完成。
访问以下链接下载 XML文件。
https://联合身份验证服务器名称/federationmetadata/2007-06/federationmetadata.xml
https://联合身份验证服务器名称/adfs/ls/idpinitiatedSignOn.htm
说明:如浏览器登录提示出现400 Bad Request,在 powerShell 中进行以下操作
首先获取启动 ADFS 服务的用户。然后打开 PowerShell,执行脚本 setspn -s http/ADFS 所在服务器的访问地址 域控\用户。例如,ADFS 所在服务器的全称为 172_21_0_13.weezer.club ,域控机器为WEEZER,用户为 Administrator,那么所执行的脚本就是 setspn -s http/172_21_0_13.weezer.club WEEZER\Administrator。
说明:您可以通过本步骤配置 ADFS 和腾讯云之间的信任关系使之相互信任。
在腾讯云创建 SAML 身份提供商,命名格式为纯英文,保存您的身份提供商名称。详细操作请参阅 创建身份提供商。
说明:您可以通过本步骤分配用户访问权限,向 ADFS 用户分配腾讯云的 SSO 访问权限。
为您的身份提供商创建角色,命名格式为纯英文,保存您的角色名称。详细操作请参阅 为身份提供商创建角色 。
其中身份提供商选择在 腾讯云创建身份提供商 步骤中创建的身份提供商。
说明:
- <您的主账号 ID>替换为您的腾讯云帐户 ID,可前往 账号信息 - 控制台 查看。
- <腾讯云角色名>替换为您在腾讯云为身份提供商所创建的 角色名称。
单击服务器管理器-ADFS 页面右上角工具。
选择 ADFS 管理,单击添加信赖方。
在添加信赖方信任向导页面,选择“声明感知”,单击启动。
访问以下链接下载腾讯云身份提供商的 XML 文件。
https://cloud.tencent.com/saml.xml
说明:
- 声明规则名称:补充为 NameID。
- 传入声明类型: 选择 Windows 账户名。
- 传出声明类型:选择名称 ID。
- 传出名称 ID 格式:选择永久标识符。
- 勾选传递所有声明值。
11.在编辑规则页面,补充规则信息,单击确定。
说明:
- 声明规则名称:补充为 Get AD Groups。
- 自定义规则: 补充以下信息
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value);
12. 在添加转换声明规则向导页面,单击选择规则类型>使用自定义规则发送声明>下一步。
13. 在编辑规则页面,补充规则信息,单击确定。
说明:
- 声明规则名称:补充为 Role。
- 自定义规则: 补充以下信息
c:[Type == "http://temp/variable", Value =~ "(?i)^Tencent-([\d]+)"]
=> issue(Type = "https://cloud.tencent.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "Tencent-([\d]+)-(.+)", "qcs::cam::uin/$1:roleName/$2,qcs::cam::uin/$1:saml-provider/身份提供商名称"));
其中“身份提供商名称”替换为您在 腾讯云创建身份提供商 步骤创建的身份提供商名称。
在添加转换声明规则向导页面,单击选择规则类型>使用自定义规则发送声明>下一步。
在编辑规则页面,补充规则信息,单击确定。如下图所示:
- 声明规则名称:RoleSessionName。
- 自定义规则: 补充以下信息
c:[Type == "http://temp/variable", Value =~ "(?i)^Tencent-([\d]+)"] => issue(Type = "https://cloud.tencent.com/SAML/Attributes/RoleSessionName", Value = RegExReplace(c.Value, "Tencent-([\d]+)-(.+)", "test"));
说明:
- 如您需要在 ADFS 服务器之外的浏览器单点登录腾讯云,可以在域名服务商配置子域名(您的联合身份验证服务器名称),然后在进行访问登录。
本页内容是否解决了您的问题?