2016-09-08 4 views
0

서버 측 코드에서 수신중인 oAuth 토큰의 유효성을 검사하려고합니다.Exchange oAuth 토큰 유효성 검사

서버 쪽 코드는 Exchange Managed API를 사용하고 있으며 Outlook API에서 Office.context.mailbox.getUserIdentityTokenAsync(callback) 메서드를 사용하여 Exchange의 추가 기능에서 보낸 토큰을 검색했습니다. documentation에 따르면

var token = (AppIdentityToken)AuthToken.Parse(rawToken); 
token.Validate(new Uri(hostUri)); 

:

나는 내가 token.Validate(uri) 메소드를 호출 문제로 실행하고

hostUri : 아웃룩의 페이지에 완전한 URI 추가 -getUserIdentityTokenAsync이라고합니다.

추가 기능의 페이지 내에서 hostUri를 얻으려면, 내가 사용

:

var hostUri = location.href.split('?')[0]; 

그러나이 제공 URI를 사용하여 토큰의 유효성을 검사하는 동안 오류가 발생

Error message

토큰을 발행 한 ID 공급자 (예 : Exchange)의 공개 키를 사용하는 대신 추가 기능이있는 URI를 사용하는 이유가 무엇인지 혼란 스럽습니다.

답변

1

EWS 토큰 유효성 검사 라이브러리는 공개 키를 통해 토큰의 서명을 확인합니다.

호스트 Uri는 aud 자격을 id_token에서 유효성을 검사하여이 토큰이 다른 응용 프로그램 대신 응용 프로그램에서 전달되었는지 확인합니다.

열린 우리당 호스트 페이지와 일치 있는지 확인하십시오, 당신은 토큰에 실제 열린 (AUD)을 볼 수 jwt.io을하여 id_token을 구문 분석 할 수 있습니다.

+0

그렇습니다. 토큰 유효성 검사 라이브러리는'amurl' 필드에서 토큰 유효성 검사를위한 공개 키를 얻을 수있는 곳을 찾습니다. 이 경우 우리는 도메인 이름이 구성된 테스트 용 VM에 교환을 설정했기 때문에 도달 할 수 없었습니다. 일단 수정되면 (호스트 파일에 레코드 추가) 공개 키를 얻고 토큰의 유효성을 검사 할 수있었습니다 . –