Вызовите веб-API с сайта MVC, который аутентифицирован с помощью Facebook - PullRequest
0 голосов
/ 25 января 2019

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

У меня есть веб-приложение ASP.NET Core MVC,и добавил к нему авторизацию Facebook (будут и другие, например, Microsoft Mail и интеграция с Azure AD).Таким образом, пользователи в настоящее время могут нажать кнопку «Войти», затем нажать кнопку «Facebook»;они перенаправляют на Facebook, вводят свои учетные данные и, наконец, возвращаются на мой сайт, где они проходят аутентификацию.Это работает нормально, и в претензиях я получаю nameidentifier и адрес электронной почты.

Теперь я хочу добавить ASP.NET Core Web API, который вызывается сайтом MVC (а позже и другими потребителями).

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

Возможно ли предложенное здесь решение для моего сценария?Или вы справляетесь с такой ситуацией, как правило, по-другому?Демо-приложения, на которые я могу взглянуть, может быть?

1 Ответ

0 голосов
/ 28 января 2019

Возможно ли решение, которое я предлагаю здесь, для моего сценария?Или вы справляетесь с такой ситуацией, как правило, по-другому?Демонстрационные приложения, на которые я могу взглянуть, может быть?

Да, вы можете использовать Oauth 2.0 от имени потока , чтобы реализовать свою идею.Поток OAuth 2.0 On-Behalf-Of служит для случая использования, когда приложение вызывает сервис / веб-API, который, в свою очередь, должен вызвать другой сервис / веб-API.Идея состоит в том, чтобы распространять делегированные идентификационные данные пользователя и разрешения через цепочку запросов.

Вот рабочий процесс: enter image description here 1. Клиентское приложение отправляет запрос API A с токеном.A (с утверждением aud API A).
2.API A аутентифицируется в конечной точке выдачи токена Azure AD и запрашивает токен для доступа к API B.
3. Конечная точка выдачи токена Azure AD проверяет учетные данные API Aс токеном A и выдает токен доступа для API B (токен B).
4.Токен B устанавливается в заголовке авторизации запроса для API B.
5.Данные из защищенного ресурса возвращаютсяAPI B.

Вы можете обратиться к примеру кода: Вызов веб-API в веб-приложении ASP.NET Core с использованием Azure AD .

...