【问题标题】:Retrieve a user group membership from Azure AD for RBAC从 Azure AD for RBAC 检索用户组成员身份
【发布时间】:2015-03-07 14:42:31
【问题描述】:

我在 WPF(本机客户端)中创建了一个测试应用程序。该客户端正在通过 ADAL 库向 Azure 进行身份验证,并且我在登录后成功获取了 Token。我想做的是获取用户所属组的列表,以便我可以将此组用作访问数据的访问控制。

到目前为止:

  • 已成功使用 Azure 设置我的本机客户端,并将其“Windows Azure Active Directory”委托权限授予“读取目录数据”和“启用登录并读取用户配置文件”。

  • 登录后获取令牌

  • 读取用户的个人资料信息
  • 创建了用户和组的列表,并将它们添加到 Azure AD 中各自的组。

当我尝试使用以下设置查询 Azure GRAPH 时

private async void ReadUserRoles(object sender, RoutedEventArgs e)
        {
            var result = authContext.AcquireToken(resource, clientID, redirectUri);
            var httpClient = new HttpClient();
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
            var userID = result.UserInfo.UniqueId;
            var url = string.Format("{0}{1}/users/{2}/memberOf?api-version=2013-04-05", "https://graph.windows.net/", tenantID, userID);
            var msg = await httpClient.GetAsync(url);

            var userRoles = await msg.Content.ReadAsStringAsync();
            MessageBox.Show(userRoles);
        }

GRAPH 查询来自:http://msdn.microsoft.com/en-us/library/azure/jj126255.aspx 但后来我得到一个未经授权的错误。我登录的用户是 Azure 中的“全局管理员”。完整的错误信息是:

{"odata.error":{"code":"Authentication_MissingOrMalformed",
"message":{"lang":"en","value":"Access Token missing or malformed."},"values":null}}

我的主要目标是设置一个应用程序,在其中使用 WPF 客户端根据用户在 AD 中的成员身份访问数据。

【问题讨论】:

    标签: c# azure asp.net-web-api rbac adal


    【解决方案1】:

    您不再需要查询图表来获取组信息,我们有一个新功能可以在令牌中提供这些信息。见http://www.dushyantgill.com/blog/2014/12/10/authorization-cloud-applications-using-ad-groups/

    链接不再有效,但this link 可能会有所帮助

    【讨论】:

    • 链接好像坏了
    猜你喜欢
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多