![](/img/trans.png)
[英]How to grant access to azure resource group to an external user programmatically
[英]Azure - Grant resource access to an external application
我有一个在我的 Azure 门户中注册的应用程序,它需要访问 Azure 服务管理 API 的权限。 为了使其与 Azure 资源一起使用,我需要为我的应用程序的订阅添加一个角色分配,以便能够进行 API 调用,例如:
https://management.azure.com/subscriptions/xxxx-xxxx-xxxx-xxxx/resourcegroups?api-version=2017-05-10
我想让我的应用程序与不同的 Azure 门户一起工作。 我的问题是 - 如何在另一个 Azure AD 上为我的应用添加角色分配,该广告没有注册我的应用,但已同意? 我接近这个错误吗?
如何在另一个没有注册我的应用但已同意的 Azure AD 上为我的应用添加角色分配?
是的你可以。
当应用程序在您的另一个租户中获得同意时,azure 将为您在该租户中注册的应用程序创建一个企业应用程序,您可以在Azure Active Directory
-> Enterprise applications
中找到(使用All Applications
程序搜索)。
要为其添加分配,只需导航到门户中的Subscription
-> Access control (IAM)
-> 将您的企业应用程序(服务主体)添加为角色,例如Owner
/ Contributor
。
然后,您可以使用client credentials flow
来获取服务主体的访问令牌, client_secret
是您的第一个租户中的访问令牌。 然后您可以使用该令牌在您的问题中调用 rest api。
更新:
我不建议您使用用户帐户来获取访问令牌。 因为当你启用 MFA 时,你无法使用 UserCredential 来获取。 如果你使用 Visual Studio,你可以使用AzureServiceTokenProvider
来获取访问令牌。
var azureServiceTokenProvider = new AzureServiceTokenProvider();
string accessToken = azureServiceTokenProvider.GetAccessTokenAsync("https://management.azure.com");
顺便说一句,我仍然建议您使用订阅中存在的服务主体来获取访问令牌,以便您可以使用之前使用的流程。
希望它可以帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.