访问管理 ADFS 单点登录腾讯云指南

Active Directory Federation Services(ADFS)是 Microsoft’s 推出的 Windows Server 活动目录联合服务 (ADFS). ADFS是一种能够用于一次会话过程中多个Web应用用户认证的新技术。腾讯云支持基于 SAML 2.0(安全断言标记语言 2.0)的联合身份验证,SAML 2.0 是许多身份验证提供商(Identity Provider, IdP)使用的。

相关产品
访问管理 产品页,含版本规格、价格与购买入口。

一、前提条件

·拥有一台 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 Cytographic Provider(加密)、使私钥可以导出:


9. 单击确认 > 下一步,选择需要保存的目录,保存证书,单击完成:


五、安装 ADC(AD 证书服务器)

1. 参考安装 AD 域服务和 DNS 服务中 步骤2,在服务器角色信息栏勾选 Active Directory 证书服务器:


2. 保持默认信息,一直单击下一步,在角色服务栏勾选证书颁发机构、证书颁发机构 Web 注册:


3. 单击安装,在完成安装成功界面,单击右上角  ,单击配置目标服务器的 Active Directory 证书服务:


4. 保持页面默认信息,一直单击下一步,在角色服务栏勾选证书颁发机构、证书颁发机构 Web 注册:


5. 保持页面默认信息,一直单击下一步,单击配置,完成安装 ADC:


六、生成 SSL 证书

1. 访问 http://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 完成:


注意:说明:

注意:若显示没有账号,请前往“服务器管理器 – 右上角「工具」- Active Directory 用户和计算机”,在域名“example.com”目录下的 Users 中添加用户。

5. 访问以下链接下载 XML文件。

https://联合身份验证服务器名称/federationmetadata/2007-06/federationmetadata.xml

6. 在 powerShell 中执行 Set-AdfsProperties –EnableIdpInitiatedSignonPage $True,访问以下入口进行登录。

https://联合身份验证服务器名称/adfs/ls/idpinitiatedSignOn.htm

7. 输入 步骤4 中的账号名称、密码登录。

8. 登录成功:


注意:说明:

注意:如浏览器登录提示出现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 身份提供商,命名格式为纯英文,保存你的身份提供商名称。详细操作请参见 创建身份提供商。

其中元数据文档你可以访问以下链接下载提供商的 xml 文件。

https://联合身份验证服务器名称/federationmetadata/2007-06/federationmetadata.xml

九、为身份提供商创建角色

注意:说明:

注意:你可以通过本步骤分配用户访问权限,向 ADFS 用户分配腾讯云的 SSO 访问权限。

为你的身份提供商创建角色,命名格式为纯英文,保存你的角色名称。详细操作请参阅 为身份提供商创建角色 。
其中身份提供商选择在 腾讯云创建身份提供商 步骤中创建的身份提供商。

十、配置用户和用户组

1. 在服务器管理器仪表板页面,单击右上角工具,选择 Active Directory 用户和计算机:


2. 在 Active Directory 用户和计算机页面,单击操作 > 新建 > 组:


3. 在新建对象-组页面, 填写组名信息:

注意:说明:

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. 在编辑规则页面,补充规则信息,单击确定:


注意:说明:

10. 在添加转换声明规则向导页面,单击选择规则类型 > 使用自定义规则发送声明 > 下一步:


11. 在编辑规则页面,补充规则信息,单击确定:


注意:说明:

注意: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. 在编辑规则页面,补充规则信息,单击确定:

注意:说明:

注意: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. 在编辑规则页面,补充规则信息,单击确定。如下:

注意:说明:

注意: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"));

十二、账号登录

在你的服务器浏览器中输入以下网址,访问登录腾讯云。

https://联合身份验证服务器名称/adfs/ls/idpinitiatedSignOn.htm

注意:说明:

注意:如你需要在 ADFS 服务器之外的浏览器单点登录腾讯云,可以在域名服务商配置子域名(你的联合身份验证服务器名称),然后再进行访问登录。

赞 (0)
上一篇 4天前
下一篇 4天前