azure-active-directory - Azure 多租户应用程序创建有权访问一个订阅的用户/服务主体
问题描述
我有一个代表客户管理 Azure 资源的多租户应用程序。一旦创建了服务主体并定义了角色,我们就可以使用该应用程序管理资源。
但是,我们有一个用例,我们有第二个系统,它以每个客户为基础工作,它只管理一个订阅。有什么方法可以让我创建一个只能访问该单一订阅的帐户?
我试图为创建的服务主体设置密码。不幸的是,如果与服务主体关联的应用不在同一个租户中,您似乎无法使用服务主体帐户登录 Azure。
解决方案
您需要在租户中注册一个服务主体,并通过 Azure 的 RBAC 访问订阅资源。使用多租户应用程序,当用户同意其权限时会生成服务主体。
对于您的方案,您需要在其 Azure AD 租户中创建一个应用程序(这会自动为租户中的应用程序创建一个服务主体)。然后,您需要为服务主体赋予订阅角色。然后,您可以使用服务主体的应用程序 ID 和密码获取访问令牌。您无法通过正常的登录表单登录。您需要针对 Azure AD 进行客户端凭据身份验证,并且您将在响应中获得一个访问令牌,然后您可以使用该令牌对 Azure 的 ARM API 的请求进行身份验证。
请询问您是否需要有关某些步骤的详细信息:)
推荐阅读
- r - 当 rmarkdown 符合时,R 包可用选项卡会显示
- javascript - React、useEffect 清理不适用于 removeEventListener、useRef、视差效果
- parsing - 如何使用 ANTLR 逐个解析输入?
- visual-studio-code - 在 Visual Studio 代码中禁用 .ejs 文件的 onsave 格式
- python - 分别对每一行应用一个函数
- css - 将多层背景与单独的蒙版结合起来
- python-3.x - 使用python检测输入数据的数据类型时,如何使用嵌套的if-else进行这项工作
- math - 如果我在一个网页中有 640 个输入过滤器,我可以拥有的过滤器组合的最大数量是多少?
- bash - 如何防止 Mac OS 上长时间运行的 bash 脚本中的空闲睡眠?
- directx-11 - hlsl 锐化,模糊后处理效果代码问题