Механизм авторизации ASP.NET Web API на общедоступном веб-сайте - PullRequest
1 голос
/ 23 сентября 2019

Я относительно новичок в ASP.NET Web API, и мне нужно ваше предложение по поводу следующей ситуации: Несколько месяцев назад я участвовал в веб-проекте, который содержал внешний интерфейс Angular 5 и потреблял сервисы из ASP.NET Web.Интерфейс API 2.База данных была SQL-сервером, в доступе к данным было несколько ролей, поэтому мы использовали аутентификацию на основе токенов.В последнее время мне поручено разработать веб-интерфейс, который будет представлять множество диаграмм и отчетов и объединять данные из разных источников данных.Я думаю использовать ту же инфраструктуру и структуры, что и в предыдущем проекте, однако я точно уверен в типе разрешения на использование.Доступ к большинству представлений будет доступен публично через https, однако мы предполагаем наличие некоторых представлений администратора, которые, конечно, потребуют надлежащей аутентификации.Я не совсем уверен, что будет лучшим вариантом здесь - объединение базовой / токеновой аутентификации для публичного и административного представлений соответственно или применение токена на основе и создание публичного пользователя для доступа к публичным ресурсам.Любые предложения с благодарностью.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

В вашем случае я хотел бы использовать Аутентификацию на основе токенов API для всех API, но какой API вы хотите получить только у вас (администраторский API), используйте [EnableCors (источник: "http://yoursite.com", заголовки:" ", методы:"")] это выше вашего Admin API и для публичного использования [EnableCors (источник:" ", заголовки:"", методы:" * ")] в вашем открытом APIТакже не забудьте установить -> Install-Package Microsoft.AspNet.WebApi.Cors и добавить config.EnableCors (); строка в webApiconfig в разделе «Регистрация».

0 голосов
/ 25 сентября 2019

В вашем случае я бы разделил Admin и Public, что означает создание отдельных Action в вашем API.Таким образом, вам нужно реализовать только авторизацию для действий администратора (я бы предложил авторизацию на основе токенов).Все общедоступные вещи вы можете разрешить анонимно.Я надеюсь, что это было полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...