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