繁体   English   中英

如何授权 Azure 多租户应用程序在客户租户中配置资源

[英]How to authorize Azure multi tenant application to provision resources in customer tenant

我正在构建一个多租户应用程序,它必须在帐户设置过程中在客户(比如目标)租户中配置少量 azure 资源(资源组、甚至集线器、存储集线器等)。

我按照azure 文档注册了一个应用程序。 我可以在“企业应用程序”下看到在目标租户中创建的服务主体,并且该应用程序已委托类型“azure 服务管理 API”权限。 在目标租户中的应用

问题:我想在 PYTHON 的源租户(这是我的租户)中编写一个function应用程序,它可以获取目标帐户中的订阅/配置资源。 我尝试了azure.identity.ClientSecretCredential中的 azure.identity.ClientSecretCredential 类似示例来获取订阅列表,它重新调整了订阅。 我认为 ClientSecretCredential 不适合委托类型权限,直到我向服务主体添加显式角色分配,它才会获得授权。 帖子也这么说。

是否必须使用AuthorizationCodeCredential ,但它需要需要用户交互的auth_code 那么,需要开发一个 web 页面,该页面提示用户同意并将 auth_code 重定向到此 function 使用此 function 作为重定向 URI?

还有其他方法吗? 任何代码参考都会有所帮助。

此外, MSALazure.identity package 类之间有什么区别。 关于这方面的任何文档,何时使用 API,我已经看到了使用其中任何一个的各种示例。

AuthorizationCodeCredential不适用于 function 应用程序,因为根据我的经验,无法在 function 应用程序中实现交互式登录。

也许您可以使用UsernamePasswordCredential ,可能没有必要分配 RBAC 角色。 添加委托权限就足够了。 无论如何,使用ClientSecretCredential (在这种情况下,有必要将 RBAC 角色分配给服务主体/企业应用程序)或UsernamePasswordCredential应该没问题。

简而言之,如果您想使用用户令牌( AuthorizationCodeCredentialUsernamePasswordCredential )调用 Azure Rest API API,则需要知道目标用户或租户的凭据。

Other design: you can use auth code flow to get the access token for Azure Rest API in your front app and send the access token to your function, then call Azure Rest API in the function app.

您可以从这篇文章了解MSALazure.identity package 之间的区别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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