1

Мы используем Azure Active Directory и службы контроля доступа Azure для проверки подлинности пользователей в экземпляре SharePoint 2010. Пользователи и группы в Azure AD синхронизируются из AD-каталога AD, используя Azure AD Connect.Требования группы SharePoint через Azure Active Directory

У нас почти все работает для аутентификации пользователей, но неясно, как управлять доступом SharePoint с помощью групп в Azure AD. Мы выяснили, как разрешить подачу заявки на группу в течение these instructions, но идентификатор объекта группы (например, 244728b5-8b9e-4e2f-8703-9853366cd431) передается, что не имеет смысла в SP.

Есть ли способ передать название группы или использовать идентификатор группы? Есть ли лучший способ управлять групповым доступом в SP при аутентификации против Azure AD?

Спасибо за помощь.

+0

Можете ли вы использовать API-интерфейс Graph для получения имени группы из идентификатора объекта? Например, при запуске приложения вы можете сохранить имена групп в словарь, который вы кешируете локально, и использовать его для получения имени группы. –

+0

Поскольку мы имеем дело с SharePoint здесь, наши параметры ограничены, если пользовательский код аутентификации использует Graph API. Это, конечно, возможно, но не желательно. –

ответ

0

Следует использовать идентификатор группы. Чтобы увидеть его,

  • перейти к лазурному порталу управления https://manage.windowsazure.com
  • выбрать активный каталог из списка услуг по левому
  • щелчка на вашем активном каталог из списка
  • нажмите на «группу» из меню в верхнем
  • мыши на группе вы хотите увидеть идентификатор для в списке
  • нажмите кнопку «свойства» в меню в верхней
  • Скопируйте 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; 
}