4

我发现调用 Azure 的管理 API 的授权流程令人困惑,即不是 Azure API 管理,它是 API 网关 SaaS,我希望得到一些澄清。

来自https://msdn.microsoft.com/en-us/library/azure/dn629581.aspx的文档:

虽然 Azure 最初只允许 Microsoft 帐户用户访问,但现在它允许来自两个系统的用户访问。这是通过让所有 Azure 属性信任 Azure AD 进行身份验证、让 Azure AD 对组织用户进行身份验证以及创建联合关系来完成的,其中 Azure AD 信任 Microsoft 帐户消费者身份系统来对消费者用户进行身份验证。因此,Azure AD 能够对“来宾”Microsoft 帐户以及“本机”Azure AD 帐户进行身份验证。

http://blogs.technet.com/b/ad/archive/2014/08/15/prepping-for-new-management-features.aspx

您的 Microsoft Azure 订阅使用 Azure Active Directory 将用户登录到管理门户并保护对 Azure 管理 API 的访问。

该文档使我相信与订阅关联的 Azure AD 租户充当 STS,其中管理 API 是 RP,或者分别使用 OAuth 术语的授权服务器和资源服务器。租户还可以选择信任第三方 STS,例如另一个租户或 Microsoft 帐户服务,从而允许来自外部身份提供者的用户访问管理 API。

文还写道:

Azure 很快将要求管理员在 Azure Active Directory 中注册,以便能够登录到 Azure 门户或使用 Azure 管理 API。

在我看来,取消管理员帐户与订阅的 Azure AD 租户的关联,无论它是租户的“本机”帐户还是联合帐户,都应该撤销他们对管理 API 的访问权限。

我尝试使用我的订阅来验证假设,但无法完全理解结果。假设订阅有三个管理员:

  • SA使用联合 Microsoft 帐户的服务管理员
  • CA-AAD使用订阅信任的租户的“本机”帐户的共同管理员
  • CA-MSA再次使用联合 Microsoft 帐户的共同管理员

通过向租户注册的所有三个帐户,它们中的任何一个都可以管理属于订阅的资源以及使用 Web 应用程序,该应用程序反过来通过用户模拟访问Insights API 。

CA-AAD一旦 cookie/访问令牌过期,从租户中删除将不允许该帐户管理资源和访问 Insights API。这是预期的行为,但现在不存在的帐户仍列为订阅的共同管理员。

但是,CA-MSA从租户中移除并不会阻止该帐户管理资源或访问 API。这种行为甚至在会话之间持续存在,并且该帐户仍被列为共同管理员,而不是预期的结果。

现在讨论问题:

  • 为什么在CA-MSA未向租户注册的情况下仍允许继续访问管理 API?
  • 访问管理 API 的授权流程是什么?
  • 帐户如何映射到列为订阅的共同管理员的帐户?
4

1 回答 1

1

Azure 订阅仅引用两个目录,用于授权用户访问管理 API。

  1. 订阅关联到的 Azure AD。
  2. 微软广告(MSA)。

将具有 Microsoft 帐户的用户添加为订阅共同管理员时,用户将间接注册到当前订阅关联到的 Azure AD。如果用户从 Azure AD 中删除,它仍然具有订阅访问权限。这是因为用户仍然存在于 Microsoft 帐户 AD 中。

于 2016-03-08T20:05:14.270 回答