В настоящее время у меня есть сайт MVC в .NET Core, поддерживаемый общедоступным API. Мои пользователи должны войти в систему (нет [анонимных] контроллеров), и аутентификация уже успешно выполняется с использованием поставщика DotNetCore.Authentication. Все это хорошо.
То, что я сейчас пытаюсь сделать (по запросу пользователя), - это реализовать функции, позволяющие пользователю читать и просматривать свой календарь Outlook 365 на странице моего сайта. Это не кажется слишком сложным на первый взгляд ... все, что мне нужно сделать, это заставить их пройти аутентификацию через microsoftonline с моим зарегистрированным приложением, а затем - после того, как они дадут одобрение - перенаправить обратно в мое приложение, чтобы просмотреть их события в календаре что я теперь могу вытащить (возможно, используя Graph).
В принципе это кажется действительно простым и понятным. Моя путаница возникает из-за невозможности реализовать аутентификацию для одного контроллера, а не для всего сайта. Все примеры OAuth2 (или OpenID, или OWIN, или любой другой), которые я могу найти в Интернете - из которых существует бесчисленное множество - все хотят использовать авторизацию для управления User.Identity для всего сайта. Я не хочу менять свой протокол аутентификации по всему сайту; Я не хочу ничего добавлять в Startup.cs; Я не хочу, чтобы что-то выходило за рамки одного контроллера.
tldr; Есть ли способ просто позвонить по номеру https://login.microsoftonline.com/common/oauth2/v2.0/authorize (или в Facebook, или в Google, или в любое другое место) и вернуть код или токен, который я могу использовать для этого пользователя в этой области сайта, и не требовать через аутентификацию, которая уже используется для остальной части сайта?