2016-07-01 3 views
4

Microsoft Graph API에 연결하여 관리자 또는 직접 보고서와 같은 사용자에 대한 기본 정보를 얻을 수있는 간단한 Ruby 응용 프로그램을 작성하려고합니다.Microsoft Graph Scopes v2 oauth

나는 0365 자습서를 따라했으며 사용자의 메일을받을 수있는 작동중인 응용 프로그램을 가지고 있습니다. 내가 범위를 포함하는 난 그냥 제안했습니다 범위

SCOPES = [ 'openid', 'profile', 'https://outlook.office.com/contacts.read', 'offline_access' ] 

을 사용하고

response.body 
=> "{\r\n \"error\": {\r\n \"code\": \"InvalidAuthenticationToken\",\r\n \"message\": \"Access token validation failure.\",\r\n \"innerError\": {\r\n  \"request-id\": \"18cbc6be-5254-400c-9780-7427376587fb\",\r\n  \"date\": \"2016-06-30T22:21:55\"\r\n }\r\n }\r\n}" 

: 다음 그래프 API를 조회하는 세션 토큰을 사용하려고하지만 할 때 오류가 발생합니다 'https://graph.microsoft.com/user.read',하지만 난 심지어 사용자의 로그인 페이지를 타격하기 전에 다음과 같은 오류가 응용 프로그램에이를 추가 할 때이에 어떤 도움을 주시면 감사하겠습니다

AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope openid profile offline_access https://graph.microsoft.com/user.read is not valid. 

!

+0

로그인 페이지에 액세스하는 데 사용하는 전체 URL을 게시 할 수 있습니까? –

+0

https://login.microsoftonline.com – Lievcin

+0

나는 모든 매개 변수를 의미합니다 :). 오류가 발생하면 브라우저에서 복사 할 수 있습니다. –

답변

7

확인. 문제는 Outlook (https://outlook.office.com/contacts.read 범위)과 그래프 (https://graph.microsoft.com/user.read 범위)에 모두 범위를 포함한다는 것입니다. 안타깝게도 Azure의 인증 엔드 포인트는 이와 같은 혼합 스코프를 지원하지 않습니다. Outlook 범위를 제거하거나 (필요하지 않은 경우) Outlook에서 해당하는 그래프로 변경하십시오 (로그온 한 사용자의 개인 연락처에 액세스해야하는 경우). https://graph.microsoft.com/contacts.read.

+0

고맙습니다 Jason. 나는 지금 적어도/나를 할 수있다. :) – Lievcin

+0

내가 직접 보고서를 얻으려고하면 오류가 발생한다. code : Authorization_RequestDenied, message : 작업을 완료하기위한 충분한 권한이 없다. "범위가있는 자원이 있는지 그 중 일부는 관리자 만 액세스 할 수 있는지 여부 – Lievcin

+0

그래프 문서에 실수가있는 것처럼 보입니다. 직접 보고서에 대한 링크에서 User.Read가 작동하지만 http://graph.microsoft.io/en-us/docs/ 권한/permission_scopes는 User.Read로 "관리자 및 직접 보고서와 같은 탐색 속성"을 읽을 수 없다고 말합니다. 그래프 사용자에게 무슨 일이 일어나는지 물어 보겠습니다. –

관련 문제