谁是 Azure 活动目录的所有者?

Posted

技术标签:

【中文标题】谁是 Azure 活动目录的所有者?【英文标题】:Who is the owner of an Azure active directory? 【发布时间】:2015-09-29 05:34:45 【问题描述】:

假设我有两个 Microsoft 帐户:

MicrosoftAccount1@outlook.com MicrosoftAccount2@outlook.com

然后我登录 Azure 帐户中心并为每个帐户创建两个订阅:

MicrosoftAccount1@outlook.com 订阅1a 订阅1b MicrosoftAccount2@outlook.com 订阅2a 订阅2b

每个账号都有账号管理员和服务管理员,账号管理员可以更换服务管理员。例如,我可以将所有订阅的控制权交给一位服务管理员,在管理门户中,看起来该帐户拥有所有订阅:

MicrosoftAccount1@outlook.com MicrosoftAccount2@outlook.com 订阅1a 订阅1b 订阅2a 订阅2b

但是帐户管理员没有改变,所以实际上,每个帐户仍然拥有原来的两个订阅。帐户管理员始终可以通过将服务管理员更改回自己来收回对订阅的控制权。

然后我登录 Azure 管理门户并创建一些存储帐户、Web 应用程序、SQL 数据库和其他 Azure 资源。每个资源属于一个订阅,每个订阅归一个帐户所有:

MicrosoftAccount1@outlook.com 订阅1a 存储帐户 网络应用 SQL 数据库 订阅1b 存储帐户 网络应用 SQL 数据库 MicrosoftAccount2@outlook.com 订阅2a 存储帐户 网络应用 SQL 数据库 订阅2b 存储帐户 网络应用 SQL 数据库

所以我可以说,最终,每个 Azure 资源都归其订阅的帐户管理员所有。

Azure 还为每个帐户创建了一个活动目录,由两个订阅共享。当我查看管理门户时,活动目录看起来只是另一个 Azure 资源,除了它属于两个订阅:

MicrosoftAccount1@outlook.com 订阅1a 存储帐户 网络应用 SQL 数据库 MicrosoftAccount1outlook.onmicrosoft.com(共享) 订阅1b 存储帐户 网络应用 SQL 数据库 MicrosoftAccount1outlook.onmicrosoft.com(共享) MicrosoftAccount2@outlook.com 订阅2a 存储帐户 网络应用 SQL 数据库 MicrosoftAccount2outlook.onmicrosoft.com(共享) 订阅2b 存储帐户 网络应用 SQL 数据库 MicrosoftAccount2outlook.onmicrosoft.com(共享)

我什至可以在管理门户中创建更多活动目录,这是我创建存储帐户、Web 应用程序和 SQL 数据库的地方,所以看起来活动目录只是另一个可以属于多个订阅的 Azure 资源:

MicrosoftAccount1@outlook.com 订阅1a 存储帐户 网络应用 SQL 数据库 MicrosoftAccount1outlook.onmicrosoft.com(共享) MicrosoftAccount1outlook2.onmicrosoft.com(共享) 订阅1b 存储帐户 网络应用 SQL 数据库 MicrosoftAccount1outlook.onmicrosoft.com(共享) MicrosoftAccount1outlook2.onmicrosoft.com(共享) MicrosoftAccount2@outlook.com 订阅2a 存储帐户 网络应用 SQL 数据库 MicrosoftAccount2outlook.onmicrosoft.com(共享) MicrosoftAccount2outlook2.onmicrosoft.com(共享) 订阅2b 存储帐户 网络应用 SQL 数据库 MicrosoftAccount2outlook.onmicrosoft.com(共享) MicrosoftAccount2outlook2.onmicrosoft.com(共享)

但是,我玩得更久了,我意识到我把它弄反了。活动目录不属于订阅;订阅属于活动目录。我可以更改将哪些订阅分配给哪些目录。然后,在管理门户中,我选择了一个目录,它会显示该目录的订阅及其资源:

MicrosoftAccount1@outlook.com MicrosoftAccount1outlook.onmicrosoft.com 订阅1a 存储帐户 网络应用 SQL 数据库 MicrosoftAccount1outlook2.onmicrosoft.com 订阅1b 存储帐户 网络应用 SQL 数据库 MicrosoftAccount2@outlook.com MicrosoftAccount2outlook.onmicrosoft.com MicrosoftAccount2outlook2.onmicrosoft.com 订阅2a 存储帐户 网络应用 SQL 数据库 订阅2b 存储帐户 网络应用 SQL 数据库

所以现在看起来帐户管理员拥有活动目录,而活动目录拥有订阅。但是,我又玩了一些,我也不认为这是对的。我可以让第一个帐户成为所有四个订阅的服务管理员。第二个帐户可以将第一个帐户添加为每个目录中的用户,并使他成为全局管理员。然后第一个帐户可以从每个目录中删除第二个帐户。所以现在,第一个帐户可以管理所有四个目录的订阅,并且是所有四个目录中唯一的用户和全局管理员,第二个帐户甚至不能再登录管理门户,所以看起来像第一个帐户拥有一切:

MicrosoftAccount1@outlook.com MicrosoftAccount1outlook.onmicrosoft.com 订阅1a 存储帐户 网络应用 SQL 数据库 MicrosoftAccount1outlook2.onmicrosoft.com 订阅1b 存储帐户 网络应用 SQL 数据库 MicrosoftAccount2outlook.onmicrosoft.com MicrosoftAccount2outlook2.onmicrosoft.com 订阅2a 存储帐户 网络应用 SQL 数据库 订阅2b 存储帐户 网络应用 SQL 数据库 MicrosoftAccount2@outlook.com

第二个帐户仍然真正拥有两个订阅,因为他是帐户管理员,但没有任何内容表明他拥有两个目录。第二个帐户管理员可以收回对他的两个订阅的控制权,但我看不出他如何收回对他的两个目录的控制权。此外,只要他不是任何活动目录的成员,他甚至不能再创建任何订阅; Azure 不会像创建第一个目录那样创建另一个目录。那么,此时,谁拥有活动目录 MicrosoftAccount2outlook.onmicrosoft.com 和 MicrosoftAccount2outlook2.onmicrosoft.com?

我什至可以让一个目录拥有属于不同帐户管理员的订阅:

MicrosoftAccount1@outlook.com MicrosoftAccount1outlook.onmicrosoft.com 订阅1a 存储帐户 网络应用 SQL 数据库 订阅1b 存储帐户 网络应用 SQL 数据库 订阅2a 存储帐户 网络应用 SQL 数据库 订阅2b 存储帐户 网络应用 SQL 数据库 MicrosoftAccount1outlook2.onmicrosoft.com MicrosoftAccount2outlook.onmicrosoft.com MicrosoftAccount2outlook2.onmicrosoft.com MicrosoftAccount2@outlook.com

为了让事情变得更有趣,我可以在不是 Microsoft 帐户的目录中创建一个用户;它只是一个目录帐户。然后我可以作为目录帐户登录管理门户并创建另一个目录。新目录中唯一的用户和全局管理员是创建它的目录帐户;它没有 Microsoft 帐户所有者。谁拥有那个目录?

甚至可以说活动目录拥有原始 Microsoft 帐户,因为 Microsoft 帐户是活动目录中的用户。因此,如果 Active Directory 拥有 Microsoft 帐户,而 Microsoft 帐户拥有订阅,那么谁拥有 Active Directory? (编辑:再想一想,目录拥有 Microsoft 帐户是没有意义的,因为一个 Microsoft 帐户可以是多个目录中的用户,这意味着该帐户有多个所有者。从头开始。人类拥有Microsoft 帐户。Microsoft 帐户拥有订阅,或者 Active Directory 拥有订阅。谁拥有 Active Directory?)

【问题讨论】:

This video 很好地解释了 Azure 订阅如何同时属于管理和计费层次结构。至于租户:订阅与租户之间存在信任关系(而非所有权)——出于身份目的,他们信任谁? 【参考方案1】:

我不认为 Azure AD 租户的“所有者”概念(目录的同义词,但在文学中更常见的绰号)有意义。 当您登录 Azure 门户时,您将看到您当前登录的用户所属的所有租户。无论用户是 MSA(微软帐户)还是组织帐户(@.onmicrosoft.com 或 @),情况都是如此。无论租户是如何形成的,这也是如此。有人可能创建了一个新的 Office 365 订阅,该订阅随其 onw Azure AD 租户一起提供,然后将您用于 Azure 订阅的 MSA 作为新用户添加到该租户。下次登录 Azure 门户时,您还将在目录中看到该新租户 - 只是因为您是该租户中的用户并且有权使用它进行操作(例如创建新应用程序)。 底线:Azure AD 租户独立于 Azure 订阅而存在。注册 Azure 时会自动预配 Azure AD 租户,并且您的订阅管理员(或任何门户用户)将自动添加到在操作门户时创建的任何新 Azure AD 租户中,但我希望 O365 示例显示了这是如何实现的只是创建 Azure AD 租户的方式之一。唯一不适合上述内容的是,您的订阅中确实有一个默认目录,该目录具有特殊属性 - 但是,我认为我不会谈论所有权。高温

【讨论】:

API 可以读取默认目录的这些特殊属性吗?

以上是关于谁是 Azure 活动目录的所有者?的主要内容,如果未能解决你的问题,请参考以下文章

使用 loginwithazureactivedirectory 和 expressmode 的 Azure 活动目录

扩展azure活动目录访问令牌声明

Azure 活动目录是不是容易受到 DoS 或 DDOS 攻击

如何验证 Azure 活动目录中刷新的 id_token 的签名

如何从 azure 活动目录中删除应用程序?

Azure 活动目录给定的 OAuth 令牌的最大长度(以字节为单位)