SharePoint组通过Azure Active Directory声明

时间:2015-08-11 17:10:12

标签: azure sharepoint sharepoint-2010 azure-active-directory azure-acs

我们使用Azure Active Directory和Azure访问控制服务(ACS)对SharePoint 2010实例中的用户进行身份验证。 Azure AD中的用户和组使用Azure AD Connect从本地AD目录进行同步。

我们几乎所有人都在努力对用户进行身份验证,但目前尚不清楚如何使用Azure AD中的组控制SharePoint访问。我们找到了通过每these instructions传递组声明的方法,但是传递了组的对象ID(例如,244728b5-8b9e-4e2f-8703-9853366cd431),这在SP中没有意义。

有没有办法传递群组名称,还是我们应该使用群组ID?在针对Azure AD进行身份验证时,是否有更好的方法来管理SP中的组访问?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您应该使用组标识符。要看到它,

  • 转到天蓝色管理门户网站https://manage.windowsazure.com
  • 从左侧的服务列表中选择活动目录
  • 从列表中单击您的活动目录
  • 点击顶部菜单中的“群组”
  • 点击要在列表中查看ID的组
  • 点击顶部菜单中的“属性”
  • 从属性列表中复制ObjectID字段

在您的代码中,您可以使用objectID

声明字符串常量
private static string myGroupName = "xxxxxxxx-your-objectID-xxxxxxxxxx";

然后只需使用“myGroupName”将您的群组与群组声明列表进行比较

 var isMember = IsGroupMember(myGroupName);

以下是如何查看声明:

public static bool IsGroupMember(string groupName)
{
    var principal = ClaimsPrincipal.Current;

    // Look for the groups claim 
    var supportClaim = principal.Claims.FirstOrDefault(
        c => c.Type == "groups" &&
            c.Value.Equals(groupName, StringComparison.CurrentCultureIgnoreCase));
    return null == supportClaim ? false : true;
}