Рекомендуется или рекомендуется защищать веб-API напрямую с помощью Open ID Connect или нет?Настройка:
- Мобильное приложение
- Сервер авторизации (ADFS 4.0)
- Веб-API (ASP.NET Core)
В настоящее времяЯ делаю обычный OAuth2 «Поток кода авторизации», а затем передаю код доступа к моему веб-API в заголовке HTTP как «Authorization: Bearer».В ядре ASP.NET я просто выполняю обычные сервисы. AddAuthentication (...). AddJwtBearer (...) Работает нормально.
Но все говорят о том, что OAuth2 только "псевдо-аутентификация" с определенными недостатками.Я хочу, чтобы мои пользователи проходили надлежащую аутентификацию перед использованием моего веб-API.Таким образом, похоже, что Open ID Connect должен быть подходом, иначе говоря, «настоящей аутентификацией».
Но действительно ли он работает, «потребляя» аутентификацию Open ID Connect в ASP.NET Core Web API?И если да, то как?И это хорошая практика?Кажется, что все примеры относятся к веб-сайтам, а не к веб-API.
Существует метод расширения services.AddAuthentication (...). AddOpenIdConnect ()
Но здесь Реализация OpenID connectПри аутентификации в asp.net WEB API утверждается, что «этот компонент предназначен для интерактивных клиентов».
Что я также не понимаю, что мне делать с «id_token», который я получаю отОткрыть ID подключения.В настоящее время я просто передаю "access_token" в качестве носителя.Как использовать id_token?
Некоторые пояснения:
- API не действует от имени пользователя (доступ к данным компании).
- APIуже имеет доступ к «данным».Он не требует для себя никаких рабочих процессов аутентификации и не должен передавать учетные данные пользователей.
- API должен знать, «кем» является пользователь, и это должно быть сделано современным и хорошим способом.
- Вот почему я думал об OICD с его "настоящей аутентификацией" (VS Oauth2-only, который является "псевдо").
Я в принципе не могу обернуть голову, как материалвозвращенный из OICD (id_token) будет передан моему веб-API.