说到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。具体见下:
我们首先打开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
安装成功
打开服务器管理器。为此,请在"开始"屏幕上单击"服务器管理器",或者在桌面上的任务栏中单击"服务器管理器"。在"仪表板"页上的"欢迎"磁贴的"快速启动"选项卡中,单击"添加角色和功能"。也可以在"管理"菜单中单击"添加角色和功能"。
在"开始之前"页上,单击"下一步"。
在"选择安装类型"页上,单击"基于角色或基于功能的安装",然后单击"下一步"。
在"选择目标服务器"页上,单击"从服务器池中选择服务器",确认目标计算机已突出显示,然后单击"下一步"。
在“选择服务器角色”页上,单击“Active Directory 联合身份验证服务”,然后单击“下一步”。
在“选择功能”页上,单击“下一步”。系统已预先选择了所需的必备组件。你不需要选择任何其他功能。
在“Active Directory 联合身份验证服务(AD FS)”页上,单击“下一步”。
确认“确认安装选择”页上的信息后,单击“安装”。
在“安装进度”页上,确认已正确安装所有项目,然后单击“关闭”。
ADFS证书申请:
因为在配置ADFS的时候需要一张证书,我们安装iis服务,然后申请证书
填写证书服务名称,我们建议按照严格的证书申请方法来申请,我们定义名称为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 登录页上向用户显示此名称。
我们选择刚才导出的带私钥的证书文件
导入成功
在“指定服务帐户”页上指定一个服务帐户。可以创建或使用现有的组托管服务帐户 (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 数据库的,所以我们选择了指定的数据库,其实建议选择默认的数据库即可。
先决条件检查
初始化数据库
提示错误,其实该错误可以忽略
提示错误,所以我们需要在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
cmdlet 的结果提供的信息,联系域注册机构以创建所需的 DNS 记录。这将验证你是否拥有该域。请注意,这可能需要长达 15 分钟的传播时间,具体取决于注册机构。将更改传播到整个系统中可能需要长达 72 小时。有关详细信息,请参阅向任何域名注册机构验证域。
再次运行 New-MsolFederatedDomain
,并指定同一域名以完成此过程。
我们需要在dns上添加txt记录; txt=MS=ms94955184
我们在内部dns上添加txt记录
添加后我们再回到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页面上添加管理员
我们在windowsazure.cn的登录页面进行登录的时候,输入本地用户名输入的时候,单击密码数据框的时候自动进行重定向
正在重定向
重定向完成,输入有效的本地AD账户信息进行验证登录