我有一个在Azure门户中注册的应用程序,该应用程序需要访问Azure Service Management API的权限。为了使其能够与Azure资源一起使用,我需要向我的应用程序的订阅中添加角色分配,以便能够进行如下所示的API调用:
https://management.azure.com/subscriptions/xxxx-xxxx-xxxx-xxxx/resourcegroups?api-version=2017-05-10
我希望我的应用程序可以与其他Azure门户一起使用。 我的问题是-如何在未注册我的应用但已同意我的应用的另一个Azure AD上为我的应用添加角色分配?我要错了吗?
答案 0 :(得分:0)
如何在未注册我的应用但已同意我的应用的另一个Azure AD上为我的应用添加角色分配?
是的,可以。
当您的另一个租户同意该应用程序后,azure将在该租户中为您的应用程序注册创建企业应用程序,您可以在Azure Active Directory
-> Enterprise applications
中找到(搜索{{ 1}})。
要为其添加分配,只需在门户中导航至All Applications
-> Subscription
->将您的Enterprise应用程序(服务主体)添加为角色,例如Access control (IAM)
/ Owner
。
然后,您可以使用client credentials flow
获取服务主体的访问令牌,Contributor
是您的第一个租户。然后,您可以使用令牌调用问题中的其余api。
更新:
我不建议您使用用户帐户来获取访问令牌。因为当您启用MFA时,您无法使用UserCredential来获取。如果使用Visual Studio,则可以使用client_secret
获取访问令牌。
AzureServiceTokenProvider
顺便说一句,我仍然建议您使用订阅中已存在的服务主体来获取访问令牌,以便您可以使用之前使用的流程。
希望它对您有帮助。