Я создал два отдельных проекта для своего веб-приложения:
(В основном следовал тому, что Джеффри Т. Фриц сделал это в своем 8-часовая демонстрация, потому что это казалось хорошо разделенной архитектурой) Это означает, что оба они работают на стороне сервера. Я добавил опцию аутентификации «индивидуальный пользователь» в свой интерфейс, который создал БД, в которой хранятся пользовательские данные, и я могу просто авторизовать страницы на основе входа в систему. Насколько я понимаю, это авт. опция в основном означает, что внешний интерфейс управляет своим собственным набором пользователей в своей БД.
Чего мне не хватает, так это защиты этого веб-API с той же авторизацией, чтобы люди не могли анонимно использовать API. Как это сделать? Будет ли отличаться решение, если я захочу перейти на аутентификацию на основе Azure?
Я предполагаю, что внешний интерфейс должен будет прикреплять к запросам некоторые данные, связанные с пользователем, а затем серверный сервер каким-то образом проверяет это. (Но я не могу представить, как, если он на самом деле не знает о службе аутентификации, может быть, это должен быть отдельный объект, доступный для обоих? В таком случае я должен просто пропустить то, что у меня есть, и перейти прямо к Azure?)
Примечание. Я новичок в вопросах безопасности (и веб-приложений в целом).
Возможно, стоит взглянуть на токены JWT в целях безопасности. Это довольно стандартный, хорошо известный шаблон/метод для защиты веб-приложений. Вот более "полное" описание с примером: https://garywoodfine.com/asp-net-core-2-2-jwt-authentication-tutorial/
Вы сможете настроить безопасность в одном месте и использовать ее для аутентификации обоих приложений.
Извините за запоздалую реакцию, я прочитал вашу ссылку и немного больше прочитал о JWT. Похоже, это довольно стандартно для Core, и я смогу использовать это для аутентификации AAD и тому подобного. Спасибо!