2016-06-20 3 views
0

나는 데이터를 얻기 위해 자바 레프 API를 호출 각도 애플 리케이션을했습니다. 우리는 하늘색 광고를 통해 이러한 앱을 보호해야합니다.자바 레스트 API Azure에 의해 보안

각도 응용 프로그램에 ADAL.js 라이브러리를 사용 중이며 나머지 API에 사용할 수 있지만 인터넷에서 어떤 라이브러리도 찾지 못했습니다. 모든 샘플은 Microsoft의 OWIN 프레임 워크를 사용하는 webAPi에 제공됩니다.

현재 우리의 각도 애플 리케이션은 액세스 토큰을 얻기 위해 Azure AD를 호출하고 java rest api로 보낼 것입니다. RSA 개인 키로 서명 한 JWT 토큰입니다. JWK uri에서 공개 키를 가져 와서 JWT 토큰과 서명이 유효한지 여부를 확인할 수 있습니다. 그것이 유효하다면, 나머지 API는 앵글 어플리케이션 에 응답을 보냅니다. 나머지 API 쪽에서 충분합니까? Rest API와 Azure AD 사이에 통신이 필요하지 않습니까? 누군가가 액세스 토큰을 훔쳐서 만료일이 만료 된 경우 어떻게합니까? 자원 서버 (java rest api)도 인증 서버 (Azure AD)와 통신해야하지만 실제로 JWT에 필요한지는 확실하지 않습니다. 토큰.

+0

Azure Web App에서 Java REST 서비스를 호스팅 할 수 있습니까? 아니면 Azure 웹 앱에서이 두 앱을 호스팅합니까? –

답변

0

@ Deb, 귀하의 요구 사항이이 시나리오와 일치하는 것으로 나타났습니다 ---- 웹 API에서 웹 API로이 문서 ( https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/#web-application-to-web-api)를 참조하시기 바랍니다. 프런트 엔드가 Angular App을 사용했다면 패스포트를 사용하여 Azure AD 인증을 통과 할 수 있습니다. documnet ( https://azure.microsoft.com/en-us/documentation/articles/active-directory-devquickstarts-webapi-nodejs/#6-install-passportjs-in-to-your-web-api)을 참조하십시오.

RSA 비공개 키로 서명 된 JWT 토큰입니다. JWK uri에서 공개 키 을 가져 와서 JWT 토큰과 해당 서명이 유효한지 여부를 확인할 수 있습니다. 그것이 유효하다면 나머지 API는 앵커 앱에 의 응답을 보낼 것입니다 - 나머지 API 쪽에서 충분합니까? Rest API와 Azure AD 사이에 어떤 통신이 필요하지 않습니까?

access_token이있는 경우 요청에 따라이 토큰을 사용하여 REST API를 호출 할 수 있습니다. REST API와 AAD 간에는 통신 할 필요가 없습니다. 그러나 당신이 당신의 API 응용 프로그램의 신뢰 사람이 액세스 토큰을 훔치는 경우는 어떻게 다른 응용 프로그램

을하고 그 사용이 필요 유의하시기 바랍니다 (그 유효 기간 내에?) 나는 인상였습니다 리소스 서버 ( 자바 나머지 API) 또한 인증 서버 (Azure AD) 과 대화해야하지만 실제로 JWT 토큰에 필요한지 확실하지 않습니다.

토큰에 대한 응용 프로그램의 만료 시간을 설정할 수도 있습니다. 이 문서의 '토큰 만료'부분을 참조하십시오 (https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/#application-types-and-scenarios)