Azure 云端环境里的活动目录介绍

来源:岁月联盟 编辑:猪蛋儿 时间:2020-02-10

很多人都熟悉活动目录,即 Windows 服务器中可用的本地目录和身份验证系统,但Azure Active Directory到底是什么呢?
Azure 活动目录(Azure AD 或 AAD)是一个多租户云目录和身份验证服务。
Azure AD 是 Office365(和 Azure)为账户、组和角色利用的目录服务。 它还是一个身份提供者(Identity Provider,IPD) ,并支持联邦(SAML,等等)。
注意: 考虑到云变化的速度,这篇文章的元素可能在原始发布日期之后很快就过时了。 Azure AD 具有高可用性和全球部署性。
Azure AD 部署在全球超过30个数据中心,利用当前的 Azure 可用性区域。 随着更多 Azure 地区的部署,这个数字正在迅速增长。
为了持久性,任何写入 Azure AD 的数据都会根据租户配置复制到至少4个和最多13个数据中心。 在每个数据中心内,数据再次复制至少9次,以提高持久性,并扩展容量以满足身份验证负载。 说明一下——这意味着在任何时间点,在我们最小的区域内,我们的服务中至少有36个你的目录数据副本可用。 为了持久性,直到一个地区外的数据中心成功提交之后,才能完成对 Azure AD 的写操作。
这种方法既保证了数据的持久性,又提供了大量的冗余性——多个网络路径和数据中心可以服务于任意给定的授权请求,系统可以自动、智能地重试并绕过数据中心内部和数据中心之间的故障路由。
为了验证这一点,我们定期进行故障注入,并验证系统对构建在 Azure AD 之上的系统组件的失败恢复能力。 这扩展到定期删除整个数据中心,以确认系统可以容忍数据中心的丢失,而对客户的影响为零。
Azure AD 已经是一个庞大的系统,运行在超过300,000个 CPU 核心上,并且能够依靠 Azure 云巨大的可扩展性来快速动态地扩展以满足任何需求。 这可能包括流量的自然增长,比如某个地区上午9点的认证峰值,也可能包括我们 Azure AD B2C 服务的新流量的巨大激增,它驱动了一些世界上最大的活动,并经常看到数以百万计的新用户的冲击。
为了支持门安全部署的健康检查,并让我们的工程团队洞察系统的健康状况,Azure AD 发布了大量内部遥测数据和信号,用于监测我们系统的健康状况。 在我们的范围内,每周有超过11pb 的信号提供给我们的自动健康监测系统。
https://azure.microsoft.com/en-us/blog/advancing-azure-active-directory-availability/
Azure 活动目录不是云 AD
Azure 活动目录不是云托管的活动目录。 没有标准的 AD 身份验证方法,如 NTLM 或 Kerberos; 没有 LDAP; 也没有组策略(GPO) ,因此 Azure AD 不适用于传统的本地应用程序。
在微软 Azure (Azure 活动目录域服务)、 Amazon AWS (Amazon 托管微软活动目录)和 Google Cloud (微软活动目录 (AD)的托管服务)中,有一些云托管的活动目录环境可用于管理云工作负载。 这些都是托管的微软活动目录环境,它们有2个域控制器(或更多) ,租户管理员不接收托管的 AD 环境的域管理权限; 只提供委托访问,这通常包括在特定 OU 和特定 GPO 中创建和管理资源的能力。
注意: 我不会在这篇文章里对这些服务做详细的比较,但是如果有兴趣的话,我可能会在未来写篇这方面的文章(我在2017年对微软 Azure 和亚马逊 AWS 托管的活动目录服务做了一些研究比较)。
主要的管理工具介绍
AD 管理员熟悉的大多数工具是活动目录用户和计算机,又称为 ADUC (MMC 工具)。
Azure 活动目录管理员将主要使用 https://portal.azure.com 的网络控制台来管理环境。
管理本地活动目录的管理员和现在的 Azure AD 和 Office 365的管理员将使用本地 MMC 工具和 web 管理门户(以及与它们相关的各种 URL)。 有一些 PowerShell cmdlet 可用于管理 Azure AD (类似于本地管理) ,不过云功能的发布速度通常比 PowerShell 工具的发布速度快,这意味着即使使用 PowerShell,仍然应该使用云管理门户。
与 Azure 活动目录的连接
由于 Azure AD 没有 LDAP,因此与 AAD 的连接涉及通过 Graph API (或 PowerShell 模块)进行连接。 我喜欢 PowerShell,所以我使用 PowerShell 模块(或 Portal 网站)进行管理和报告。 有两个主要的 PowerShell 模块可以与 Azure AD 进行连接: MSOnline  和 AzureAD。 这些功能可以通过 PowerShell 安装功能进行安装:
Install-Module -Name MSOnline -Force
Install-Module -Name AzureAD -Force
AzureAD 模块可能最终取代 MSOnline PowerShell 模块,但是在 MSOnline 中有一些功能还没有移植到 Azure AD 模块中。
Azure AD PowerShell 模块和 cmdlet 比较(模块和 cmdlet 的数据截至2020年1月)
类别
MSOnline
AzureAD
管理单元
Get-MsolAdministrativeUnit
管理单元
Get-MsolAdministrativeUnitMember
应用程序
Get-AzureADApplication
应用程序
Get-AzureADApplicationExtensionProperty
应用程序
Get-AzureADApplicationKeyCredential
应用程序
Get-AzureADApplicationLogo
应用程序
Get-AzureADApplicationOwner
应用程序
Get-AzureADApplicationPasswordCredential
应用程序
Get-AzureADApplicationProxyApplication
应用程序
Get-AzureADApplicationProxyApplicationConnectorGroup
应用程序
Get-AzureADApplicationProxyConnector
应用程序
Get-AzureADApplicationProxyConnectorGroup
应用程序
Get-AzureADApplicationProxyConnectorGroupMember
应用程序
Get-AzureADApplicationProxyConnectorMemberOf
应用程序
Get-AzureADApplicationServiceEndpoint
应用程序
Get-AzureADMSApplication
应用程序
Get-AzureADMSApplicationExtensionProperty
应用程序
Get-AzureADMSApplicationOwner
应用程序
Get-AzureADDeletedApplication
应用程序
Get-AzureADServiceAppRoleAssignedTo
应用程序
Get-AzureADServiceAppRoleAssignment
应用程序
Get-AzureADGroupAppRoleAssignment
认证
Get-AzureADMSIdentityProvider
认证
Get-AzureADMSLifecyclePolicyGroup