WebApi - добавление файла cookie для проверки подлинности с помощью удаленных форм в токен на предъявителя - и передача токена обратно клиенту Angular

У меня есть следующие сайты: asp.net MVC сайт с Angular (1) -> WebApi (2) -> asp.net MVC удаленный сайт с набором услуг WCF и MVC (3)

(1) Клиент Angular работает на новом более легком сайте asp.net MVC и должен использовать токен-носитель для получения данных из WebApi. Будущие требования: единый вход

(2) WebApi будет будущей конечной точкой. Но на данный момент тяжелый бэкэнд со старого сайта (3) требует временного решения. Тяжелый бэкэнд будет постепенно перемещаться в WebApi, оставляя без внимания такие компоненты Silverlight, зависимости приложений Windows и т. Д. И т. Д. WebApi также является новой настройкой, но обслуживает токены через конечную точку /token. Я следовал этому руководству: http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/

(3) Удаленный сайт MVC asp.net содержит несколько служб WCF и несколько контроллеров MVC, выполняющих функции API. Службы WCF разрешают HTTP json и т. Д., Используя WebInvoke. Требуется сеанс и формы аутентификации. Он отвечает с cookie.

Мой вопрос Как я могу использовать WebApi в качестве промежуточного уровня между новым сайтом MVC (1) и старым сайтом MVC (3), используя HttpClient в методе действия контроллера WebApi? Я предполагаю, что мне нужно будет взять куки со старого сайта (3), добавить его в токен в качестве пользовательских свойств или утверждений..? Верните токен на новый сайт (1) и позвольте Angular сохранить токен в локальном хранилище в браузере. Затем Angular будет отправлять токен при каждом запросе в WebApi (2), который требует авторизации. Затем метод действия контроллера WebApi (2) распакует пользовательские данные из токена (cookie) и отправит их на старый сайт (3) по запросу.

1 ответ

Я думаю, что куки с одного сайта не могут быть использованы на другом сайте. Если у вас есть доступ к базе данных пользователей сайта 3: 1-Иметь конечную точку токена на сайте 1, которая проверяет дату пользователя и возвращает токен. 2-Вызовите конечную точку токена с сайта 1(на стороне клиента) и получите токен. 3-Добавьте токен к любому запросу с заголовком Авторизационный канал. Надеюсь это поможет

Другие вопросы по тегам