Office 365 Pass-through身份验证及Seamless Single Sign-On
Hello 小伙伴们,
这篇文章将视点聚焦在传递身份验证(Pass-through Authentication)上,将分享如何安装,配置和测试Azure Active Directory(Azure AD)Pass-through Identity Authentication和无缝单点登录(Seamless SSO)。
回顾
在开始之前,先为大家回顾一下Office 365身份验证的方式:
Office 365身份验证方式可以概括为四种,分别为:纯云端Azure AD验证、活动目录和密码同步、联合身份验证和传递身份验证,这几种身份验证方式的差别可以总结为以下表格。
云身份 |
活动目录和密码同步 |
云身份+目录同步(PTA&S-SSO) |
联合身份 |
|
优势 |
不需要本地服务器部署 |
账号来源本地 允许共存 |
单一登录体验(Seamless Single Sign-On) 账号来源本地 无需部署ADFS实现单点登录 |
单一登录体验(Single Sign-On)账号来源本地 验证发生在本地AD 可以创建访问控制策略 |
限制 |
没有单点登录 需要管理两套凭证 不同的密码策略 没有访问控制策略 |
没有单点登录 需要部署目录同步服务器 没有访问控制策略 |
没有访问控制策略 对Office Pro Plus Activation激活不支持 需要部署目录同步服务器 |
需要部署ADFS服务器并且要考虑高可用方案 需要部署目录同步服务器 |
有关于联合身份验证并实现单点登录的具体实现步骤,大家可以参考我的另一篇博客,Office 365实现单点登录系列(5)—配置单点登录
--------------------------------------------------------------华丽的分割线-------------------------------------------------------------
回到我们这篇文章的主题,传递身份验证Pass-through Identity Authentication允许用户使用相同的密码登录到本地和云端的应用程序,这种身份验证方式使用户只需要记住一套账户和密码,提高了用户使用体验的同时,降低了IT的运维难度。当用户使用Azure AD登录时,会直接验证用户本地Active Directory的密码。
无缝单点登录Seamless Single-Sign On为用户在公司内网使用加了域的电脑登录应用服务提供了单点登录的体验,同时管理员不需要配置任何本地组件(如AD FS和AD FS Proxy),只需要配置一个没有DMZ要求的轻量级代理即可完成配置。启用后,用户不需要输入密码即可登录Azure AD。
注意:Pass-Through Authentication& Seamless Single Sign-On目前只可以用于全球版的Office 365,暂不支持21V运营的Office 365。
一、 配置域
为了确保用户可以登录到Azure AD,您需要将Global O365的域作为备用UPN后缀添加到Active Directory中。在域控服务器上打开Server Manager,点击Tools,选择“Active Directory Domains and Trusts”,右键单击“Active Directory Domains and Trusts”,然后选择“Properties”。
将完整域名添加为“备用UPN后缀”。
打开“Active Directory Users and Computers ”,右键单击“contoso.com”并创建一个名为“Accounts”的新OU,我们将会把测试用户上传到这个OU中。
测试用户全部都放在tetstusers这个notepads里面,里面包含了姓名、账户名称、名、姓以及OU。
创建一个NotePads,输入相关要同步的信息和UPN 后缀,保存为xxx.ps1文件,右键点击run with powershell。
打开“Active Directory User and Computers”,然后打开“Accounts”查看创建的用户,选择一个用户并查看“Accounts”选项卡,验证UPN后缀是否已正确添加。
二、 配置Azure AD Connect以及Pass-through Authentication
通过https://www.microsoft.com/en-us/download/details.aspx?id=47594下载最新版本的Azure AD Connect目录同步工具, 选择 “Customize”。由于是测试,因此我们将Azure AD Connect装在DC上面,一般情况下,由于域控服务器工作负载较重,我们不建议Azure AD Connect安装在DC上面。
保留默认配置,点击 “Install”。
在“User Sign-in” 页面选择 “Pass-through authentication” 身份验证方式,并启用Single sign-on,点击 “Next”。
输入Office 365全球版的全局管理员凭据,单击 “Next”。
选择“contoso.com”作为林,然后点击“Add Directory”添加目录。
在“Azure AD登录配置”页面上,选择“Continue without any verified domains”,然后单击“Next”。在“域和OU过滤”页面上,可以指定要进行目录同步的域和OU。
保持“Identifying Users”和“Filtering”默认值,然后单击“下一步”。
在“Optional Features”页面中,选择密码同步,单击下一步后点击install。
接下来我们配置Seamless Single Sign-On,在DC上,打开”Server Manager”,选择“Group Policy Management”,展开域名 “contoso.com”,右键 “Default Domain Policy”进行编辑。
在“Group Policy Management Editor”,按照如下路径来启动策略:“User Configuration -> Policies -> Adminitrator Templates -> Windows Components -> Internet Explorer -> Internet Control Panel -> Security Page -> Site to Zone Assignment List”,点击“Enable”启动策略,并将所需的URL添加到所有加入域的计算机上的内网区域:
Value Name: https://autologon.microsoftazuread-sso.com Value: 1 Value Name: https://aadg.windows.net.nsatc.net Value: 1
运行Command Prompt,运行组策略更新“gpupdate”。
三、 在Azure Portal上查看Pass-through Authentication 的配置
上文第二大点,我们已经演示了如何配置Azure AD Connect并实现Seamless Single Sign-On的功能,现在我们在Azure门户上查看刚刚做的配置。
使用全局管理员的账户登录Azure门户(https://portal.azure.com),点击 “Azure Active Directory”,选择 Azure AD Connect,查看“Pass-through Authentication”以及“Seamless Signle Sign-On shows”显示为启用。
点击“Pass-through Authentication” 查看认证代理的详细信息。
在DC上,打开Server Manager,点击Tools,选择“Active Directory Users and Computers”,单击“View -> Advanced Features”,导航到“Computers” ,确认 “AzureADSSOACC” 计算机账户已创建成功。
四、 测试Seamless Single Sign-On
我们可以在加域的机器上(成功)和非加域的机器上(失败)都测试Seamless SSO ,如果Seamless Single Sign-on 失败,则会自动退回到Pass-through 认证(机会主义认证)。
1. 创建测试用户
按照以下路径添加一个测试用户:“Control Panel -> User Accounts -> Give other users access to this computer”,点击“Add”,在User Name输入“adionne” ,Domain输入“CONTOSO,点击下一步,为该用户赋予“Administrator” 的权限,点击Finish完成用户创建。
2. 使用加域机器测试Seamless SSO
在加域的机子上,打开IE,输入https://myapps.microsoft.com,输入我们刚刚创建的测试用户账户,无需输入密码,就可以成功登录服务,这是我们使用的就是Seamless SSO进行的登录。打开Command Prompt,运行“Klist” 命令行,查看以前我们创建的机器账号的其中一条HTTP SPNs。
关闭游览器,使用InPrivate window模式打开游览器,输入
https://myapps.microsoft.com/m365x306829.onmicrosoft.com没有输入用户名和密码,我们就可以成功登陆了,这是因为`domain_hint` 查询参数已经传递到Azure AD登录请求中。
3. 域外机器访问
在域外的机器访问https://myapps.microsoft.com链接,输入我们刚刚创建的测试用户,adionne@m365x306829.onmicrosoft.com,发现我们必须输入密码才可以登录,Seamless SSO失败。
关闭游览器窗口,打开Inprivate模式下的游览器,输入
https://myapps.microsoft.com/m365x306829.onmicrosoft.com网址,发现还是需要输入账户名和密码,才可以完成登录。