Windows azure 联合身份验证服务配置(SSO)

简介:

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

环境介绍:

hostname:iio-dc.iiosoft.com

ip:10.1.1.254

role:DC、dns、CA

hostname:adfss.iiosoft.com

ip:10.1.1.50

role:ADFS

hostname: iio-tmg.iiosoft.com

ip:10.1.1.1

role:geteway

我们首先打开windows azure 的portal页面,里面有一个Active Directory服务,其实这个AD服务跟本地的AD功能上相差甚远,也可以说是不在同一个层次上,也许在不久的将来就跟本地的AD就差不多了,windows azure的AD服务主要提供portal页面上的sharepoint 服务的验证,其他的也就没什么效果了。

单击仪表盘我们可以看见一些配置。我们呢,首先添加本地域名

输入本地域名,通过勾选我们计划配置此域为使用本地ACTIVE DIRECTORY进行单点登录

添加完成。

添加完成后,跳转到目录集成页面

我们首先是单击已激活该服务同步。

选择已激活,保存

警告信息。

接下来我们可以根据提示进行配置目录集成了。

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

下载安装程序:我们在本地安装一个新的操作系统。然后加域,同时下载程序。

我们知道windows 2012系统默认是安装了netframwork4.5的,所以我们需要安装netframwork3.5.1即可

安装完成

再次安装同步工具;注:使用本地的administrator账户登录,不能通过域用户登陆了

开始安装


提示安装组件


完成安装

启动配置

开始配置

我们需要输入windos azure的portal页面登录管理员

该用户必须提供公司本地的Active Directory 目录服务具有的企业管理员权限账户的凭据,次账户运行Mictosoft Azure Active Directory 同步工具的计算机所加入的Active directory林中国必须具有企业管理员权限

必须勾选同步密码,不然同步过去的用户无法登陆

开始配置:

配置完成

配置完成后,立即同步

我们再次回到windows azure portal页面

页面信息变了

我们在windows azure portal查看同步过来的用户信息

我们通过该用户信息登录尝试

我们发现可以 登录,但是登录后提示没有订阅,见到以下页面就能说明是通过本地的信息验证通过的,如果需要改用户成功登录的话,我们需要给改用户委派订阅。


单击设置---管理员

我们选择授权的用户进行添加


添加完成

最后我们查看FIMSyncadmin成员

我们查看域的状态


本地的Active Directory信息同步过去了,但是我们无法通过本地的域信息进行验证登录,所以我们还需要配置联合身份验证服务(ADFS),配置后我们可以通过本地的Active Direcroy信息进行验证登录。在此我们通过2012R2系统自带的ADFS进行配置。

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

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

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

安装成功


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

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

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

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

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

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

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

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

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

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

ADFS证书申请:

因为在配置ADFS的时候需要一张证书,我们安装iis服务,然后申请证书

注:ADFS服务器的名称不要和ADFS服务重名:(服务器名称和服务名称一定保持不一样)

比如:ADFS服务器的HostName为:ADFSS.IIOSOFT.COM

而注册ADFS服务的证书名称为ADFS.IIOSOFT.COM

wKioL1SzbRCywaPkAAT8H2OT1Sw690.jpg

wKiom1SzbEmh5O6oAAWMTrhi6gE540.jpg

wKioL1SzbRHBZyz4AASK4C7OSKk771.jpg

填写证书服务名称,我们建议按照严格的证书申请方法来申请,我们定义名称为adfs.iiosoft.com,及其他的组织信息,然后单击下一步来玩完成

wKioL1SzbYSDVcxQAAUy1XYBtBw592.jpg

wKiom1SzbL2BXH-mAASk4x8MWTs209.jpg

我们通过内部的CA服务器进行证书申请提交

wKiom1SzbUPxN-9rAAfca4aNgrg225.jpg

wKioL1SzbgvS3ZnmAAT2HvWG2o0963.jpg

wKiom1SzbUTAMYIXAAPg9MibxW4960.jpg

wKioL1SzbgzjQXeIAASy82bsXG8436.jpg

wKiom1SzbUSTmtvrAARez3X-V3U286.jpg

完成证书申请操作

wKiom1SzbWvT0_aAAAQs-KVNr14302.jpg

因为我们需要一张带私钥的证书,所以我们需要导出证书文件

wKiom1TRxrryRvjDAADkGo02iqU287.gif

输入证书自定义密码

wKioL1TRx2rzFB0AAAEII_yCtvg245.gif

我们开始配置ADFS服务

http://technet.microsoft.com/zh-cn/library/dn528860.aspx

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

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

wKioL1Szbpqhp6LFAAPiOZwJhp8683.jpg

“连接到 AD DS页上,指定对此计算机加入到的 AD 域拥有域管理员权限的帐户,然后单击“下一步”

wKioL1SzbrnB6HtbAAO0rkRthdk592.jpg选择带有私钥的证书文件;

“指定服务属性”页上执行以下操作,然后单击“下一步”

导入包含你前面获取的 SSL 证书和密钥的 .pfx 文件。如查看有关部署 AD FS 的要求的“证书要求”部分中所述,必须获取此证书并将它复制到要配置为联合服务器的计算机上。若要通过向导导入该 .pfx 文件,请单击“导入”并浏览到该文件的位置。出现提示时,请指定该 .pfx 文件的密码。

提供联合身份验证服务的名称。例如 fs.contoso.com。此名称必须与证书中的使用者名称或使用者可选名称之一匹配。提供联合身份验证服务的显示名称。例如 Contoso Corporation。将在 AD FS 登录页上向用户显示此名称。

wKiom1SzbhTj1wyOAAPQ9JnUKTs120.jpg

我们选择刚才导出的带私钥的证书文件

wKioL1Szbv_gJclZAARa2F93Kvo241.jpg导入成功-

注:此处的联合身份验证服务器的名称一定要为:ADFS.IIOSOFT.COM,显示名称无所谓:当然该名称为申请证书时候定义的FQDN名称。该名称是无法更改的。所以在规划的时候一定要定义好。

运行ADFS服务的服务器名称一定不要和ADFS服务名称重名;

服务器的名称为:ADFSS.IIOSOFT.COM(或者定义其他的名称)

服务名称为:ADFS.IIOSOFT.COM

wKiom1SzbkWDUzWwAAR09D9Jyvg046.jpg

“指定服务帐户”页上指定一个服务帐户。可以创建或使用现有的组托管服务帐户 (gMSA),也可以使用现有的域用户帐户。如果选择创建新 gMSA 的选项,请指定新帐户的名称。如果选择使用现有 gMSA 或域帐户的选项,请单击“选择...”按钮以选择一个帐户。

使用 gMSA 的好处是可以利用它的自动协商密码更新功能。

注意:如果要使用 gMSA,则运行 Windows Server 2012 操作系统的环境中必须至少有一个域控制器。

如果禁用了 gMSA 选项并看到类似于“由于尚未设置 KDS 根密钥,因此组托管服务帐户不可用”的错误消息,可以通过在 Active Directory 域中 Windows Server 2012 或更高版本的域控制器上执行以下 Windows PowerShell 命令,在域中启用 gMSA:Add-KdsRootKey –EffectiveTime (Get-Date).AddHours(-10)。然后返回到向导,依次单击“上一步”按钮和“下一步”按钮以重新进入“指定服务帐户”页。现在应该已启用 gMSA,你可以选择它并输入所需的 gMSA 帐户名。

wKiom1Szbq_QRS9eAAV3MI09caE100.jpg我们需要在DC上执行以下命令

wKiom1SzbsGiU4mbAAL-tlRHpFA078.jpg

因为我们本地有一个SQL 数据库的,所以我们选择了指定的数据库,其实建议选择默认的数据库即可。

wKioL1Szb6_zxJthAARiRtNyoGY269.jpg

wKiom1SzbuejwlX6AAWM6b_NAI4605.jpg

先决条件检查

wKiom1SzbxHSjhwsAAXxvrbJZos067.jpg初始化数据库

wKioL1Szb-2SwfmzAATzyCnWBSM906.jpg

提示错误,其实该错误可以忽略:

对于以下的错误问题我们分析为:

当运行ADFS服务的服务器名称和ADFS服务的名称命名重合时会出现以下问题:

所以我们如果把运行ADFS服务的服务器名称定义其他名称在运行到改配置的时候不会出现该提示错误

如果ADFS服务名称和ADFS服务器的名称不一样的话,就正常安装了,

wKiom1TRxafS_T0TAADGDRg50T0348.gif

如果出现以下错误。我们可以在命令提示符下运行:

setsqn -q host/adfs.iiosoft.com 进行注册

wKiom1TRvziT2yqKAAAqgeIMcmo625.gif

出现以下问题原因是:ADFS服务器和ADFS服务名称重名了,我们需要卸载ADFS服务后,然后修改ADFS服务器的计算机名,然后保持ADFS服务器的名称和ADFS服务名称不一致即可

wKiom1Szb12yFu8LAAPep-bNJw4195.jpg

提示错误,所以我们需要在DC上执行一个命令:wKiom1Szb2uSqF9YAAeMAVOhxl0343.jpgwKioL1SzcF6iHY9uAAPv15zTZGs630.jpg我们查看ADFS相关的服务器配置信息

wKiom1Szb6PiB8qLAASW7QyO05M951.jpg

ADFS配置完后,我们还需要最重要的一步,需要在ADFSAzure AD之间建立信任关系

http://technet.microsoft.com/zh-cn/library/jj205461.aspx

我们首先是在ADFS下安装azure powershell

wKioL1SzcJiz7Xd7AAJL1jJp5nk693.jpg准备好以上工作后,我们需要在本地的Active Directoryazure Active Directory之间创建信任关系了。

http://technet.microsoft.com/zh-cn/library/jj151815.aspx

wKioL1SzcMCgLvVdAASpU_C90Zk573.jpg

Windows azure AD模块下载链接:

https://bposast.vo.msecnd.net/MSOPMW/Current/amd64/AdministrationConfig-zh-hans.msi



wKioL1SzcOXwVSHXAAOTqj1uTCw458.jpg

下载后我们开始安装:提示错误,

wKiom1SzcDrjMBNEAAJWM3SYCkI218.jpg

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

wKioL1SzcS7iglYXAAMRlStgNfg304.jpg

开始安装online services

wKiom1SzcHKBZPjjAAQxchDMxBU435.jpg完成安装

wKioL1SzcWCRg1QBAAKA8k6A7Z8947.jpg

开始安装windows azure AD模块

wKioL1SzcZPh3btoAALNxAdLCCs366.jpg

安装完成,因为该软件非常小,所以比较快

wKiom1SzcNbS66HFAANNt_M1BaM233.jpg

以管理员运行:

wKioL1SzccSS5JAiAALp33aRuC8044.jpg

添加域:

http://technet.microsoft.com/zh-cn/library/jj205461.aspx#BKMK_ConvertDomain

要联合的每个域必须添加为单一登录域,或者必须从标准域转换为单一登录域。添加或转换域会在 AD FS  Microsoft Azure Active Directory (Microsoft Azure AD) 之间建立信任。

打开 Microsoft Azure Active Directory 模块。

运行 $cred=Get-Credential。当 cmdlet 提示你输入凭据时,键入云服务管理员帐户凭据。

wKiom1SzcSujUnv_AAQCVY9C3Kg875.jpg

运行 Connect-MsolService –Credential $cred。此 cmdlet 会将你连接到 AzureAD。在运行该工具安装的任何附加 cmdlet 之前,需要创建将你连接到 Azure AD 的上下文。

wKioL1SzcgqhqLduAAPjHkObVig569.jpg

运行 Set-MsolAdfscontext -Computer<AD FS primary server>,其中 <AD FS primaryserver> 是主 AD FS 服务器的内部 FQDN 名称。此 cmdlet 创建将你连接到 AD FS 的上下文。

备注:如果已在主 AD FS 服务器上安装了 Microsoft Azure Active Directory 模块,则不需要运行此 cmdlet。

wKiom1SzcZaAOkQcAAPTWBeTeUQ776.jpg

运行 New-MsolFederatedDomain –DomainName<domain>,其中 <domain> 是需要添加并需要启用单一登录的域。此 cmdlet 添加将针对联合身份验证进行配置的新顶级域或子域。

 备注使用 New-MsolFederatedDomain cmdlet 添加顶级域后,将无法使用 New-MsolDomain cmdlet 添加标准域(非联合)

如果已经执行了后期卸载又重装了。我们不能再执行New-MsolFederatedDomain –DomainName<domain>命令了。我们需要执行update命令来更新了。执行New-MsolFederatedDomain –DomainName<domain>是第一次配置或者第一台服务器的时候需要执行该命令。如果已经执行了就通过以下命令来更新即可。

update-MsolFederatedDomain –DomainName<domain>

wKiom1SzccKTK_NbAAWbTMFuhow713.jpg

请使用 New-MsolFederatedDomain cmdlet 的结果提供的信息,联系域注册机构以创建所需的 DNS 记录。这将验证你是否拥有该域。请注意,这可能需要长达 15 分钟的传播时间,具体取决于注册机构。将更改传播到整个系统中可能需要长达 72 小时。有关详细信息,请参阅向任何域名注册机构验证域

再次运行 New-MsolFederatedDomain,并指定同一域名以完成此过程。

我们需要在dns上添加txt记录; txt=MS=ms94955184

wKiom1Szce6ie6v5AAEv10YBN1U358.jpg我们在内部dns上添加txt记录

wKiom1SzchPCt7hGAAV8mMc2Npk200.jpg

如果第一配置安装的话执行:New-MsolFederatedDomain –DomainName<domain>

如果是卸载后重装或者定义一个群集的话,我们需要执行:Update-MsolFederatedDomain –DomainName<domain>

wKioL1SzctuzlA6wAATLwPMddAU378.jpg

添加后我们再回到windows azure portal页面进行查看AD域验证信息:

wKiom1Szcj_iWsrQAAIOb-3bFI4908.jpg

转换域

将现有域转换为单一登录域时,每个许可用户将成为联合用户,并使用其现有 Active Directory 企业凭据(用户名和密码)来访问你的云服务。目前不可能执行单一登录的分阶段部署,但可以使用生产型 Active Directory 林中的一组生产用户试点单一登录。有关详细信息,请参阅Run a pilot to test single signon before setting it up(optional)

 备注

最好在用户最少的时候(如周末)执行转换,以减少对用户的影响。

若要将现有域转换为单一登录域,请执行以下步骤。

打开 Microsoft AzureActive Directory 模块。

运行 $cred=Get-Credential。当 cmdlet 提示你输入凭据时,键入云服务管理员帐户凭据。

运行 Connect-MsolService –Credential $cred。此 cmdlet 会将你连接到 Azure AD。在运行该工具安装的任何附加cmdlet 之前,需要创建将你连接到 AzureAD 的上下文。

运行 Set-MsolAdfscontext -Computer <AD FSprimary server>,其中 <AD FSprimary server> 是主 AD FS 服务器的内部 FQDN 名称。此 cmdlet 创建将你连接到 AD FS 的上下文。

 备注

如果已在主 AD FS 服务器上安装了 Microsoft Azure Active Directory 模块,则不需要运行此 cmdlet。

运行 Convert-MsolDomainToFederated–DomainName <domain>,其中 <domain>

是要进行转换的域。此 cmdlet 将该域从标准身份验证更改为单一登录。

wKioL1Szc2OziKt5AAT7uo_MDqY984.jpg

 备注

若要验证转换是否正常工作,请通过运行 Get-MsolFederationProperty –DomainName <domain>(其中 <domain> 是你要查看其设置的域),来比较 AD FS 服务器与 Azure AD 中的设置。如果设置不匹配,你可以运行 Update-MsolFederatedDomain –DomainName <domain> 来同步设置。

操作完成后,我们再次回到windows azure portal页面查看同步信息:

wKiom1Szct3CYmLyAAUqcmu8oT0239.jpg为了保证我们通过本地的AD用户验证,我们还需要在windows portal页面上添加管理员

wKioL1Szc7ezwRQbAAHrYwLBBxE493.jpgwKiom1SzcwazGjJ7AAIfrJB5Pxs771.jpg

再次我们需要在dns上添加一条A记录:

ADFS服务名称执行ADFS服务器

ADFS服务名称为:ADFS.IIOSOFT.COM

ADFS服务器名称为:ADFSSERVER.IIOSOFT.COM,IP:10.1.1.50

wKiom1TRwuTiUsfAAADiGzhxoXs325.gif

我们在windowsazure.cn的登录页面进行登录的时候,输入本地用户名输入的时候,单击密码数据框的时候自动进行重定向

wKioL1Szc_7yaQ4yAAQFCIuOV00510.jpg正在重定向

wKioL1SzdCfx6m_rAAHmB4E2CVA279.jpg重定向完成,输入有效的本地AD账户信息进行验证登录

wKiom1Szc3qRVUNNAAPEZ2iQW5A461.jpg

最后我们通过本地用户进行登陆成功

wKiom1TRvvmw7Zq_AAD7SjRpdzI790.gif

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

  1. 单击浏览器工具----internet设置---安全---本地intranet---站点

wKioL1TRwbXCtJLuAAFLLeq0rNY632.gif2.默认勾选---然后单击高级

wKiom1TRwPSwJiVOAAD0jcvmZSI250.gif3.添加adfs服务的FQDN----adfs.iiosoft.com

注:不是ADFS服务器的FQDN哦;ADFS服务是运行在windows或者其他os上的应用服务。而ADFS服务器是承载ADFS应用服务的介质;添加后保存确认,然后关闭浏览器重新访问即可。

大家为了测试不必清楚浏览器缓存,因为据了解ie的cokie不对windows azure的服务做缓存。

wKiom1TRwW3xbAGHAAEBEjjyX4Q200.gif



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

相关文章
|
1月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
1月前
|
存储 安全 数据安全/隐私保护
Windows部署WebDAV服务并映射到本地盘符实现公网访问本地存储文件
Windows部署WebDAV服务并映射到本地盘符实现公网访问本地存储文件
269 0
|
2月前
|
Java Unix 应用服务中间件
使用java service wrapper把windows flume做成服务
使用java service wrapper把windows flume做成服务
|
2月前
|
Windows
修改Windows服务的配置
修改Windows服务的配置
|
26天前
|
Shell Windows
Windows服务器 开机自启动服务
Windows服务器 开机自启动服务
14 0
|
4天前
|
网络协议 安全 测试技术
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
|
1月前
|
Windows
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
102 0
|
1月前
|
应用服务中间件 nginx Windows
windows下快速安装nginx 并配置开机自启动
windows下快速安装nginx 并配置开机自启动
windows下快速安装nginx 并配置开机自启动
|
1月前
|
算法 应用服务中间件 网络安全
windows下采用 nginx配置websocket支持wss流程
windows下采用 nginx配置websocket支持wss流程
|
1月前
|
存储 Oracle Java
windows配置java环境
windows配置java环境
43 0