我正在尝试创作一个应用程序,该应用程序允许用户从我的应用程序中查询其Azure订阅中的网站列表。我不希望在我的应用程序中存储他们的凭据(他们也不应该希望我这样做),相反,我会要求他们从Azure AD示例中注册应用程序,然后让他们存储在我的应用程序中生成的ClientID和TenantID。我会向他们提供一组说明,而且他们可以在任何时候关闭。他们需要感觉舒服这样做,就像我会。
我试图遵循这篇文章的情节:Using Azure resource graph with .net SDK
这让我非常接近,但当我运行应用时,我从Azure资源图收到“禁止”响应,因此调用通过,但被拒绝。我还尝试使用自己的Azure门户添加各种API权限进行测试。文章指出,我需要使用以下内容创建服务主体:
az ad sp为rbac“MyApp”创建--角色贡献者--sdk-auth
我还没做呢。
所以我的问题是:
- 这是我的问题吗?
- 我是否需要要求我的用户创建一个服务主体,如果需要,在上面的示例中,“MyApp”变量的值是什么?
- 有没有更好的方法来实现这一点,对用户的要求更低?
我感谢任何人可以提供任何指导或文章转介。
非常感谢....
1条答案
按热度按时间qyyhg6bp1#
如果要使用服务主体调用Azure资源图Rest API,则必须将Azure RABC Role分配给sp。因此,必须运行以下命令
同时,运行示例的详细步骤如下
1.运行以下脚本。
1.配置代码。请注意,如果要调用不同订阅中的资源,则需要通过在步骤1中更改范围值来创建不同的服务主体
有关详细信息,请参阅
https://odetocode.com/blogs/scott/archive/2018/02/01/setting-up-service-principals-to-use-the-azure-management-apis.aspx
https://learn.microsoft.com/en-us/cli/azure/ad/sp?view=azure-cli-latest#az-ad-sp-create
更新
根据您的需求,我认为您可以创建一个Web应用程序来调用Azure资源图API。如果您这样做,您可以提供Web应用程序的URL,然后您的客户可以登录您的应用程序并自行调用API。
1.注册Azure AD Web应用程序
2.配置权限
1.创建客户端密码
1.配置代码。请参考sample