1

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

我们已经完成了对用户进行身份验证的几乎所有工作,但尚不清楚如何使用 Azure AD 中的组来控制 SharePoint 访问。我们找到了按照这些指令传递组声明的方法,但是传递了组的对象 ID(例如,244728b5-8b9e-4e2f-8703-9853366cd431),这在 SP 中是没有意义的。

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

谢谢您的帮助。

4

1 回答 1

0

您应该使用组标识符。看见了,

  • 转到 azure 管理门户 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;
}
于 2015-11-11T19:09:18.320 回答