如何对Azure管理API的调用进行授权?

时间:2015-08-06 17:56:07

标签: azure authorization azure-active-directory azure-api-management

我发现授权流程混淆了对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。

blog post也写道:

  

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

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

我尝试使用我的订阅来验证假设,并且无法理解结果。假设订阅有三位管理员:

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

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

从Cookie中删除CA-AAD,禁止该帐户在Cookie /访问令牌过期后管理资源并访问Insights API。这是预期的行为,但现在非退出帐户仍然列为订阅的共同管理员。

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

现在问题:

  • 为什么CA-MSA允许继续访问管理API,尽管它没有在租户注册?
  • 访问管理API的授权流程是什么?
  • 如何将帐户映射到列为订阅的共同管理员的帐户?

1 个答案:

答案 0 :(得分:0)

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

  1. 与订阅关联的Azure AD。
  2. Microsoft AD(MSA)。
  3. 如果将具有Microsoft帐户的用户添加为订阅共同管理员,则会在与当前订阅关联的Azure AD中间接注册用户。如果从Azure AD中删除该用户,则它仍具有订阅权限。这是因为用户仍然存在于Microsoft Account AD中。