2014-11-07 4 views
0

Я новичок в Azure. Я опубликовал свой веб-сайт MVC 5 для Azure. У меня есть список имен групп и их objectid в словаре C#. Группы AD создаются в Azure AD Directory. Я пытаюсь найти, является ли зарегистрированный пользователь членом группы Azure AD. По какой-то причине я не увенчался успехом. Я получаю исключение NUllreferenceException, когда я использую функцию GraphConnection.IsMemberOf(). Было бы здорово, если бы вы помогли мне решить эту проблему.Check Пользователь является членом Azure AD Group

Вот мой код

try 
      { 
       var userObjectId = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value; 
       var authContext = new AuthenticationContext(String.Format(CultureInfo.InvariantCulture, loginUrl, tenant)); 
       var credential = new ClientCredential(clientId, appKey); 
       var result = authContext.AcquireToken(graphResourceId, credential); 

       var clientRequestId = Guid.NewGuid(); 
       var graphSettings = new GraphSettings 
       { 
        ApiVersion = GraphConfiguration.GraphApiVersion 
       }; 
       var graphConnection = new GraphConnection(result.AccessToken, clientRequestId, graphSettings); 

       if (string.IsNullOrEmpty(this.adGroupObjectId)) 
       { 
        var groups = graphConnection.List<Group>(null, null); 

        if (groups != null && groups.Results != null) 
        { 
         var group = groups.Results.SingleOrDefault(r => r.DisplayName == adGroup); 
         if (group != null) 
          adGroupObjectId = group.ObjectId; 
        } 
       } 
       if (adGroupObjectId != null) 
        inGroup = graphConnection.IsMemberOf(adGroupObjectId, userObjectId); 

       return inGroup; 
      } 
      catch(Exception ex) 
      { 
       var message = string.Format("Unable to authorize AD user: {0} against group: {1}", ClaimsPrincipal.Current.Identity.Name, adGroup); 
       throw new Exception(message, ex);     
      } 
+0

Я получаю ошибку для всех методов, которые я пытаюсь использовать с графиком. например: graphConnection.Get (userObjectId); –

ответ

1

Akhil, недавно мы включили роли приложений и групп Утверждают особенности в Azure AD. В зависимости от вашего сценария один из них должен быть подходящим.

Получите быстрый обзор здесь: http://blogs.technet.com/b/ad/archive/2014/12/18/azure-active-directory-now-with-group-claims-and-application-roles.aspx

Глубокий пост погружения и видео на ролях приложения особенность здесь: http://www.dushyantgill.com/blog/2014/12/10/roles-based-access-control-in-cloud-applications-using-azure-ad/

Deep после погружения и видео на группы утверждают, особенность здесь: http://www.dushyantgill.com/blog/2014/12/10/authorization-cloud-applications-using-ad-groups/

Надежда что помогает.

Смежные вопросы