繁体   English   中英

Azure - 授予对外部应用程序的资源访问权限

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM