Owin переопределяет аутентификацию в правиле сопоставления сертификатов клиента IIS - PullRequest
0 голосов
/ 06 мая 2020

Я настроил веб-сайт WebAPI для использования HTTPS с сопоставлением сертификатов клиента IIS (ManyToOneMapping) для проверки подлинности сертификата клиента. Я отключил все типы аутентификации в IIS. Я сделал конфигурацию «много к одному» на IIS.

Но он работает с любым другим сертификатом, добавленным в доверенное хранилище сервера. Я обнаружил, что это из-за Owin. Я использую owin (аутентификация на предъявителя) для управления токеном et c. Но я думаю, что owin отменяет конфигурацию iis many to one. Вы знаете, как это отключить? Мне нужна аутентификация на основе токенов, поэтому я не могу ее удалить.

1 Ответ

0 голосов
/ 07 мая 2020

Использование Owin для самостоятельного размещения WebAPI и размещение WebAPI в IIS - это две разные модели хостинга. Это означает, что все логики конвейера Owin c больше не действительны. Если мы не используем хостинг Owin в программе самостоятельного хостинга, вот простой пример использования Owin самообслуживания WebAPI.
https://docs.microsoft.com/en-us/aspnet/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api
Если мы хотим проверить сертификат клиента с помощью По промежуточного слоя OWIN (канал, по которому должен поступать запрос), мы должны добавить настраиваемый валидатор сертификата клиента и применить его с помощью метода appBuilder.Use<T>.

appBuilder.Use<ClientCertificateAuthMiddleware>(new ClientCertificateAuthenticationOptions(), clientCertificateValidator);

Вот пример того, как добавить сертификат клиента проверки к собственному WebApi OWIN.
https://dotnetcodr.com/2016/02/08/using-client-certificates-in-net-part-9-working-with-client-certificates-in-owinkatana-iii/
Не стесняйтесь, дайте мне знать если я могу чем-то помочь.

...