Azure AD和Graph API权限

时间:2019-09-04 07:26:57

标签: azure-active-directory

我具有分配给Azure中不同Web应用程序的各种图形权限。有什么方法可以将这些图形权限映射回Azure AD角色,并确定将权限分配给哪个角色?我需要它来基于登录用户实施访问控制

1 个答案:

答案 0 :(得分:0)

图形权限被授予Azure AD应用程序。 Azure AD角色是管理Azure AD而不是API权限。它们之间没有映射。

您要寻找的是appRole

"appRoles": [
    {
      "allowedMemberTypes": [
        "User"
      ],
      "displayName": "Writer",
      "id": "d1c2ade8-98f8-45fd-aa4a-6d06b947c66f",
      "isEnabled": true,
      "description": "Writers Have the ability to create tasks.",
      "value": "{the custom role name}"
    }
  ]

供参考的示例:Authorization in a web app using Azure AD application roles & role claims


更新

您需要在Azure AD APP中添加所需的Graph权限,然后在代码中控制这些权限。

我们假设您有assigned a custom role in an Azure AD appadded a user to this role

当用户登录时,将返回包含角色声明的令牌。 您可以在代码中判断用户的角色。如果与自定义appRole匹配,则允许他执行操作,例如user-invite-all。如果用户与任何appRoles不匹配,则他无权执行任何操作。

[HttpPost]
[Authorize(Roles = "Admin, Writer, Approver")]
public ActionResult TaskSubmit(FormCollection formCollection)
    {
        if (User.IsInRole("Admin") || User.IsInRole("Writer"))
        //do something such as inviting others.
    {

请深入研究我上面共享的示例代码。

PS:请注意,我已经在上一个答案中修改了“ appRoles”中的值。