Как правильно использовать проверку подлинности Windows с помощью OpenID (OpenIddict)?

#asp.net-core #asp.net-core-webapi #openiddict

#asp.net-ядро #asp.net-core-webapi #openiddict

Вопрос:

Я реализовал OpenIddict с ASP.NET Идентификация как отдельный сервер аутентификации, и я использую потоки учетных данных клиента и паролей. У меня также есть проект web api в качестве сервера ресурсов.

Сервер ресурсов развернут в IIS и должен проверять подлинность пользователей домена, а также конечных пользователей. У всех контроллеров есть [Authorize] атрибут, а у действий есть пользовательский фильтр аутентификации, наследуемый от ActionFilterAttribute , с помощью которого я проверяю наличие разрешений в базе данных. Сервер ресурсов имеет встроенную проверку подлинности Windows.

В настоящее время на данном этапе разработки я не могу использовать ADFS или AAD.

Пользователи домена получают доступ к серверу ресурсов с помощью приложения Winforms, в котором они передают свои сетевые учетные данные. У конечных пользователей есть веб-сайты и собственные приложения, и они будут / должны использовать поток паролей для получения токена доступа.

Итак, мой вопрос:

Должен ли я иметь конечную [Authorize] точку на сервере аутентификации, с помощью которой пользователи домена могут проходить аутентификацию? В этом случае мне также нужно будет использовать встроенную аутентификацию Windows (чего я бы предпочел избежать).

И как только пользователь домена аутентифицируется, должен ли я использовать поток учетных данных клиента для получения токена доступа? Пользователей домена не нужно сохранять в ASP.NET Личность. Конечные пользователи будут использовать поток паролей.

Это правильный способ обработки как аутентификации Windows, так и OpenID?