问题标签 [azure-rbac]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 基于组和基于角色的授权之间的天蓝色广告差异
嗨,最近我开始研究 azure ad。我已经开始为我的 .net 核心 API 进行授权。我对 azure 广告角色和组有以下理解。
Azure AD 组。分组只是用户分组属于同一业务。一个用户可以属于多个组。每当添加新用户时,我们都可以将用户关联到不同的组。
基于 Azure AD 组的 .net 核心授权, 我们将在我们的 .net 核心应用程序上拥有 api。因此,将上面的 azure 广告组和我的 .net 核心应用程序结合在一起,我们可以拥有基于 plociy 的授权。例如,某些组可以访问的 API 很少。例如,
因此,每当我在控制器顶部有 [Authorize(Policy = "GroupsCheck")] 时,只有当用户属于相应的组 id 时,他才能访问这些 api。
Azure AD 角色 Azure 广告角色可以分配给上述组。这些角色用于授予对 Azure 广告服务的访问权限。例如,一个角色可以访问虚拟机,而其他角色可以访问网络事物。因此,每当我们将角色应用于组时,该组中的相应用户将获得所述权限。
这是我的理解。如果我有错误的理解,请纠正我。
现在我的困惑从这里开始。
小组主要做两件事。第一个是我们可以在我们的 .net 应用程序中进行授权,接下来是我们可以使用组将用户分组在一起,我们可以分配角色。但令我困惑的是 .net 核心应用程序中基于角色的授权。Azure 中的 RBAC 是对不同用户/组的细粒度访问。我的 .net 核心应用程序中的 RBAC 和 azure 之间有什么关系。
管理员同意
另一件事是,例如我有 azure ad 用户角色,并且我创建了 .net 核心应用程序并在 azure ad 中注册。现在我的应用程序需要访问 microsoft graph。因此,要让 microsoft graph 访问我的应用程序租户管理员必须给予同意。例如,要读取租户应用程序中的所有组,应调用 microsoft graph。这是我对管理员同意的理解。
有人可以帮助我正确理解这些事情吗?任何帮助,将不胜感激。谢谢
azure - Azure RBAC 用于删除创建新订阅的访问权限
我正在尝试删除我的 azure 租户上的用户创建新订阅的权限。
查找的唯一方法是创建用户时活动目录中的 GlobalReader 角色。但是使用这种方法,用户可以看到活动目录,我用用户的权限阻止它。
我还尝试在我的管理组的租户根目录中创建一个 rbac。但是当我只是一个读者角色时,用户可以再次创建新订阅。
azure-active-directory - 如何使用 Azure AD 和 WebJobs SDK 连接到存储队列?
我的 WebJobs 应用使用 Azure 存储队列触发器。当在配置中设置到队列应用程序监听的存储帐户的连接字符串时,它运行顺利;即appsettings.json。
但是,我不想在配置中公开任何秘密,更重要的是,我想完全避免访问密钥,而是依赖 Azure AD 和基于角色的访问控制 (RBAC)。
为此,我为运行应用程序的服务主体分配了队列数据参与者角色,并将队列的连接类型从门户切换Access key
到Azure AD
。
我的意图是使用Azure Identity SDK并新建一个实例,DefaultAzureCredential
并使用它将我的应用程序连接到队列。
但据我所知,Webjobs SDK 期望使用英亩键进行连接,即连接字符串。使用独立存储队列客户端时,这很简单,因为我可以使用上述 Identity SDK 创建队列客户端。但是在 WebJobs 中,我似乎无法覆盖连接到该队列的方法。
如何通过 Azure AD 和 RBAC 访问该队列?非常感谢您对此的任何帮助!
ubuntu-18.04 - 使用 az 管理资源的 VM 的 RBAC 角色
Azure 的新手。我试图在 18.04.1-Ubuntu 中使用 az cli 来管理资源组[The VM is part of the resource group]。我为虚拟机启用了系统管理分配的身份,并从资源组 IAM 授予所有者对虚拟机的 RBAC 访问权限。
但是当我尝试使用 az resource list -g 'resource_group_name' 我得到
Please run 'az login' to setup account.
azure - 支持请求贡献者角色的 PoC
我希望得到您的指导和建议。我正在尝试为名为“支持请求贡献者”的 Azure RBAC 角色构建概念证明。这些是我在创建非管理员常规用户帐户并将此角色分配给订阅级别的帐户后计划进行的测试。
有人可以用这个角色做什么?提交支持请求 担任此角色的任何人都可以看到其他人的票吗?是 担任此角色的任何人都可以增加订阅配额吗?TBD 角色模仿有哪些?目前,此角色只能在订阅级别分配,因此用户可以查看该订阅中的所有资源组。
您是否有任何经验或我可以添加到此 PoC 文档中的内容。
这是我的第一个 PoC 文档,因此非常感谢您的任何提示、建议和指导。
非常感谢 :)
azure - 在 C# .Net 中使用 MSI 访问 Azure Key Vault
由于我是 Azure 的新手,所以这个问题可能很愚蠢。我正在尝试构建一个服务来配置和管理一个虚拟机集群。出于安全考虑,我不想在每个集群上放置一些敏感数据。所以我决定为每个集群配置一个 Azure Key Vault 来存储这些数据,并创建一个 MSI(托管标识)并分派到集群的每个节点,以便 vm 可以访问密钥库以获取机密。
在服务端,我需要配置 vms、key Vault 和 MSI。将 MSI 分配给每个 VM,同时将正确的角色授予 MSI 以访问 AKV。这是我的问题:
- 系统 MSI 与用户 MSI,因为集群将有多个节点,为了减少配置整个集群的延迟,用户 msi 可能是一个更好的主意,因为我们可以配置一个 MSI 并授予一次访问权限。对于系统分配的 MSI,我们需要为每个身份授予访问权限。但缺点是,我们必须在删除整个集群时删除 MSI。你对此有何看法?
- 愚蠢的问题,如何预配 MSI、Azure Key Vault 并授予访问权限。你能给我看一些代码示例吗?我试图在网上找到公共 API 文档和教程,但失败了。
azure - AKS RBAC - 角色绑定无效
我正在按照此处的说明在与 Azure AD 集成的 AKS 群集中设置 RBAC 。我在我的 AAD 租户中创建了一个 AD 组,向其中添加了一个用户。然后按照说明在 AKS 群集中为该组分配“群集用户角色”。创建了一个角色和角色绑定,如下所示:
角色:
角色绑定:
然后我尝试使用新的用户凭据登录:
根据文档,我应该只被允许在开发命名空间上做 kubectl get pods。但是,使用这个新的用户凭据,我看到我可以执行 kubectl get pods --all-namespaces、kubectl get svc --all-namespaces 等并查看结果,就好像角色绑定根本没有任何影响一样。我还通过检查我的集群是否有
“启用RBAC”:真
有人可以告诉我这个配置有什么问题吗?
azure - Azure 存储 blob 容器使用 ARM 分配 RBAC
我们目前有 ARM 模板,可以在解决方案中创建存储帐户和容器,但是我似乎无法在 ARM 模板中分配对容器的 RBAC 访问权限。我在这里尝试使用 Erik 的解决方案
我得到的错误是“错误”:{“代码”:“BadRequestFormat”,“消息”:“请求格式不正确。” 有人看到我哪里出错了吗?
azure - 仅通过 ACL 授予对 Azure Data Lake Gen2 访问权限(无 RBAC)
我的目标是在目录级别限制对 Azure Data Lake Gen 2 存储的访问(根据微软的承诺,这应该是可能的)。
我有两个目录data
,并且sensitive
在数据湖第 2 代容器中。对于特定用户,我想授予对目录的读取权限data
并阻止对目录的任何访问sensitive
。
在文档中,我删除了该用户的所有 RBAC 分配(在存储帐户以及数据湖容器上),因此我对目录没有继承的读取访问权限。data
然后,我在该用户的目录中添加了一条 Read-ACL 语句。
我的期望:
- 用户可以直接从
data
目录下载文件。 - 用户无法访问该目录的
sensitive
文件
现实:当我尝试从数据目录下载文件时,我得到一个403 ServiceCode=AuthorizationPermissionMismatch
我希望这应该有效。否则,我只能通过分配 Storage Blob Reader 角色来授予访问权限,但这适用于容器内的所有目录和文件,并且不能被 ACL 语句覆盖。我这里有什么问题吗?
azure - 如何使用 Azure B2C 处理多个 API
如果需要多个 API,我需要帮助来了解 Azure B2C 如何工作。
我们在这个示例中有: https://api01.azurefunction.com/ https://api02.azurefunction.com/
B2C 实例示例.onmicrosoft.com
API01 公开范围: https ://samples.onmicrosoft.com/api01/read
API02 公开范围: https ://samples.onmicrosoft.com/api02/write
WebApp 使用 MSAL.NET (Microsoft.Identity.Client 4.9.0) 并且只能为一个 API 请求范围。任何为两种不同资源请求范围的尝试都将失败,如果使用 ConfidentialClientApplicationBuilder,它会在 AD/B2C 中受到限制。
我尝试通过请求范围来启动到 STS 的多次往返都失败了。即使它可以工作,由于可能会显示同意屏幕,因此不能考虑将其用于生产。
在这一点上,我需要建议如何在当前情况下工作。
我有多种选择:
为这些 API 实现外观并提供单点请求数据。但这至少有消耗资源的缺点。B2C 不支持其代表的其他重大限制。因此,我需要发明如何使用传入的安全上下文调用底层 Azure Functions。
使用具有 AD 集成的 API 管理实例,但我们的项目价格如此之高(~2K/月)
使用“hack”为受 AD 保护的 Azure 函数定义“允许的令牌受众”,以允许接受为一个资源获取但发送到另一个资源的令牌。这项工作,但我的范围将受到限制,因为范围列表将由获取令牌的资源定义。作为一种变体,我可以注册“假”应用程序并始终获取该应用程序的令牌。
在 Azure Function 中实现自定义 AccessToken 绑定器并完全发明一个轮子 :(
选项#3 看起来不错。有一些限制,但我希望我能解决这个问题。
但最后,如果我需要与 AD Graph API 等 Azure API 通信,如何获取令牌?使用 RBAC?
请协助解决此问题。