tencent cloud

文档反馈

ADFS 单点登录腾讯云指南

最后更新时间:2024-01-23 17:46:25

    操作场景

    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 子用户。

    前提条件

    拥有一台 Windows Server 云服务器。如您需要购买服务器,请参阅 云服务器-购买指南
    已进入服务器管理-仪表板页面,找到电脑中的添加角色和功能向导( 参考 安装或卸载角色、角色服务或功能)。
    拥有一个已完成实名认证的域名。

    操作步骤

    安装 AD 域服务和 DNS 服务

    1. 在仪表板管理页面,单击添加角色和功能,保持页面默认信息,一直单击下一步,进入添加角色和功能向导页面。
    2. 在添加角色和功能向导页面, 保持页面默认信息,一直单
    下一
    ,在服务器角色信息栏勾选 Active Directory 域服务、DNS 服务器。
    3. 保持页面默认信息,一直单击下一步,单击安装。在完成安装成功界面,单击右上角
    
    或在安装完成界面。
    4. 单击提升为域控制器,进入部署配置页面,填写域名,本文中示例为:example.com。
    5. 单击下一步,完成安装后,输入密码。保持页面默认信息,一直单击下一步
    6. 单击安装,安装完成后重启服务器。
    7. 完成 AD 域服务、DNS 服务安装,并将服务器提升为域控制器完毕。

    安装 Web 服务器

    1. 参考安装 AD 域服务和 DNS 服务中 步骤2,进入服务器角色页面,在服务器角色信息栏勾选 Web 服务器。
    2. 保持页面默认信息,一直单击下一步>安装,完成 Web 服务器安装。

    申请证书

    如您已拥有 SSL 证书,可直接进行 安装 ADFS 操作。
    1. 单击左下角Windows图标,在搜索框输入“mmc”命令,回车执行,进入控制台1-[控制台根节点]页面。
    2. 在控制台1-[控制台根节点]页面,单击文件 > 添加/删除管理单元,在弹出的窗口中选择证书,单击添加 > 完成
    3. 单击
    证书
    ,在展开的目录中,右键单击个人,单击所有任务 > 高级操作 > 创建自定义请求
    4. 保持页面默认信息,一直单击下一步,进入证书注册页面,单击不使用注册策略继续
    5. 在自定义请求页面,选择以下信息:
    模板:(无模板)旧密钥
    请求格式:PKCS#10
    6. 单击详细信息 > 证书属性,在常规栏补充友好名称、描述信息。
    7. 在使用者栏,填写值信息,本次示例为(*.example.com),单击添加
    8. 在私钥栏下勾选 Microsoft RSA SChanel Cytographi̇c Provider(加密)、使私钥可以导出。
    9. 单击确认 > 下一步,选择需要保存的目录,保存证书,单击完成。

    安装 ADC(AD证书服务器)

    1. 参考安装 AD 域服务和 DNS 服务中 步骤2,在服务器角色信息栏勾选 Active Directory 证书服务器。
    2. 保持默认信息,一直单击下一步,在角色服务栏勾选证书颁发机构、证书颁发机构 Web 注册。
    3. 单击安装,在完成安装成功界面,单击右上角
    
    ,单击配置目标服务器的 Active Directory 证书服务
    4. 保持页面默认信息,一直单击下一步,在角色服务栏勾选证书颁发机构、证书颁发机构 Web 注册。
    5. 保持页面默认信息,一直单击下一步,单击配置,完成安装 ADC。

    生成 SSL 证书

    1. 访问 https://localhost/certsrv, 单击申请证书
    2. 在申请一个证书页面,单击高级证书申请
    3. 在高级证书申请页面,单击使用 base64 编码的 CMC 或 PKCS#10 文件提交一个证书申请,或使用 base64 编码的 KCS#7 文件 续订证书申请
    4. 将申请证书保存的证书文件内容复制之后补充至以下输入框,证书模板选择 Web 服务器,单击提交
    5. 申请成功,
    单击下载
    (两种格式均需下载)。
    6. 参考申请证书的 步骤3,右键单击个人,单击所有任务>导入
    7. 选择 步骤5 保存的证书文件,保持页面默认信息,一直单击下一步>完成
    8. 参考申请证书的 步骤3,右键单击个人,单击所有任务>导出
    9. 在证书导出向导页面,选择“是,导出私钥”,勾选“组或用户名(建议)”,单击下一步,完成导出
    保存文件

    安装 ADFS

    1. 参考
    安装 AD 域服务
    和 DNS 服务中 步骤2,进入服务器角色页面,勾选 Active Directory 联合身份验证服务。
    2. 保持页面默认信息,一直单击下一步>完成,在结果页面,单击在此服务器上配置联合身份验证服务
    3. 保持页面默认信息,一直单击下一步,进入指定服务属性页面,填写导入以下信息 SSL 证书:导入在生成 SSL 证书中 步骤9 保存的证书文件。 联合身份服务名称:目标服务器名称(与右上角信息保持一致)或 sts.域名或 adfs.域名。 联合身份验证服务显示名称:用户在登录时看到显示名称。
    4. 在指定服务账户页面,输
    入账户名称
    、密码,保持页面默认信息,一直单击下一步直到安装 ADFS 完成。
    5. 访问以下链接下载 XML 文件。
    https://联合身份验证服务器名称/federationmetadata/2007-06/federationmetadata.xml
    6. 在 powerShell 中执行 Set-AdfsProperties –EnableIdpInitiatedSignonPage $True, 访问以下入口进行登录。
    https://联合身份验证服务器名称/adfs/ls/idpinitiatedSignOn.htm
    7. 输入 步骤4 中的账号名称、密码登录。
    说明:
    如浏览器登录提示出现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 访问权限。
    为您的身份提供商创建角色,命名格式为纯英文,保存您的角
    色名称
    。详细操作请参阅 为身份提供商创建角色 。 其中身份提供商选择在 腾讯云创建身份提供商 步骤中创建的身份提供商。

    配置用户和用户组

    1. 在服务器管理器仪表板页面,单击右上角工具,选择 Active Directory 用户和计算机。
    2. 在 Active Directory 用户和计算机页面,单击操作 > 新建 >
    3. 在新建对象-组页面, 填写组名信息。
    说明:
    <您的主账号 ID>替换为您的腾讯云帐户 ID,可前往 账号信息 - 控制台 查看。
    <腾讯云角色名>替换为您在腾讯云为身份提供商所创建的 角色名称
    4. 在 Active Directory 用户和计算机页面,单击操作 > 新建 > 用户
    5. 新建员工,填写员工基本信息,以英文命名用户名称,保存用户名称。
    6. 在 Active Directory 用户和计算机页面,在 Users 文件夹中找到新添加的用户,将用户添加至用户组。

    配置映射规则

    1. 单击服务器管理器-ADFS 页面右上角工具
    2. 选择 ADFS 管理,单击添加信赖方
    3. 在添加信赖方信任向导页面,选择“声明感知”,单击启动
    4. 访问以下链接下载腾讯云身份提供商的 XML 文件。
    https://cloud.tencent.com/saml.xml
    5. 导入腾讯云身份提供商的文件。
    6. 保持页面默认信息,一直单击下一步 > 完成
    7. 单击信赖方信任 > 添加规则 > 编辑声明颁发策略
    8. 在添加转换声明规则向导页面,单击选择规则类型 > 转换传入声明 > 下一步
    9. 在编辑规则页面,补充规则信息,单击确定
    说明:
    声明规则名称:补充为 NameID。
    传入声明类型: 选择 Windows 账户名。
    传出声明类型:选择名称 ID。
    传出名称 ID 格式:选择永久标识符。
    勾选传递所有声明值。
    10. 在添加转换声明规则向导页面,单击选择规则类型 > 使用自定义规则发送声明 > 下一步
    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/身份提供商名称"));
    其中“身份提供商名称”替换为您在 腾讯云创建身份提供商 步骤创建的身份提供商名称。
    14. 在添加转换声明规则向导页面,单击选择规则类型>使用自定义规则发送声明>下一步
    15. 在编辑规则页面,补充规则信息,单击确定。如下图所示:
    说明:
    声明规则名称: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 服务器之外的浏览器单点登录腾讯云,可以在域名服务商配置子域名(您的联合身份验证服务器名称),然后在进行访问登录。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持