【发布时间】:2020-06-19 10:38:10
【问题描述】:
我正在尝试创建一个新的资源组、一个新的 Active Directory 用户,然后将该用户作为贡献者分配给资源组。
到目前为止,我已经使用Microsoft.Azure.Management.ResourceManager 成功创建了资源组,并使用Microsoft.Graph 创建了 AD 用户。我可以在 Azure 中看到它们并且可以同时访问它们。
但是,我无法清楚地找到如何在资源管理器或图形 API 中使用 C# 将用户分配到资源组。
我可以在此处查看其他所有操作 > https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal
我认为这是 Graph API 调用 graphClient.DeviceManagement.RoleAssignments 但是,从属性中我无法清楚地看到我将资源组详细信息放在哪里。
这是我在下面的尝试,但出现错误: 请求不适用于目标租户
var roleAssignment = await graphClient.DeviceManagement.RoleAssignments.Request().AddAsync(new DeviceAndAppManagementRoleAssignment
{
DisplayName = "Test Role",
Members = new List<string>
{
createdUser.Id // GUID of new User
},
ResourceScopes = new List<string>
{
"/subscriptions/04cbb440-e619-4c8f-869f-8dc4d7dd6e42/resourceGroups/NewResourceGroup" // ID of Resource Group
},
RoleDefinition = new RoleDefinition
{
RolePermissions = new List<RolePermission> {
new RolePermission {
ResourceActions = new List<ResourceAction>
{
new ResourceAction {
AllowedResourceActions = new List<string> {"*"},
NotAllowedResourceActions = new List<string>
{
"Microsoft.Authorization/*/Delete",
"Microsoft.Authorization/*/Write",
"Microsoft.Authorization/elevateAccess/Action"
}
}
}
}
}
}
}).ConfigureAwait(false);
有人可以告诉我如何轻松做到这一点或去哪里看吗?
【问题讨论】:
-
您应该使用 Azure 管理 REST API 而不是 Microsoft Graph API。 docs.microsoft.com/en-us/azure/role-based-access-control/…
-
@TonyJu 我知道这可能是一个选项,但为什么我不能使用 Graph SDK?
-
适用于 Intune 的 RBAC 图形 API 需要租户的活动 Intune 许可证。 docs.microsoft.com/en-us/graph/api/resources/…
-
@TonyJu 好的,谢谢。我将把它作为一个解决方案来解决,但我会留下这个问题,因为我仍然想知道你将如何使用 Graph API 来做到这一点。
标签: c# azure azure-active-directory azure-resource-manager azure-ad-graph-api