0

Я сейчас возглавляя в то, что для меня это неизведанная территория ...API Secutiry в сочетании с AngularJs SPA

Что я хочу сделать, это Закрепление мой API с Azure. И я хочу, чтобы мое приложение было в состоянии «поговорить» с ним.

Так я уже обеспечили мое приложение с тем, что Azure AD Аутентификация дала нам ... я следовал этот метод ниже:

Guide: Securing AngularJS Single Page Apps with Azure AD

видео: AngularJS Module for Microsoft Azure Active Directory Authentication

и я не знаю, как заставить это работать с моим API или как его безопасно обеспечить в реализации Angularjs SPA Azure AD Authentication.

Так что я не после полного руководства или чего-то, что я действительно хочу изучить. Дело в том, что я даже не знаю, где начать тянуть за протектора, так сказать.

Кто-нибудь знает какие-либо хорошие указатели или имеет список шагов над тем, что я должен смотреть, а также, возможно, в порядке или что-то в этом роде.

Все, что было бы высоко оценено!

Заранее спасибо - Джон

---------------------- Edit/Follow-Up ---------- --------------

Хорошо, поэтому мне удалось защитить мой Api и подключить как клиент, так и api к тому же azure AD на старом портале.

И API, и Клиент теперь включены в ssl, поэтому они используют протокол https.

Когда я пытаюсь получить список контактов из api через почтальон, я получаю «Сообщение»: «Авторизация была отклонена для этого запроса».

Wich чувствует, как он делает то, что должен.

Но, когда я пытаюсь функция GET через клиент angularjs SPA я получаю код состояния 500.

$scope.fillTable = function() { 
 
     $http.get('https://localhost:44338/api/Contacts').success(function (data) { 
 
      var peopleList = data; 
 
      $scope.contactList = peopleList; 
 
     }) 
 
    }

И по какой-то причине моего ключ авторизации даже не в заголовке как и должно быть из-за adal.js, как указано в документации.

Таким образом, я получаю свой ключ аутентификации, когда я вхожу в систему, а также, если я только добавляю «api/Contacts» в get funcction. Без остального адреса, который есть.

, но не тогда, когда я запускаю функцию get, как и должно быть.

Authentication with initial load - auth token existing

Auth after using get fucntion with full url - auth token non existing

Auth after using get function with half the url - auth token existing

ли должны быть в том же растворе для этого, чтобы работать как апи и клиент? Поскольку я уже исправил CORS и также установил oauth2AllowImplicitFLow в true в манифесте, а также превысил избыток в лазурном объявлении.

Я следовал за эти руководства в сочетании с представленными выше:

Protect a Web API using Bearer tokens from Azure AD

Integrating Azure AD into an AngularJS single page app

Enabling Cross-Origin Requests in ASP.NET Web API 2

+0

Что вы используете для аутентификации, opendId connect? – Bonomi

ответ

0

Вообще говоря, Azure AD является каталог и идентификационными служб управления от Microsoft на основе облачных вычислений. Обычно пользователь, который пытается запросить ресурсы (API и т. Д.), Защищенные Azure AD, должен следовать аутентичному потоку аутентификации OAuth 2.0, чтобы получить токен доступа от Azure AD. И установите токен в заголовке HTTP-запроса HTTP Authorization против ресурса.

Для общего понимания того, как проверка подлинности и разрешение на работу в Azure App службы, вы можете обратиться к https://docs.microsoft.com/en-us/azure/app-service/app-service-authentication-overview?toc=%2fazure%2fapp-service-web%2ftoc.json

Ваш сценарий, использует Azure AD и неявное грант авторизации OAuth 2.0, чтобы обеспечить свой веб-API обратно конца. Вы можете обратиться к https://docs.microsoft.com/en-us/azure/active-directory/active-directory-authentication-scenarios?toc=%2fazure%2factive-directory%2fdevelop%2ftoc.json#single-page-application-spa за весь рабочий поток. И adal для js SDK реализует функции, которые помогут вам использовать Azure AD для обработки аутентификации в ваших одностраничных приложениях.

После этих базовых знаний о теме Azure AD, я думаю, у вас будет дополнительное понимание того, как Azure AD защищает ваш API веб-интерфейса и как ваше клиентское приложение разрешает ваш защищенный веб-API.

Любая дополнительная забота, пожалуйста, сообщите мне.

+0

Благодарим вас за руководство! я определенно буду более внимательно смотреть на это. Спасибо – John

+0

Итак, я пришел немного дальше в своем стремлении к безопасности, если можно так выразиться. Я был бы признателен, если бы вы могли прочитать редактирование на первое сообщение выше. Спасибо заранее! :) – John

+0

Как вы получили ответ 500, что означало, что на вашем серверном сервере api было что-то не так. Если это вопрос авторизации, это должна быть проблема 401/403. –

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