2014-06-21 7 views
0

asp.net MVC 4 프로젝트를 개발했습니다. 현재 Azure Graph API에 액세스하여 AD 사용자 데이터를 얻으려고합니다 (사용자의 탐색 속성 액세스, Ref 링크 : Azure Rest API Reference).Azure AD : 라이브러리를 사용하지 않고 Azure AD Graph API에 액세스하는 방법

나는 푸른 AD 그래프 도우미 라이브러리를 확인하지만,이를 사용하여 한 내가 탐색 때에 프로퍼티에 액세스 할 수 없습니다입니다 (예 : 사용자의 접근 관리자 속성) 어떤 도움에 감사드립니다

.

답변

0

HttpClient 또는 다른 일반적인 http 요청 생성 클래스를 통해 그래프를 직접 쉽게 조회 할 수 있습니다. 특정 엔티티에 액세스하고 결과를 필터링하기 위해 OData 규칙을 고수하면됩니다. 일부 일반적인 쿼리의 경우 Graph 라이브러리없이 직접 시도 할 수 있습니다. http://msdn.microsoft.com/en-us/library/azure/jj126255.aspx

1

일부 엔티티 (이 경우 '사용자')를 가져올 때 기본적으로 모든 탐색 속성이로드되지는 않습니다. 확장 (..)을 사용해야합니다. 내가 어떻게 사용자에게 관리자를 지정하는 방법과 사용자의 관리자 탐색 속성을 얻기 위해 예를 들어 줄 아래 (일부 인프라 뉘앙스 생략) :

public async Task<Result> AssingUserManager(string userUpn, string managerUpn) 
{ 
    try 
    { 
     var user = (AD.User)await ADClient.Users 
      .Where(x => x.UserPrincipalName == userUpn) 
      .ExecuteSingleAsync(); 

     var manager = (AD.User)await ADClient.Users 
      .Where(x => x.UserPrincipalName == managerUpn) 
      .ExecuteSingleAsync(); 

     user.Manager = manager; 

     await manager.UpdateAsync(); 
     return Result.Ok(); 
    } 
    catch (Exception ex) 
    { 
     return Result.Fail(new Error("Failed to assign manager", null, ex)); 
    } 
} 

public async Task<Result<User>> GetUserManager(string upn) 
{ 
    try 
    { 
     var user = (AD.User)await ADClient.Users 
        .Where(x => x.UserPrincipalName == upn) 
        .Expand(x => x.Manager) 
        .ExecuteSingleAsync(); 

     var manager = user.Manager as AD.User; 
     if (manager != null) 
     { 
      return Result.Ok(ConvertToModel(manager)); 
     } 

     return Result.Fail<User>(new Error("Manager not found for specified user", null)); 
    } 
    catch (Exception ex) 
    { 
     return Result.Fail<User>(new Error("Failed to get user's manager", null, ex)); 
    } 
} 

은 또한, 나는 그래프를 업데이트 할 때 나는 그렇게 할 것을 알아 차리는에 UpdateAsync를 호출하여 관리자 속성으로 설정된 사용자가 아닌 관리자로 할당 된 사용자 (source에서 가져옴)

관련 문제