2016-06-20 5 views
0

У меня есть угловое приложение, которое вызывает java rest api для получения данных. Нам нужно защитить эти приложения с помощью azure AD.Java Rest API, защищенный Azure AD

Я использую библиотеку ADAL.js для углового приложения и пытаюсь найти любую библиотеку, которая может быть использована для отдыха api, но не найдена в Интернете. Все образцы предоставлены для webAPi, который использует инфраструктуру OWIN Microsoft.

В настоящее время я понимаю, что наше угловое приложение вызовет Azure AD, чтобы получить токен доступа и отправит его в java rest api. Его токен JWT, подписанный секретным ключом RSA. Я могу получить открытый ключ из JWKs uri и проверить, является ли токен JWT и его подпись действительной или нет. Если это действительно так, остальные api отправят ответ обратно в угловое приложение - Достаточно ли этого на стороне отдыха api? Разве нам не нужна связь между Rest api и Azure AD? Что делать, если кто-то крадет токен доступа и использует его (в течение срока его действия?) Мне показалось, что сервер ресурсов (java rest api) также должен разговаривать с сервером авторизации (Azure AD), но не уверен, действительно ли это необходимо для JWT жетоны.

+0

Можете ли вы разместить свою службу REST Java в Azure Web App? Или вы размещаете эти два приложения в веб-приложении Azure? –

ответ

0

@ Deb, я нашел, что ваш reqirement соответствует этим сценариям ---- Веб-приложение для веб-API. Я рекомендую вам обратиться к этому документу ( https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/#web-application-to-web-api). Если ваш front-end использовал приложение «Угловое», вы можете использовать passjs для прохождения авторизации Azure AD. См. Documnet ( https://azure.microsoft.com/en-us/documentation/articles/active-directory-devquickstarts-webapi-nodejs/#6-install-passportjs-in-to-your-web-api).

Его токен JWT, подписанный секретным ключом RSA. Я могу получить открытый ключ от JWKs uri и проверить, является ли токен JWT и его подпись действительным или нет. Если это действительно так, остальные api отправят ответ в угловое приложение. Достаточно ли этого на стороне отдыха api? Разве нам не нужна связь между Аппи и Азуром?

Если у вас есть access_token, вы можете вызвать свой REST API с помощью этого токена в своем запросе. Вам не нужно общаться между REST API и AAD. Но обратите внимание, что вам нужно сделать ваше доверие приложения API другого приложение

Что делать, если кто-то крадет доступ маркера и использовать его (в течение срока годности ?) Я был под впечатлением, что ресурсы сервер ( Java REST API) также необходимо поговорить с сервером авторизации (Azure AD) , но не уверен, действительно ли это необходимо для токенов JWT.

Вы также можете установить время истечения срока действия вашего приложения для токенов. См. Раздел «Истек срок действия» в этом документе (https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/#application-types-and-scenarios)

Смежные вопросы