【问题标题】:Provide role for user in Azure Active Directory为 Azure Active Directory 中的用户提供角色
【发布时间】:2016-10-16 15:56:23
【问题描述】:

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

PS:我将 ASP.NET 与 WebForm 结合使用,而不是 MVC。

【问题讨论】:

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


    【解决方案1】:

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

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

    如果您选择这种方法,您可以 POST 到 Azure AD Graph 的 /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 的 /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 Identity 中的 RoleManager 类。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多