2017-11-23 2 views
0

특정 그룹에 그룹 수명주기 정책을 적용하는 Azure 함수를 만들려고했지만 응용 프로그램 권한으로 실패합니다.Microsoft Graph Lifecycle Policies가 응용 프로그램 권한과 작동하지 않습니다.

사용자 이름과 암호 인증을 사용하면 문제없이 작동합니다.

public static string GetAccessTokenForUser(string resourceUri, string aadDomain, string userName, string password) 
    { 
     var powershellClientId = "12128f48-ec9e-42f0-b203-ea49fb6af367"; 
     var azureADAuthority = $"https://login.microsoftonline.com/{aadDomain}/oauth/v2/authorize"; 
     var userCreds = new UserPasswordCredential(userName, password); 
     var authContext = new AuthenticationContext(azureADAuthority, true); 
     var authResult = AuthenticationContextIntegratedAuthExtensions.AcquireTokenAsync(authContext, resourceUri, powershellClientId, userCreds).GetAwaiter().GetResult(); 
     return authResult.AccessToken; 
    } 

ClientId를 사용하는 경우 ClientSecret은 항상 401 Unauthorized error를 반환합니다.

public static string GetAccessTokenForClientId(string resourceUri, string aadDomain, string clientId, string clientSecret) 
    { 
     var azureADAuthority = $"https://login.microsoftonline.com/{aadDomain}/oauth/v2/authorize"; 
     var clientCreds = new ClientCredential(clientId, clientSecret); 
     var authContext = new AuthenticationContext(azureADAuthority, true); 
     var authResult = authContext.AcquireTokenAsync(resourceUri, clientCreds).GetAwaiter().GetResult(); 
     return authResult.AccessToken; 
    } 

은 그 때 나는

GET https://graph.microsoft.com/beta/groupLifecyclePolicies 

문서 https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/grouplifecyclepolicy_list에서이 응용 프로그램의 사용 권한이 작동해야한다고 이전 함수에서 액세스 토큰을 사용하여 GET 요청을한다. 액세스 토큰에 필요한 범위가 포함되어 있는지 확인했습니다.

아무도 확인할 수 있습니까?

+0

코드, 설정 파일 또는 커뮤니티가 질문을 해결하는 데 도움이 될만한 정보를 추가 할 수 있습니까? – 3Dos

+0

코드 샘플을 추가했습니다. –

답변

0

O365의 제한된 사용자 권한으로 작업하는 그룹을 관리하고 O365 API 요청을 응용 프로그램 권한으로 실행하는 데 사용되는 응용 프로그램에서 작업하는 것과 똑같은 문제가 있습니다.

응용 프로그램 권한 (Directory.ReadWrite.All)을 사용하여 응용 프로그램을 테스트 한 결과 12 월 중순 ~ 중순까지 다시 작동했습니다. 불행히도 어제 테스트했을 때 누락 된 권한 오류로 실패했습니다.

나는 무슨 일이 일어 났는지를 보여주는 그래프 API 문서에 this commit을 찾을 수있었습니다.

그래프 API 팀의 누구나 언제든지이 기능을 다시 사용할 수 있는지 알려 줄 수 있습니까? 이것은 많은 유효한 사용법을 가지고 있습니다.

관련 문제