2017-02-06 1 views
1

외부 응용 프로그램에서 SharePoint [온라인] REST API에 액세스하려고합니다. Azure에 관리자 계정으로 등록하고 적절한 사용자 위임 권한 (Office 365 SharePoint Online)을 할당했습니다.ADAL을 사용한 Azure AD OAuth 인증 : 리소스 ID는 무엇입니까?

나는 ADAL.js를 사용하여 acquireToken에 전화를 걸어 내 Authorization 헤더에 해당 토큰을 사용합니다. 나는 온라인 읽은에서

Exception of type 'Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException' was thrown

가 acquireToken() 메소드가 resource PARAM을 않고 : 유효한 생긴 토큰이 부착지고, 그러나 나는 응답에 다음과 같은 401 오류를 받고 있어요 SharePoint API의이 값은 https://[tenant].sharepoint.com이어야하지만 null 무기명 토큰 만 반환합니다.

대신 (이전 401 오류를 발생시키는) Azure에서 생성 된 응용 프로그램 ID로 자원을 설정하는 것입니다. 결국 localStorage 캐시에 토큰으로 설정됩니다. 그래서 무기명 토큰이 돌아 오지 만 예외가 생깁니다.

두 질문 :

  1. 자원 문자열이며, 무엇 무엇 acquireToken()를 호출 할 적절한 값으로, 보는 내 응용 프로그램의 ID로 전화 (같은 일 전으로 사용하고 있음 내 ADAL 구성의 클라이언트 ID)는 무기명 토큰을 성공적으로 반환하는 유일한 값입니까? 각 Microsoft API에 대한 적절한 리소스 문자열 목록이 있습니까? 나는이 주제에 관한 문서를 찾는 데 어려움을 겪고있다.

  2. Azure의 구성에 문제가 있습니까?

고마워요!

+0

혹시 이것을 알아 냈습니까? 나는 같은 문제가있다. 추가 응답 헤더가 반환되었습니다 (x-ms-diagnostics : 3000003; 이유 = "유효하지 않은 잠재 고객 Uri 'f8f8d2ad-7c9d-4aac-80eb-3f00a263c879'; 카테고리 ="invalid_client "). – Russellg

답변

2

SharePoint 온라인 REST를 사용하기 위해 REST 검색 서비스를 사용하여 SharePoint 서비스 끝점을 찾을 수 있습니다. 응답의 serviceResourceId에서 모든 서비스 자원 ID를 찾을 수 있습니다.

Office 365의 여러 API와 다른 Microsoft 클라우드 서비스를 단일 끝점을 통해 노출하는 Microsoft Graph을 사용할 수도 있습니다.

검색 서비스 REST API에 대한 자세한 내용은 here을 참조하십시오.