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
填写证书服务名称,我们建议按照严格的证书申请方法来申请,我们定义名称为adfs.iiosoft.com,及其他的组织信息,然后单击下一步来玩完成
我们通过内部的CA服务器进行证书申请提交
完成证书申请 *** 作
因为我们需要一张带私钥的证书,所以我们需要导出证书文件
输入证书自定义密码
我们开始配置ADFS服务
http://technet.microsoft.com/zh-cn/library/dn528860.aspx
在服务器管理器的“仪表板”页上,单击“通知”标志,然后单击“在服务器上配置联合身份验证服务”。
此时将启动“Active Directory 联合身份验证服务配置向导”。
在“连接到 AD DS”页上,指定对此计算机加入到的 AD 域拥有域管理员权限的帐户,然后单击“下一步”。
选择带有私钥的证书文件;
在“指定服务属性”页上执行以下 *** 作,然后单击“下一步”:
导入包含你前面获取的 SSL 证书和密钥的 .pfx 文件。如查看有关部署 AD FS 的要求的“证书要求”部分中所述,必须获取此证书并将它复制到要配置为联合服务器的计算机上。若要通过向导导入该 .pfx 文件,请单击“导入”并浏览到该文件的位置。出现提示时,请指定该 .pfx 文件的密码。
提供联合身份验证服务的名称。例如 fs.contoso.com。此名称必须与证书中的使用者名称或使用者可选名称之一匹配。提供联合身份验证服务的显示名称。例如 Contoso Corporation。将在 AD FS 登录页上向用户显示此名称。
我们选择刚才导出的带私钥的证书文件
导入成功-
注:此处的联合身份验证服务器的名称一定要为:ADFS.IIOSOFT.COM,显示名称无所谓:当然该名称为申请证书时候定义的FQDN名称。该名称是无法更改的。所以在规划的时候一定要定义好。
运行ADFS服务的服务器名称一定不要和ADFS服务名称重名;
服务器的名称为:ADFSS.IIOSOFT.COM(或者定义其他的名称)
服务名称为:ADFS.IIOSOFT.COM
在“指定服务帐户”页上指定一个服务帐户。可以创建或使用现有的组托管服务帐户 (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 帐户名。
我们需要在DC上执行以下命令
因为我们本地有一个SQL 数据库的,所以我们选择了指定的数据库,其实建议选择默认的数据库即可。
先决条件检查
初始化数据库
提示错误,其实该错误可以忽略:
对于以下的错误问题我们分析为:
当运行ADFS服务的服务器名称和ADFS服务的名称命名重合时会出现以下问题:
所以我们如果把运行ADFS服务的服务器名称定义其他名称在运行到改配置的时候不会出现该提示错误
如果ADFS服务名称和ADFS服务器的名称不一样的话,就正常安装了,
如果出现以下错误。我们可以在命令提示符下运行:
setsqn -q host/adfs.iiosoft.com 进行注册
出现以下问题原因是:ADFS服务器和ADFS服务名称重名了,我们需要卸载ADFS服务后,然后修改ADFS服务器的计算机名,然后保持ADFS服务器的名称和ADFS服务名称不一致即可
提示错误,所以我们需要在DC上执行一个命令:我们查看ADFS相关的服务器配置信息
ADFS配置完后,我们还需要最重要的一步,需要在ADFS和Azure AD之间建立信任关系
http://technet.microsoft.com/zh-cn/library/jj205461.aspx
我们首先是在ADFS下安装azure powershell
准备好以上工作后,我们需要在本地的Active Directory和azure Active Directory之间创建信任关系了。
http://technet.microsoft.com/zh-cn/library/jj151815.aspx
Windows azure AD模块下载链接:
https://bposast.vo.msecnd.net/MSOPMW/Current/amd64/AdministrationConfig-zh-hans.msi
下载后我们开始安装:提示错误,
http://www.microsoft.com/zh-cn/download/details.aspx?id=41950
开始安装online services
完成安装
开始安装windows azure AD模块
安装完成,因为该软件非常小,所以比较快
以管理员运行:
添加域:
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 提示你输入凭据时,键入云服务管理员帐户凭据。
运行 Connect-MsolService
–Credential $cred
。此 cmdlet 会将你连接到 AzureAD。在运行该工具安装的任何附加 cmdlet 之前,需要创建将你连接到 Azure AD 的上下文。
运行 Set-MsolAdfscontext -Computer<AD FS primary server>
,其中 <AD FS primaryserver> 是主 AD FS 服务器的内部 FQDN 名称。此 cmdlet 创建将你连接到 AD FS 的上下文。
备注:如果已在主 AD FS 服务器上安装了 Microsoft Azure Active Directory 模块,则不需要运行此 cmdlet。
运行 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>
请使用 New-MsolFederatedDomain
cmdlet 的结果提供的信息,联系域注册机构以创建所需的 DNS 记录。这将验证你是否拥有该域。请注意,这可能需要长达 15 分钟的传播时间,具体取决于注册机构。将更改传播到整个系统中可能需要长达 72 小时。有关详细信息,请参阅向任何域名注册机构验证域。
再次运行 New-MsolFederatedDomain
,并指定同一域名以完成此过程。
我们需要在dns上添加txt记录; txt=MS=ms94955184
我们在内部dns上添加txt记录
如果第一配置安装的话执行:New-MsolFederatedDomain
–DomainName<domain>
如果是卸载后重装或者定义一个群集的话,我们需要执行:Update-MsolFederatedDomain
–DomainName<domain>
添加后我们再回到windows azure portal页面进行查看AD域验证信息:
转换域
将现有域转换为单一登录域时,每个许可用户将成为联合用户,并使用其现有 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 将该域从标准身份验证更改为单一登录。
备注
若要验证转换是否正常工作,请通过运行 Get-MsolFederationProperty –DomainName <domain>(其中 <domain> 是你要查看其设置的域),来比较 AD FS 服务器与 Azure AD 中的设置。如果设置不匹配,你可以运行 Update-MsolFederatedDomain –DomainName <domain> 来同步设置。
*** 作完成后,我们再次回到windows azure portal页面查看同步信息:
为了保证我们通过本地的AD用户验证,我们还需要在windows portal页面上添加管理员
再次我们需要在dns上添加一条A记录:
ADFS服务名称执行ADFS服务器
ADFS服务名称为:ADFS.IIOSOFT.COM
ADFS服务器名称为:ADFSSERVER.IIOSOFT.COM,IP:10.1.1.50
我们在windowsazure.cn的登录页面进行登录的时候,输入本地用户名输入的时候,单击密码数据框的时候自动进行重定向
正在重定向
重定向完成,输入有效的本地AD账户信息进行验证登录
最后我们通过本地用户进行登陆成功
我们最后再说一个登陆的问题。比如我们本地是使用域用户登录,然后访问windows azure的portal也是使用本地的域用户等,每次登录都需要输入账户及密码。这样很不方便。但是我们可以通过设置浏览器来提高登录的效率,但是这样不安全。
单击浏览器工具----internet设置---安全---本地intranet---站点
2.默认勾选---然后单击高级
3.添加adfs服务的FQDN----adfs.iiosoft.com
注:不是ADFS服务器的FQDN哦;ADFS服务是运行在windows或者其他os上的应用服务。而ADFS服务器是承载ADFS应用服务的介质;添加后保存确认,然后关闭浏览器重新访问即可。
大家为了测试不必清楚浏览器缓存,因为据了解ie的cokie不对windows azure的服务做缓存。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)