从 Web 应用访问 Azure 管理 API
Azure Management API access from a web app
是否可以通过 Web 应用程序的客户端 ID 和机密访问 Azure 管理 API?
我有一个 Web 应用程序,我希望能够通过它来管理 Azure。我想使用应用程序本身的凭据来执行此操作,以便当前用户不必是 azure 管理员。
我已经在我的订阅中为 Web 应用程序授予了必要的角色,并通过 AD 中的客户端凭据授予流程获得了访问令牌,但我仍然获得了未授权。
这可能是因为 Azure 管理 API 除了委派外没有其他权限集 - 如果我对登录用户使用授权代码授予流程,访问工作正常,但这不是我想要的。
所以重申一下,如果给定一个具有 RBAC 订阅并且能够从 AD 获取访问令牌的 Web 应用程序,那么在没有交互式用户的情况下,Web 应用程序是否能够使用任何方式管理层 API??
是的,您可以从 AAD 为服务主体获取令牌并使用它来管理资源,只要该服务主体具有您需要的所有访问权限即可。
确保您获得的令牌的 resource/audience 为“https://management.azure.com”,并且用于与订阅关联的 tenantId。
您还可以查看 Brady Gaster 的这篇文章,其中解释了如何使用 Azure AD 应用程序从外部应用程序管理 Azure 服务:http://www.bradygaster.com/post/using-windows-azure-active-directory-to-authenticate-the-management-libraries
编辑: Azure AD 支持使用 OAuth 2.0 客户端凭据的服务到服务调用:https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx
希望这对您有所帮助,
朱利安
是否可以通过 Web 应用程序的客户端 ID 和机密访问 Azure 管理 API?
我有一个 Web 应用程序,我希望能够通过它来管理 Azure。我想使用应用程序本身的凭据来执行此操作,以便当前用户不必是 azure 管理员。
我已经在我的订阅中为 Web 应用程序授予了必要的角色,并通过 AD 中的客户端凭据授予流程获得了访问令牌,但我仍然获得了未授权。
这可能是因为 Azure 管理 API 除了委派外没有其他权限集 - 如果我对登录用户使用授权代码授予流程,访问工作正常,但这不是我想要的。
所以重申一下,如果给定一个具有 RBAC 订阅并且能够从 AD 获取访问令牌的 Web 应用程序,那么在没有交互式用户的情况下,Web 应用程序是否能够使用任何方式管理层 API??
是的,您可以从 AAD 为服务主体获取令牌并使用它来管理资源,只要该服务主体具有您需要的所有访问权限即可。
确保您获得的令牌的 resource/audience 为“https://management.azure.com”,并且用于与订阅关联的 tenantId。
您还可以查看 Brady Gaster 的这篇文章,其中解释了如何使用 Azure AD 应用程序从外部应用程序管理 Azure 服务:http://www.bradygaster.com/post/using-windows-azure-active-directory-to-authenticate-the-management-libraries
编辑: Azure AD 支持使用 OAuth 2.0 客户端凭据的服务到服务调用:https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx
希望这对您有所帮助,
朱利安