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网址,发现还是需要输入账户名和密码,才可以完成登录。
Office 365 Pass-through身份验证及Seamless Single Sign-On的更多相关文章
- [ Office 365 开发系列 ] 身份认证
前言 本文完全原创,转载请说明出处,希望对大家有用. 通常我们在开发一个应用时,需要考虑用户身份认证及授权,Office 365使用AAD(Azure Active Directory)作为其认证机构 ...
- 中国版 Office 365 (X-Tenant / Tango) 功能验证报告 - 2 基本步骤
说明: 1. 前期准备 - 在Azure上模拟出生产环境: 包括父域域控.子域域控.父域的Exchange Server.子域的Exchange Server.对Exchange Server, 需要 ...
- 中国版 Office 365 (X-Tenant / Tango) 功能验证报告 - 1 简介
花了点时间做了一次Office 365 X-Tenant的 POC,对过程做了记录和总结,在这里会陆续分享: (一) 简介 这次POC的系统环境是模拟一个公司的生产环境: 1. 公司总部在国外,拥有 ...
- 2017年10月31日结束Outlook 2007与Office 365的连接
2017 年10月31日 ,微软即将推出 Office 365中Exchange Online邮箱将需要Outlook for Windows的连接,即通过HTTP Over MAPI方式,传统使用R ...
- [ Office 365 开发系列 ] Graph Service
前言 本文完全原创,转载请说明出处,希望对大家有用. 通过[ Office 365 开发系列 ] 开发模式分析和[ Office 365 开发系列 ] 身份认证两篇内容的了解,我们可以开始使用Offi ...
- 如何解决Dynamics 365的错误:用户身份验证无效,MSIS0006
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复246或者20170312可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 证明你是你——快速开启Windows Azure多重身份验证
中国版Windows Azure的多重身份验证(Multi-Factor Authentication)功能已经开放.这个功能说白了就是要“证明你是你”.目前可以支持以下几种验证方式: 手机,短信验证 ...
- 使用中国版 Office 365 -- Team Site分享
Team Site(工作组网站)主要用于团队内部的协同工作,团队(组织机构)内部每个需要使用Team Site的用户都需要一个Office 365的license.但是如果我们需要将Team Site ...
- 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证]
二.使用Azure AD进行身份验证 之所以将Azure AD 作为开始,是应为基本上我们所有应用都需要进行安全管理.Azure Active Directory (Azure AD) 通过以下方式简 ...
随机推荐
- 常见的接口与类 -- Comparable
目录 1. 接口概述 2. 接口方法详读 3. 接口方法的实践操作 3.1 String和Integer对于compareTo()的实现 正文 接口Comparable 我们在字符串中见到过Comp ...
- Week6&7——第一次项目冲刺(Alpha版本)
Deadline: 2017-11-11 10:00PM,以博客发表日期为准. 评分基准: 按时交 - 有分(需求&原型改进与系统设计-10分,敏捷冲刺-70分),检查的项目包括后文的三个方面 ...
- Java 获取汉字串首字母并大写和获取汉字的全拼,英文字符不变
在开发中我们难免会遇到需要提出汉字中的拼音的首字母.提出汉字的拼音,接着便介绍一个工具类 pinyin4j.jar,首先需要下载 jar 包. Pinyin4j是一个功能强悍的汉语拼音工具包,是sou ...
- 对象的深度拓展$.extend(true,{},a,b),深入理解,小心陷阱
转载:https://www.cnblogs.com/DJeanWeb/p/4388689.html $.extend一般情景下,使用深度拓展两个对象时,我们想要的效果是,b对象覆盖掉a对象中存在的所 ...
- 【模板】 全排列 && 有重复元素的全排列
全排列 #include<bits/stdc++.h> using namespace std; ]; void print (int n){ ;i<=n;i++) cout< ...
- nginx为什么性能这么优越?
Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器 ,也是一个 IMAP/POP3/SMTP 代理 服务器 . Nginx 是由 Igor Sysoev 为俄罗斯访问 ...
- Git 小记
感觉用github管理自己平时的一些代码挺方便的,尤其还有各种统计,作为一个码农,就有一种每日签到.累计签到统计的感觉.用github,学习git自然是不可避免的,原先只是用几个 git clone ...
- CSS页面重构“鑫三无准则”之“无图片”准则——张鑫旭
一.再说关于“鑫三无准则” “鑫三无准则”这个概念貌似最早是在去年的去年一篇名叫“关于Google圆角高光高宽自适应按钮及其拓展”的文章中提过.这是自己在页面重构的经验中总结出来的一套约束自己CSS的 ...
- python中GIL和线程与进程
线程与全局解释器锁(GIL) 一.线程概论 1.何为线程 每个进程有一个地址空间,而且默认就有一个控制线程.如果把一个进程比喻为一个车间的工作过程那么线程就是车间里的一个一个流水线. 进程只是用来把资 ...
- 移除button点击时的黑边
input[type=submit], input[type=reset], input[type=button]{ outline:none; filter: chroma(color=#00000 ...