且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Office365 联合身份验证服务配置-单点登录(SSO)

更新时间:2021-09-16 23:50:30

上篇文章我们介绍了office365国际版本及office365国内版本的功能介绍,今天主要说一下office365环境内配置实现SSO,其实说到sso相信大家已经很熟悉了(我们同样在之前的文章中有介绍windows azure部署sso)单点登录,当然也有叫目录集成的说法。那在office365上实现SSO会有什么效果呢?如果我们的机构内部已经在使用本地的 Active Directory,则可将其与我们的 Azure AD 目录相集成,借此可自动执行基于云的管理任务,并可向用户提供更加简化的登录体验。 Azure AD 支持以下两种目录集成功能: l 目录同步 - 用于将本地目录对象(用户、组、联系人)与云同步,以帮助减小管理开销。设置目录同步后,管理员可将本地 Active Directory 中的目录对象设置到云租户 中。 单一登录 (SSO) - 当用户登录到公司网络后访问微软云服务时,用于向用户提供更加 简化的身份验证体验。为了设置单一登录,还需要在本地部署安全令牌服务。设置单一 登录后,用户可以使用公司内部环境的 Active Directory 凭据(用户名和密码)访问 云及其现有本地资源中的服务。那具体怎么做呢,大概分为两步:1.通过dirsync工具将本地的Active Direcroy信息同步到Office365下。2.通过配置ADFS联合身份验证后,通过本地用户的域信息进行验证登录

域环境准备:

Office365 联合身份验证服务配置-单点登录(SSO)

Hostname:internal-DC

Internal:10.10.1.254

Domain Name:Iternalsoft.com

Role:DC、CA

Hostname:ADFSServer

Internal:10.10.1.10

Role:ADFS

Hostname:SyncServer

Internal:10.10.1.20

Role:Syncserver

Hostname:internal-TMG

Internal :10.10.1.1

External:124.x.x.x

Role:TMG

首先呢,我们是准备域环境了,我们已在之前准备好了,域名:iternalsoft.com

同时根据自己的需求新建自定义的OU名称,然后在对应的OU下新建用户。

我们新建了一个Iternalsoft的组织单元,然后在该组织单元下新建了两个子OU,然后分别命名为Internal_Admins、Iternal_Users,然后我们在不同的OU下新建gavin用户及bob用户

Office365 联合身份验证服务配置-单点登录(SSO)

我们设置gavin的权限,给改用户授予iternalsoft.com这个域内的所有权限:

Domain admins、enterprise admins、schema admins

Office365 联合身份验证服务配置-单点登录(SSO)

同时我们也注册了一个国内版本的office365;

Office登录地址为: https://partner.outlook.cn

Office365 联合身份验证服务配置-单点登录(SSO)

环境准备好后,我们就开始准备其他服务角色了,接下来我们准备安装ADFS服务,我们在此使用windows server 2012R2作为服务载体,首先在windows2012R2系统上安装ADFS角色进行配置、然后定义计算机名及ip地址

Hostname:ADFSServer

Ip:10.10.1.10

Office365 联合身份验证服务配置-单点登录(SSO)

计算机准备好后,我们首先需要为ADFS申请一张带私钥的证书,在此我们选择安装iis然后为ADFS申请证书;

通过服务器管理器---添加角色和功能----iis服务

Office365 联合身份验证服务配置-单点登录(SSO)

安装后,我们单击服务器证书

Office365 联合身份验证服务配置-单点登录(SSO)

我们打开服务器证书----创建证书申请

Office365 联合身份验证服务配置-单点登录(SSO)

我们为证书定义一个名称,注意这个名称一定是adfs+domainname.com

Adfs.iternalsoft.com

Office365 联合身份验证服务配置-单点登录(SSO)

通过填写的信息保存生成一个证书申请文件

Office365 联合身份验证服务配置-单点登录(SSO)

我们单击浏览内部CA服务器,然后单击申请证书

Office365 联合身份验证服务配置-单点登录(SSO)

使用base64编码的CMC或PKCS维恩见提交一个证书和申请

Office365 联合身份验证服务配置-单点登录(SSO)

然后我们将提交证书申请生成的证书文件打开将内部信息复制粘贴到申请框内,然后选择证书模板为:web服务器,单击提交

Office365 联合身份验证服务配置-单点登录(SSO)

然后下载证书

Office365 联合身份验证服务配置-单点登录(SSO)

下载证书完成

Office365 联合身份验证服务配置-单点登录(SSO)

我们完成证书申请

Office365 联合身份验证服务配置-单点登录(SSO)

我们选择下载的证书,然后填写一个好记的名称,然后证书存放位置:个人

Office365 联合身份验证服务配置-单点登录(SSO)

然后我们选择刚才完成的证书----右击导出----该导出导出含有私钥

Office365 联合身份验证服务配置-单点登录(SSO)

导出带私钥的证书为pfx格式的,然后设置一个证书密码

Office365 联合身份验证服务配置-单点登录(SSO)

带私钥的证书完成导出

Office365 联合身份验证服务配置-单点登录(SSO)

ADFS服务安装配置前的准备已经做好,接下来我们就是安装ADFS角色及配置了,安装功能角色有两种方式,一种是手动安装一个是通过powershell命令来安装

1.通过 Windows PowerShell 安装 AD FS 服务器角色

将计算机加域,然后通过domain admins用户登录

在要配置为联合服务器的计算机上,打开 Windows PowerShell 命令窗口并运行以下命令:Install-windowsfeature adfs-federation –IncludeManagementTools

Office365 联合身份验证服务配置-单点登录(SSO)

2.通过添加角色和功能向导安装 AD FS 服务器角色

打开服务器管理器。为此,请在"开始"屏幕上单击"服务器管理器",或者在桌面上的任务栏中单击"服务器管理器"。在"仪表板"页上的"欢迎"磁贴的"快速启动"选项卡中,单击"添加角色和功能"。也可以在"管理"菜单中单击"添加角色和功能"

"开始之前"页上,单击"下一步"

"选择安装类型"页上,单击"基于角色或基于功能的安装",然后单击"下一步"

"选择目标服务器"页上,单击"从服务器池中选择服务器",确认目标计算机已突出显示,然后单击"下一步"

选择服务器角色页上,单击“Active Directory 联合身份验证服务,然后单击下一步

选择功能页上,单击下一步。系统已预先选择了所需的必备组件。你不需要选择任何其他功能。

“Active Directory 联合身份验证服务(AD FS)”页上,单击下一步

确认确认安装选择页上的信息后,单击安装

安装进度页上,确认已正确安装所有项目,然后单击关闭

安装完成后,我们开始配置ADFS服务

在服务器管理器的“仪表板”页上,单击“通知”标志,然后单击“在服务器上配置联合身份验证服务”

此时将启动Active Directory 联合身份验证服务配置向导”

Office365 联合身份验证服务配置-单点登录(SSO)

配置指导

Office365 联合身份验证服务配置-单点登录(SSO)

我们用当前的用户即可,可根据自己的环境架构来选择即可

Office365 联合身份验证服务配置-单点登录(SSO)

通过下拉的方式选择ADFS服务的证书文件。然后定义一个联合身份验证的显示名称,在此我们为了方便使用ADFS

Office365 联合身份验证服务配置-单点登录(SSO)

我们发现提示警告,其实我们可以忽略,但是为了不出现其他的未知问题,我们还是根据提示解决这个错误提示。我们单击详细错误后,发现需要在DC的powershell下执行以下命令

Office365 联合身份验证服务配置-单点登录(SSO)

我们在DC上执行以下命令

Add-kdsRootKey –EffectiveTime(Get-Date).Addhours(-10)

Office365 联合身份验证服务配置-单点登录(SSO)

执行后,我们回到ADFS配置,发现没有之前的警告提示了,我们为服务指定一个账户。在此我也同样适用gavin这个用户作为服务账户适用

Office365 联合身份验证服务配置-单点登录(SSO)

指定数据库—我们在此选择默认即可。建议还是使用默认内置数据库

Office365 联合身份验证服务配置-单点登录(SSO)

ADFS配置的条件检查,条件满足,开始配置

Office365 联合身份验证服务配置-单点登录(SSO)

配置完成

Office365 联合身份验证服务配置-单点登录(SSO)

ADFS服务定义好后,我们需要在office365添加自定义域;

添加自定义域的目的是为了跟我本地的Active Directory进行目录集成,我们打开office365的portal页面---单击域----添加域

Office365 联合身份验证服务配置-单点登录(SSO)

我们输入自定义域名-----iternalsoft.com

Office365 联合身份验证服务配置-单点登录(SSO)

Office365为了验证添加的自定义域的真实及所有者,需要在域内的dns上添加一条txt记录;

@ MS=ms42202505 3600 TXT

Office365 联合身份验证服务配置-单点登录(SSO)

我们使用的是万网的域名供应商,我们打开域名解析,添加txt记录

Office365 联合身份验证服务配置-单点登录(SSO)

我们添加后再次确认---我已添加记录

Office365 联合身份验证服务配置-单点登录(SSO)

稍等1分钟后再次尝试通过,验证通过,继续下一步

Office365 联合身份验证服务配置-单点登录(SSO)

我们跳过这些信息,可根据自己的需求选择

Office365 联合身份验证服务配置-单点登录(SSO)

我们选择第一个,因为我们使用的是自定域的域名,如果选择第二个选项的话,我们需要更改自定义域iternalsoft.com的NS名称,不建议更改,所以我们选择第一种

Office365 联合身份验证服务配置-单点登录(SSO)

因为我们要使用office365内的Exchange、lync服务,所以需要在iternalsoft.com自定义域内添加一些解析记录。

Office365 联合身份验证服务配置-单点登录(SSO)

添加以下记录:TXT  SRV   MX

Office365 联合身份验证服务配置-单点登录(SSO)

Office365 联合身份验证服务配置-单点登录(SSO)

添加好后,我们可以以单击---好的,我已添加记录

Office365 联合身份验证服务配置-单点登录(SSO)

我们在万网的解析记录上添加提示的记录

Office365 联合身份验证服务配置-单点登录(SSO)

单击后我们发现验证配置,单击完成

Office365 联合身份验证服务配置-单点登录(SSO)

显示自定义域名

Office365 联合身份验证服务配置-单点登录(SSO)

ADFS及office365的自定义域添加完成后,我们需要安装和配置目录同步工具,目的是为了从Active Directory到office365的同步,

首先是下载同步工具---dirsync

https://bposast.vo.msecnd.net/dirsync/7020.0/dirsync.exe

Office365 联合身份验证服务配置-单点登录(SSO)

同样我们在使用windows2012R2系统做为同步服务器,所以需要安装netframwork3.5.1,我们安装的时候需要挂载windows2012R2的系统光盘,然后我们需要将该计算机加域、然后用域管理员登录,根据提示下一步

Office365 联合身份验证服务配置-单点登录(SSO)

选择安装路径

Office365 联合身份验证服务配置-单点登录(SSO)

正在安装该组件

Office365 联合身份验证服务配置-单点登录(SSO)

安装完成

Office365 联合身份验证服务配置-单点登录(SSO)

勾选立即启动配置想到选项---完成

Office365 联合身份验证服务配置-单点登录(SSO)  

根据提示下一步

Office365 联合身份验证服务配置-单点登录(SSO)

为了验证office365的有效性,我们需要根据提示输入office365的portal用户管理员账户级密码;

Office365 联合身份验证服务配置-单点登录(SSO)

然后输入本地Active Directory的管理员账户及密码;我们在签名介绍了,该用户具有iternalsoft.com域内的所有权限、domain admins、enterprise admins、schema amdins

Office365 联合身份验证服务配置-单点登录(SSO)

勾选启用混合部署---下一步

Office365 联合身份验证服务配置-单点登录(SSO)

勾选启用密码同步---下一步

Office365 联合身份验证服务配置-单点登录(SSO)

配置完成

Office365 联合身份验证服务配置-单点登录(SSO)

立即同步目录

Office365 联合身份验证服务配置-单点登录(SSO)

我们回到office365上,查看活动的用户---已将本地的两个用户同步到office365上了;

状态是----已与Active Directory同步

Office365 联合身份验证服务配置-单点登录(SSO)

本地的Active Directory用户同步到office365后,我们需要激活Active Directory同步

单击office365活动用户,左上角启用同步

Office365 联合身份验证服务配置-单点登录(SSO)

然后查看激活状态,激活已同步的用户

Office365 联合身份验证服务配置-单点登录(SSO)

激活状态

Office365 联合身份验证服务配置-单点登录(SSO)

提示Active Directory同步已激活

Office365 联合身份验证服务配置-单点登录(SSO)

接下来我们需要给Office365域自定义域信任关系,如果不自定义信任关系的话,我们目前还是无法通过本地用户登录office365的portal页面

首先是需要安装用于 Windows PowerShell 的 Windows Azure Active Directory 模块

下载软件

http://go.microsoft.com/fwlink/p/?linkid=236297

Office365 联合身份验证服务配置-单点登录(SSO)

下载后安装,提示缺少依赖组件

Office365 联合身份验证服务配置-单点登录(SSO)

提前需要安装microsoft online service插件

http://www.microsoft.com/zh-cn/download/details.aspx?id=41950

Office365 联合身份验证服务配置-单点登录(SSO)

安装office online sevices组件

Office365 联合身份验证服务配置-单点登录(SSO)

安装后,我们再次安装windows poershell的windows azure active directorty模块

Office365 联合身份验证服务配置-单点登录(SSO)

Office365 联合身份验证服务配置-单点登录(SSO)

工具安装完成后,我们需要借用该工具进行office365跟Active Directory进行信任关系的创建。

右击以管理员方式运行 Microsoft Azure Active Directory 模块。

1.

1
connect-msolservice

链接office365页面信息—进行验证配置

Office365 联合身份验证服务配置-单点登录(SSO)

没有提示任何错误就说明验证成功通过

Office365 联合身份验证服务配置-单点登录(SSO)

2.

1
2
Convert-MsolDomainToFederated -DomainName domain.com
Convert-MsolDomainToFederated -DomainName iternalsoft.com

Office365 联合身份验证服务配置-单点登录(SSO)

在此我们就基本完成了所有的安装及配置工作,接下来就是验证和管理单点登录

首先是输入office365登录页面https://partner.outlook.cn

同时输入本地AD同步到Office365的用户

Gavin@iternalsoft.com,然后不输入密码,单击密码输入会自动重定向

Office365 联合身份验证服务配置-单点登录(SSO)

提示正在重定向

Office365 联合身份验证服务配置-单点登录(SSO)

我们发现在重定向的过程中页面显示错误

Office365 联合身份验证服务配置-单点登录(SSO)

我们发现无法登录,原因是因为adfs.iternalsoft.com 这个域名在域内没有解析记录,所以会在重定向的时候显示错误。所以我们需要在内部dns上添加adfs这个解析记录

Adfs的解析域名指向adfsserver服务器即可

Office365 联合身份验证服务配置-单点登录(SSO)

域名解析添加完成

Office365 联合身份验证服务配置-单点登录(SSO)

接下来我们通过ping来测试解析的添加,解析正常

Office365 联合身份验证服务配置-单点登录(SSO)

我们再次访问尝试,发现重定向完成,跳转到验证页面了,

Office365 联合身份验证服务配置-单点登录(SSO)

我们输入账户及密码后,我们尝试访问

Office365 联合身份验证服务配置-单点登录(SSO)

我们输入有效的账户级密码后,发现登录还是失败,对此失败的问题很简单理解,原因时候没有激活同步的用户,所以会发生错误

Office365 联合身份验证服务配置-单点登录(SSO)

接下来激活已经同步的用户---活动用户---选择用户试图----为激活的用户

Office365 联合身份验证服务配置-单点登录(SSO)

我们选择为激活哦的用户----单击激活已同步的用户

Office365 联合身份验证服务配置-单点登录(SSO)

然后为该用户分配许可证-------然后单击激活即可

Office365 联合身份验证服务配置-单点登录(SSO)

激活完成

Office365 联合身份验证服务配置-单点登录(SSO)

然后我们再次通过https://partner.outlook.cn 尝试访问登录

Office365 联合身份验证服务配置-单点登录(SSO)

Office365 联合身份验证服务配置-单点登录(SSO)

提示验证的话,一般都是重定向成功的。

Office365 联合身份验证服务配置-单点登录(SSO)

登录成功了,我们第一次登录是需要选择登录的选择时区---

Office365 联合身份验证服务配置-单点登录(SSO)

选择时区后,我们单击登录,登录成功了。

Office365 联合身份验证服务配置-单点登录(SSO)

我们最后再说一个登陆的问题,我们最后再说一个登陆的问题。比如我们本地是使用域用户登录,然后访问windows azure的portal也是使用本地的域用户等,每次登录都需要输入账户及密码。这样很不方便。但是我们可以通过设置浏览器来提高登录的效率,但是这样不安全。单击浏览器工具----internet设置---安全---本地intranet---站点

Office365 联合身份验证服务配置-单点登录(SSO)

选择高级—

Office365 联合身份验证服务配置-单点登录(SSO)

Adfs服务的FQDN名称---adfs.iternalsoft.com

注:不是ADFS服务器的FQDN哦;ADFS服务是运行在windows或者其他os上的应用服务。而ADFS服务器是承载ADFS应用服务的介质;添加后保存确认,然后关闭浏览器重新访问即可。大家为了测试不必清楚浏览器缓存,因为据了解ie的cokie不对windows azure的服务做缓存

Office365 联合身份验证服务配置-单点登录(SSO)

发现登录后无法查看office365的管理页面,具体见下一篇

最后我们我们也可以通过以下工具进行测试office365的单点登录是否正常

https://testconnectivity.microsoft.com/?tabid=1

选择office365单点登录

Office365 联合身份验证服务配置-单点登录(SSO)

输入有效的单点登录用户后开始执行测试

Office365 联合身份验证服务配置-单点登录(SSO)

我们发现错误,其实通过以下状态,我们得知是已经成功验证了,之所以有失败,原因是adfs的证书是通过内部的ca证书申请的,在外部的话不受信任,所以可以忽略

Office365 联合身份验证服务配置-单点登录(SSO)

Office365 联合身份验证服务配置-单点登录(SSO)

Office365 联合身份验证服务配置-单点登录(SSO)




本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1615706,如需转载请自行联系原作者