为Azure Active Directory中的用户提供角色

时间:2016-06-15 13:35:09

标签: asp.net azure azure-active-directory role-manager

我是Azure与Web应用程序集成的新手。我是否可以知道是否有任何可用于为Azure AD登录的用户分配角色的教程?例如UserManager.AddToRole(userId, "Admin")用于标准登录。我需要有关如何为Azure AD登录的用户分配角色的完整指南。谢谢!

PS:我使用ASP.NET和WebForm,而不是MVC。

1 个答案:

答案 0 :(得分:2)

首先,您需要了解如何在应用程序中实施授权。 Azure AD有3个主要机制。来自:https://azure.microsoft.com/en-us/documentation/articles/guidance-multitenant-identity-app-roles/

  

使用Azure AD App角色的角色: SaaS提供程序通过将应用程序角色添加到应用程序清单来定义应用程序角色。在客户注册后,客户的AD目录的管理员将用户分配给角色。当用户登录时,用户的分配角色将作为声明发送。

如果您选择此方法,则可以POST到Azure AD Graph&#39 / appRoleAssignments以将组或用户分配给应用程序角色,如下所示:

POST https://graph.windows.net/myorganization/servicePrincipals/{service_principal_object_id}/appRoleAssignedTo
Body
Content-Type: application/json
{
  "id":"{role_object_id}",
  "principalId":"{user/group_object_id}",
  "resourceId":"{service_principal_object_id}"
}

有关详细信息,请参阅此链接:https://msdn.microsoft.com/library/azure/ad/graph/api/entity-and-complex-type-reference#AppRoleAssignmentEntity

  

使用Azure AD安全组的角色:在此方法中,角色表示为AD安全组。应用程序根据用户的安全组成员身份为用户分配权限。

如果您选择此方法,则可以POST到Azure AD Graph / s / groups以将用户分配给如下所示的组:

POST https://graph.windows.net/myorganization/groups/{group_object_id}/$links/members?api-version
Body
Content-Type: application/json
{
  "url": "https://graph.windows.net/myorganization/directoryObjects/{user_object_id}"
}

有关详细信息,请参阅此链接:https://msdn.microsoft.com/library/azure/ad/graph/api/groups-operations#AddGroupMembers

  

使用应用程序角色管理器的角色:使用此方法,应用程序角色根本不存储在Azure AD中。相反,应用程序将每个用户的角色分配存储在自己的数据库中 - 例如,使用ASP.NET标识中的RoleManager类。

如果您选择此方法,那么您基本上会继续使用AddToRole。

请务必查看我引用的第一个链接,了解有关如何实施前两种方法的详细信息。