如何搭建一套Azure AD与ADFS集成身份的环境

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何搭建一套Azure AD与ADFS集成身份的环境相关的知识,希望对你有一定的参考价值。

参考技术A 1. 一个公网IP地址,这个公网IP地址是需要发布ADFS服务,从而在从Azure
AD重定向到ADFS服务时能找到。实际环境中,可以使用ADFS Proxy或者Windows Application
Proxy,或者其他反向代理将ADFS发布出来。测试环境中,我们会Azure的虚拟机,因为Azure虚拟机所在的Cloud
Service提供了一个公网地址。

2. 一个公网证书,这是客户端通过https的ADFS服务时需要的证书,测试环境中我们就不适用公网证书了,使用自建的CA服务器,缺点是客户端访问会报证书错误,或者得提前在客户端安装证书,但这不影响实际功能使用。

3. DC

4. ADFS

5. 公网域名

以下测试环境中需要使用Azure,至少需要一个Azure订阅,具体步骤如下

1. 首先登陆Azure的门户,在网络中创建一个虚拟网络

2. 创建完成后,我们创建2个Server 2012 r2 虚拟机,一台为DC,一台为ADFS。在虚拟机的设置里,网络选择我们刚刚创建的CorpNet,针对ADFS,我们需要在端口上把HTTPS和HTTP都打开。

3. 在创建过程中,我们先下载一下Azure的PowerShell组件,我们需要为这两个虚拟机固定一下IP地址。

注:Azure Powershell是需要.net framework 4.5的,所以如果你目前的PC是Win7或者更老版本的话,请安装.NET framework 4.5

4.
使用MSTSC远程登陆创建好的DC和ADFS,查看这两台服务器的目前分配得到的IP地址,这是用我们创建的CorpNet的DHCP分配的,我们需要
让他们固定使用这两个IP,以免在虚拟机重启后得到不一样的IP。特别是DC,我们必须保证DC和上面的DNS始终是用一个IP地址。

5. 记录下来后打开我们安装好的Azure PowerShell,首先连接到我们的Azure账户

如果是中国的Azure

Add-AzureAccount -Environment azurechinacloud

如果是Global的Azure

Add-AzureAccount

6. 登录后,使用以下命令设定固定IP,替换你自己的虚拟机名字以及IP地址。

Get-AzureVM -Name corp-dc -ServiceName corp-dc| Set-AzureStaticVNetIP -IPAddress 10.0.0.6 | Update-AzureVM

Get-AzureVM -Name corp-adfs -ServiceName corp-adfs | Set-AzureStaticVNetIP -IPAddress 10.0.0.5 | Update-AzureVM

注: 这里我们设定的是固定的内部IP,Azure支持设定固定的外部IP地址,这里不详细介绍,具体方法请参阅http://msdn.microsoft.com/en-us/library/azure/dn690120.aspx

7. 设置完成后,我们在DC上,安装DC、DNS的角色。忽略关于DNS的非静态IP的报错。

8. 安装完成后,在服务器管理器中选择将此台服务器提升为域控。创建一个新的域。其中在域名这一块,填入你公网域名相同的名字,或者子域名。

我拥有jashuang.cn,我这里使用了子域名corp1.jashuang.cn作为我的域,你也可以使用一级域名。

然后一路下一步直到安装。

9. 安装完成后重启DC。

10. 然后我们在DC上安装我们的证书服务,然后一路下一步直到安装。

11. 安装完成后,选择配置,在角色服务上,选择证书颁发机构,然后一路下一步,然后选择配置。

12. 完成后,我们需要新建一张SSL的证书,用户ADFS的HTTPS通信。运行命令certsrv.msc,在证书模板上右击,选择管理

13. 在新窗口招到web服务器证书,右击选择复制模板。在常规标签项,命名为ADFS SSL。

进入安全选项卡,添加 domain users,domain computers,权限选择注册和读取

进入使用者名称 选项卡, 使用者名称格式变为:公用名,勾选 DNS 名

14. 回到证书颁发机构,右击证书模板,点击新建要颁发的证书模板,选择ADFS SSL

15. 然后,运行命令domain.msc,打开域和信任管理窗口,我们需要添加UPN名。右击Active Directory域和信任关系,选择属性。在UPN标签项填入我们的域名,点击添加 – > 应用 – > 完成。

15. 到此,我们把DC配置完成了。现在先登录到Azure的门户,打开我们之前创建的虚拟网络,在配置选项里,我们需要指定虚拟网络的DNS,将他指向DC,再添加一个指向Azure public DNS的记录(否则外网无法解析),然后点击保存。

16. 重启一下ADFS。然后将ADFS加入域中。重启后使用域管理员登录。

17. 现在我们在ADFS的HOST文件(路径C:windowssystem32driversetcHosts)中加2条DNS记录,按照自己的域名和DC名以及IP地址加入这两条记录,主要是为了防止DNS解析出现问题时能找到DC。

corp1.jashuang.cn 10.0.0.6

corp-dc.corp1.jashuang.cn 10.0.0.6

18. 之后需要安装之前我们的证书。打开 MMC, 点击文件-添加、删除管理单元,选择计算机账户, 选择本地计算机,点击确定,右击 个人,点击 所有任务—申请新证书,一直点击下一步,在证书注册中选择ADFS SSL。然后选择注册

19 安装证书完成后,在DC服务器上打开Powershell,运行以下命令。

Add-kdsrootKey –effectivetime (get-date).addhours(-10)

New-adserviceaccount fsgmsa –dnshostname corp-adfs.corp1.jashuang.cn –serviceprincipalnames http/corp-adfs.corp1.jashuang.cn

20. 然后回到ADFS,在ADFS上安装ADFS角色

21. 完成后,点击配置ADFS。在指定服务属性里,选择我们之前导入的证书,在服务账号选择fsgmsa,然后一直下一步直到配置完成。

23. 配置完成后,安装Web服务器角色,这主要是为了安装IIS管理器。

24. 安装完成后,打开IIS管理器, 右击Default Website,选择编辑绑定,点击添加,然后添加HTTPS,证书选择之前我们导入的证书。

22. 配置完成后,可以打开IE,输入以下网址,尝试登录,简单测试ADFS是否正常。

以上是关于如何搭建一套Azure AD与ADFS集成身份的环境的主要内容,如果未能解决你的问题,请参考以下文章

使用 Azure Active Directory 或 ADFS 或 AD 的 SSO

验证与Azure AD的ADFS联合

Azure AD Connect 用户登录选项介绍

将 Piranha CMS 与 Azure AD 集成

Redhat BRMS 和 Azure AD 集成

如何在Linux快速搭建一套ADB环境