Как авторизовать запрос из другого проекта WebApi - PullRequest
3 голосов
/ 05 октября 2019

На разных серверах есть 2 проекта WebApi. Один из этих серверов (WebApi-A) имеет OAuth2 настройку рабочего процесса аутентификации с сервером авторизации и все.

Другой проект WebApi (WebApi-B) имеет конечную точку, которую я хотел бы аутентифицировать с помощью атрибута [Authorize]. Я не хочу иметь новый сервер авторизации, но использую процесс аутентификации (WebApi-A) просто для проверки токена.

Из того, что я понимаю, если ключ компьютера одинаков для всех этих серверов. Мы можем по существу повторить процесс аутентификации из WebApi-A в WebApi-B без необходимости вообще вызывать WebApi-A.

Как мне этого добиться?

Ответы [ 3 ]

0 голосов
/ 13 октября 2019

вы можете использовать свой токен при входе в web api, а затем добавить токен в заголовок «Авторизация» с носителем «ваш токен»

0 голосов
/ 18 октября 2019

Это будет длинный ответ, поэтому я просто оставлю вам эту диаграмму с несколькими серверами ресурсов, клиентом и отдельным сервером авторизации

enter image description here

Взято из этой статьи Единая регистрация в нескольких приложениях (часть II) , которая, я надеюсь, поможет вам начать работу.

0 голосов
/ 12 октября 2019

Теоретически вы можете пройти через токен JWT, и если ваша установка OAuth использует тот же секретный ключ клиента и хранилище данных, он должен просто работать. Вам необходимо убедиться, что вы добавляете токен JTW при запросе и используете некоторый распределенный кеш для проверки.

Я бы скорее спросил, стоит ли вам создавать шлюз, который может обрабатывать и аутентифицировать запросы и делегировать их отдельным API? Это похоже на сервер идентификации (http://docs.identityserver.io/en/latest/topics/apis.html) решит вашу проблему. Все, что вы делаете, кроме перемещения аутентификации из веб-интерфейса A, будет просто временным промежутком.

Дублирование настройки может работать, но это будетЯ имею в виду, что вы должны поддерживать это в двух местах. Поэтому я согласен, что делать это не идеально.

Это отличная статья, которая может помочь вам:

https://www.scottbrady91.com/OAuth/Delegation-Patterns-for-OAuth-20

...