2015年6月17日,星期三

使用子域与Office 365实施AD集成(用于开发/测试)

正如在 Office 365开发中的挑战–以及如何解决,’创建多个Office 365租约来解决以下事实是相当普遍的’目前没有这样的东西“test environment”在Office 365中。但是,如前一篇文章详细讨论的那样,’肯定地说这种方法会带来一些折衷,这通常与环境差异,代码问题,测试,应用程序生命周期管理等有关。本系列文章试图提供一些可能有用的选项和技术:

总结问题

用于开发和测试的非生产租户 通常 缺乏生产环境的某些方面 – things 喜欢:

  • 目录集成(即用户使用他们的帐户登录“real” Windows account – e.g. “chris@mycompany.com” rather than “onmicrosoft.com” cloud accounts)
  • 在AD和Office 365之间同步用户配置文件数据
  • 抱怨SSO (or 抱怨in general!)

这导致了很多妥协–从无法正确测试真实的用户体验,到有时不得不编写代码以使用不同的“mode”与生产相比,在开发/测试中(也许是因为用户帐户名以不同的方式工作,或者配置文件数据’t populated).

背景–使用一个AD和多个子域进行Office 365集成

所以,我们’我会考虑一种缓解此问题的方法–一种技术,该技术允许使用完全目录集成和用户帐户数据同步来配置非生产Office 365租约,而无需为每个(以及所有这些)单独的自定义域和Active Directory。 这篇文章实际上是一篇重要的HOW-TO文章,描述了配置过程。 在一个可能同时处理15个以上Office 365实现的团队中,您可能会发现此技术对我们具有吸引力!坦白说,在企业中获取可用于测试Office 365环境的测试广告和域设置可能是一个挑战。–涉及服务器,网络,广告,安全性和操作,IT中有相当多的人可能需要在那里。因此,拥有一个可用于与MULTIPLE Office 365环境进行目录集成的Active Directory的想法对于在许多不同情况下的许多不同团队而言非常有用。

我们在这里做什么
最终,我们实现此目标的方法是执行常规“与Office 365的自定义域集成”配置步骤,但有一些调整。 Office 365管理员和平台人员将非常熟悉标准流程,并且它’s a key element of 杂种 SharePoint / Office 365配置。但是,大多数开发人员将对此东西不太熟悉–但我个人认为’对于使用Office 365的任何技术人员来说,至少要经历一次此过程非常有益。

在这一点上,我需要明确指出,这种方法背后的许多聪明思维实际上来自于我的一位同事 内容和代码 – I’m 真实ly just being the mouth-piece here ;) 特里斯坦·沃特金斯 是内容和代码研究与创新负责人,Tristan做了证明该方法的初步工作–像往常一样出色的工作。

我们实际上要做的是为我们要与Active Directory /域集成的每个不同的Office 365租赁使用一个子域。因此可能是:

  • 客户1.MyCompany.com
  • 客户2.MyCompany.com

当然,您可以替代“Client” with “Project”,或者您有其他任何东西’重新使用不同的租约。

也许:

  • Dev.MyCompany.com
  • Test.MyCompany.com
  • UAT.MyCompany.com

..等等。

最终我们’与这是我们’将有一个AD,可以为多个租户提供帐户。尽管它可能不适用于生产环境,但这确实可以帮助我们实现使开发/测试环境更加完善的使命 喜欢 生产。 Office 365中的用户帐户’t *have* 至 come from AD when cloud identities are used (more on this later), 但it can be 有用 至 stay closely with the 模式l that you’将用于生产并实现AD与O365之间的同步。

你的事’ll need

我们需要准备好以下列表中的每个项目– if not, you’需要购买/获得以下物品:

  • 准备并配置了Office 365租户
  • 顶级域名(例如MyCompany.com)–这必须是您/您的组织已经拥有并已注册的东西
  • 能够管理域的DNS(通常在托管域的ISP处)
  • 能够在您创建的广告中创建用户帐户’ll use

在较高的级别上,我们按照通常的步骤将自定义域添加到Office 365租约中– I’我使用GoDaddy托管我的域/ DNS,而Office 365对此主机托管服务商和其他托管服务商提供了一些有用的集成/简化管理员。但是,使用子域方法,即使我们使用GoDaddy托管我们的域,我们’将需要手动配置我们的DNS记录,而不是可以单击任何“magic buttons”购买或配置域(如此域):

GoDaddy捷径

因此,请注意,尽管Office 365有很多“simplified admin” options if you’重新使用GoDaddy,在大多数情况下, ’我会忽略这些,自己做一些额外的配置。

如何:使用子域配置Office 365域集成

供参考,在本演练中’m使用以下命令:

Office 365域

自定义域(顶级)

用于此租赁的子域

b
..so这给出了:

-URL = b.sharepoint.com

-用户名= user1@cobsp.onmicrosoft.com

chrisobrien.com

cob.chrisobrien.com

所以在这里’的过程。首先,我们进入Office 365管理中心,然后进入“Domains”区。到达那里后,我们点击“Add domain” button on the “Manage domains” screen:

新增网域

然后,我们开始逐步完成将自定义域添加到Office 365的配置:

clip_image006

打“Let’s get started”该屏幕上的链接。在下一个屏幕上(下面),我们应该输入打算用于此Office 365租户的子域/域–如前所述,我们’需要在此处添加DNS记录,因此我们应该为此做好准备。

clip_image008

输入域后,点击“Next”并查看下面的屏幕。在这里,您无需登录GoDaddy,并让Office 365尝试为您配置。相反,DNS记录需要手动创建,因此请单击“use a TXT record”链接如下图所示:

clip_image010

下一个屏幕提供了您的TXT记录的详细信息’需要在您的托管服务商处添加(以我的情况为GoDaddy):

clip_image012

这样做有助于验证您确实拥有并控制域和域的事实。’t trying 至 pull some sneaky internet trick. 所以,我们 now need 至 go 至 the control panel of the ISP hosting our domain, and specifically the DNS area. At GoDaddy, it looks 喜欢 this:

clip_image013

我用“Add Record”链接添加带有Office 365给我的详细信息的TXT记录。完成后,我等待一会儿,然后返回到Office 365并确认我’现在已经完成了这一步。如果我按指定添加了TXT记录,并且DNS已经传播,则应该看到类似以下内容的内容:

clip_image015

我点击“Next”按钮在这里。这将更新任何用户’来自的电子邮件地址 user1@cobsp.onmicrosoft.comuser1@chrisobrien.com 就我而言:

clip_image016

然后,您可以选择(手动)添加一些其他用户。如果您计划使用AAD Sync从本地AD同步用户,则您可能会赢得’t使用此选项,但是对于开发/测试环境,您可能需要在此阶段添加几个用户(假设您拥有这些用户的许可证):

clip_image017

现在我们进入重要部分–添加主要的DNS记录集以支持与您的自定义域的集成:

clip_image018

Office 365询问您计划使用/集成哪些服务,因此您只需要担心相关的DNS记录:

clip_image019

在随后的屏幕上,’不幸的是,我们可以通过另一个超级方便的快捷方式链接’t use (because we’重新执行使用子域的非标准操作)J跳过“Add records”简单按钮,然后单击“自己添加这些记录” link:

clip_image020

接下来的屏幕列出了您需要在主机上添加的所有DNS记录。现在,您需要将该屏幕与DNS面板进行交叉引用–对于列出的每个项目,在管理面板中配置DNS记录。 与标准过程相比,主要区别在于在每个DNS记录中都指定了子域,而不仅仅是顶级域:

clip_image022

这里’s在GoDaddy DNS管理面板中添加记录的示例:

clip_image013 [1]

clip_image024

一旦您’已添加所有记录,返回到Office 365,然后单击“Okay, I’ve added the records”链接。 Office 365现在将检查您添加的记录,如果成功,您将看到一条确认消息,如下所示:

clip_image026

您的自定义域现已集成,其状态应反映在“Manage domains” admin page:

clip_image027

评论-那么我们现在有什么?
至此,我们现在使用子域将本地AD与Office 365租约集成在一起。但是,我们不’还没有Office 365中实际存在的用户帐户–可以用不同的方式在其中创建帐户,我们需要使用其中一种将身份实际放入Office 365中进行测试。无论我们是否’实际使用这些帐户登录,或直接将其用作“passive”用户。最终,这些是云身份,因此如果这些用户登录,我们的模型将使用云身份验证,而不是其他选项(联合身份验证,例如使用ADFS或类似的身份验证)。

顺便说一句,如果其中一些令人困惑,并且您需要有关Office 365中身份和身份验证的不同选项的良好背景,’d建议从 TechNet上的用户帐户管理.

在Office 365中实际创建用户–AAD同步,手动或批量更新

有或没有自定义域(或子域),都可以通过以下方式创建用户:

  • 在Office 365管理UI中手动
  • 使用PowerShell
  • 使用CSV文件中的批量上传
  • 使用AAD同步
  • 使用Exchange邮箱迁移

换句话说,它 ’值得记住的是,即使您’已将自定义域与Office 365租约集成在一起,用户*不必*来自AD。但是,如果您想保持生产状态,并且可能要进行从AD到Office 365的同步,那么这绝对是可能的。

使用AAD Sync将用户从AD同步到Office 365

实施中 同步 通过AD使用此子域方法 向AD域添加备用UPN后缀 (如“分配UPN域后缀” section of 在TechNet上配置Office 365 for SharePoint混合) –这有效地使我们能够将目录中的不同用户匹配到不同的Office 365租约:

clip_image028

将UPN后缀添加到广告中后,’然后可以将此后缀分配给各个用户帐户– thus “matching”它们到特定的Office 365租赁和URL域:

clip_image030

我也倾向于将每个帐户集放在不同的OU中,这样我就可以轻松查看每个租户的帐户。

此时,您现在可以实施AAD Sync来同步帐户–您将下载并安装/配置 AAD同步工具,这是Office 365管理员熟悉的步骤:

clip_image032

clip_image034

这将提供FIM和计划的任务,以便从AD持续进行同步。然后,在FIM中,您可以将同步限制为特定的租期,以限制您之前放入特定OU的用户:

clip_image036

如果要针对多个Office 365租户执行此操作,请注意此处的一件事是您’将需要FIM和同步工具/任务的多个实例(据我所知’我知道)。由于要进行开发/测试的所有同步内容都不是您的关键任务,因此只需将AAD Sync部署在几个不同的小型VM(即每个租户一个)中,就可以轻松地进行管理。

此时,您’d现在正在同步用户’d从您的AD实例到您的开发/测试Office 365租赁。凉!

最后,唐’不要忘记,如果您希望这些来自AD的测试用户能够登录和使用Office 365服务,’需要在租赁中为其分配许可证。

概要

实现目录集成是 需要 在某些Office 365上下文中(例如,混合以及使用Yammer Enterprise的位置),但是 有用 在许多其他方面也是如此。如果你’重新使用多个Office 365租约来表示非生产环境,’当开发人员/测试人员穿上衣服时会很痛苦’与生产设置匹配,特别是如果您发现自己围绕用户配置文件实现了任何自定义功能。此处详细介绍的方法提供了一个选项,可以简化开发/测试Office 365环境的目录集成,而不会带来通常会伴随的某些基础结构要求和麻烦。

本系列将继续讨论用于改进Office 365开发的选项和技术。其他职位:

2015年6月15日,星期一

Office 365开发中的挑战-解决挑战的方法

在过去的两年中,我花了很多时间思考“云友好型” SharePoint开发-适用于Office 365的方法和技术,以及需要使用相同的方式设计的本地SharePoint部署原则。现在我们的团队至少完成了20项左右的Office 365 / SharePoint Online实施(并且还在进行中),’我们已经建立了使用Office 365的某些方法。一个很好的例子是创建多个租户来表示开发/测试/生产,以帮助我们的ALM流程,因为Office 365没有测试环境的概念。当然,在SharePoint方面(我在这里关注),您 可以 只是创建一个特殊的网站集-但这并没有’无法为您提供所有全局元素之间所需的隔离。示例包括用户个人资料,分类法和搜索之类的内容。而且由于我们的客户经常要求与这些区域互动的较小的定制,因此“test site collection” idea just doesn’帮我们剪下来。相反,我们采用多租户方式,而我’ve为有类似需求的任何人提倡了一段时间。
当我’在之前的会议上已经讨论过,对于大多数客户/项目,我们的选择是创建单独的开发和测试租约,通常看起来像这样:
clip_image002
It’这不是最重要的一点,但是我们倾向于在这些环境中使用不同的Office 365计划级别-大多数客户使用“Office 365 E3”计划生产,我们’将确保TEST在同一计划上,但通过使用DEV来降低成本“SharePoint P2”(因此没有Exchange,Lync或Yammer Enterprise)。由于我们的大部分开发工作都集中在SharePoint方面,因此通常可以很好地工作。但是,无论您对计划级别如何操作,’同样,使用多个Office 365租约(任何种类)也会带来一些折衷– recently I’一直在考虑减轻这种情况的方案,这些方案大致可以归类为:

  • 使开发/测试Office 365租约更像生产
  • 寻找针对生产Office 365环境进行安全测试的方法
接下来的几篇博客文章将详细介绍一些可以在此处提供帮助的技术。在第一篇文章中,我’我们将讨论问题空间-我在当前的Office 365开发中发现的一些问题可能会导致您考虑使用这些方法。但是在我的文章系列中’将会讨论诸如:
现在,让’讨论您在Office 365开发中可能遇到的一些问题。

多个Office 365租约带来的挑战

当我们谈论开发和测试环境时,实现团队始终需要使它们与生产环境尽可能相似。差异越大,您越有可能’再有一个问题-通常与无效的测试或缺陷有关,这些缺陷或缺陷仅在生产中变得明显。不幸的是,我注意到我们的Office 365项目确实在这里需要权衡。我们确实确实希望有多个Office 365环境用于开发/测试/生产(至少使用Office 365开发人员当前的工作方式),但是很难使其他环境紧密地反映生产。这里’可能有所不同的事物列表:
  • 通常,目录集成是在生产环境中配置的,但不适用于其他环境
    • 换句话说,用户使用“chris@mycompany.com” in production, 但“.onmicrosoft.com”帐户用于开发/测试
    • [注:您可能知道此步骤为“实施Azure AD同步”, or “implementing DirSync”使用其以前的名字]
  • 对于登录到公司网络(与上述要点有关)的用户,Office 365缺少SSO
  • 缺少完整的用户目录
  • 在开发/测试环境中,用户配置文件未与AD同步
  • Lack of 抱怨Enterprise
  • Lack of 抱怨SSO
  • 不同的许可证类型(例如生产中的E3 / E4,但开发/测试中的其他许可证)

OK, 但why should I care about these things?

取决于你’重新开发时,其中某些事情肯定会引起问题!根据我们的经验,有一些明显的例子:
  • It’无法进行端到端测试– we can’t see the “real”用户体验,尤其是跨连接服务的体验,例如Office 365和Yammer
  • 在移动设备上的体验不同
  • 有时必须以不同的方式编写代码,或者使用“mapping”在开发/测试中-尤其是围绕用户个人资料的内容。例如,任何类型的用户名查找/电子邮件查找/经理查找等等
  • 与3的任何集成rd 一方/外部系统如果使用当前用户,则可能无法正常工作’s的详细信息(因为使用了不同的身份)
  • 抱怨–缺少SSO意味着两件事:
    • 任何标准用法,例如Yammer Web部件或Yammer Embed赢得了’t “just work”-显示一个登录按钮,并且用户必须提供辅助凭据来验证/获取Cookie
    • 任何Yammer API代码可能都需要特殊的“mode” –因为您可能正在生产Yammer SSO,但其他地方没有

我们如何应对这些挑战?

因此,如果我们可以改善这种情况,那就太好了。许多问题源于开发/测试环境没有’配置了身份集成和AAD Sync,以及’通常会阻碍建立专用URL域,而Active Directory通常不是’琐碎的。好消息是子域/ UPN后缀方法我’我会在下一篇文章中谈论,让您超越这一点–无论您有多少Office 365环境,您都需要一个URL域和一个Active Directory。在对我们的开发/测试中,这意味着我们在GoDaddy为所有客户/项目注册的URL。我们仅在运行于开发人员机器上的小型VM中运行本地AD。
一旦实现了域集成,下一步就是实施AAD Sync,以实际将一些用户从AD迁移到Office 365。 它将运行您选择的一组用户(也许您会将每个开发/测试租赁的一些用户分组到不同的OU中),并将执行在Office 365中实际创建用户的步骤。然后,您可以选择为他们分配许可证如果您希望该测试用户能够登录并使用Office 365功能,并且当用户登录时,实际身份验证将在云中进行。如果要实施Yammer Enterprise和Yammer SSO,现在也可以这样做。目录集成是这两项工作的先决条件,但是解决了这一问题而又没有造成严重的平台/基础架构困扰,这些可能性为我们的开发/测试环境打开了大门。

概要

以便’在问题空间上有一点点。最终,在企业级为Office 365开发确实存在一些挑战,但可以克服许多挑战,我们仍将努力寻求可靠的工程实践。接下来的几篇博客文章将介绍其中的一些内容– I’当文章发表时,将在下面的列表中添加链接:
谢谢阅读!