【问题标题】:how to determine which group a user is a member of in azure active directory如何确定用户是 Azure Active Directory 中的成员
【发布时间】:2017-09-12 11:53:18
【问题描述】:

我正在使用 azure 活动目录来控制用户对我的 Web 应用程序的访问。这一切都很好,但我不知道如何识别当前登录的用户是哪个组的成员。在 ClaimsIdentity 中,我可以在 azure 中看到这两个组的设置,但我无法确定用户是其中哪个组的成员(它们仅属于 2 个组中的 1 个)。我的 web.config 中有这个代码和一个与我的管理员用户的键匹配的键,但我的两个组都在 claimidentity 对象中。那么如何确定该用户是否在我的管理员组中?

var groups = identity.Claims.Where(x => x.Type.Equals("groups")).ToList();
        //this is a GUID that should match the group objectID for Adminusers in the azure active directory
        string admin = Helpers.Settings.AdminUser;
        if (groups.Any(c => c.Value.Contains(admin)))
        {
            return true;
        }
        else
        {
            return false;
        }

我一定是走错路了,有人帮帮我吗?

【问题讨论】:

标签: c# azure azure-active-directory


【解决方案1】:

您似乎已启用 Group Claims 来检查用户在特定安全组(或多个组)中的成员身份。

组声明将返回当前用户所属的 Groups 和 DirectoryRoles 的集合。例如,如果用户是您的 AAD 中的全局管理员,并且属于一个组。使用组声明,您将获得两条记录(1 个组和 1 个目录角色)。

如果您想获取用户在其中具有直接或传递成员资格的所有组(无 DirectoryRoles),我们可以使用 Azure AD Graph API 调用 getMemberGroups 函数。

在您的场景中,要检查用户是否在您的管理员组中,您可以检查管理员组的对象 ID 是否存在于 groups 声明中。如果存在,则用户属于管理员组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多