Отключить SSL-сертификат клиента на * некоторых * контроллерах WebAPI?

Редактировать для будущих читателей: К сожалению, награда за вознаграждение не работает; Я ничего не могу с этим поделать. Но прочитайте мой собственный ответ ниже (через тестирование) - подтвердил работу с минимальными изменениями кода

У нас есть облачная служба Azure (WebRole), которая полностью находится в ASP.NET WebAPI 2.2 (нет MVC, интерфейс - Angular). Некоторые из наших контроллеров / конечных точек REST взаимодействуют с сторонней облачной службой по SSL (аутентификация клиента / взаимная аутентификация клиента), а остальные контроллеры / конечные точки взаимодействуют с внешним интерфейсом HTML5 / AngularJS, также по SSL (но более традиционная аутентификация сервера). SSL). У нас нет конечной точки без SSL. Мы включили Client SSL через задачу запуска облачной службы, например:

IF NOT DEFINED APPCMD SET APPCMD=%SystemRoot%\system32\inetsrv\AppCmd.exe
%APPCMD% unlock config /section:system.webServer/security/access

Проблема: эта настройка распространяется на весь сайт, поэтому даже когда пользователи переходят на первую страницу (скажем,https://domain.com, возвращает index.html для angularJS) их браузер запрашивает сертификат SSL-клиента. (изображение ниже)

Если есть способ либо

Ограничить клиентские запросы SSL-сертификатов только контроллерами WebAPI, которые общаются со сторонней облачной службой?

ИЛИ ЖЕ

Пропустить аутентификацию клиента SSL для наших внешних контроллеров Webapi?

Файл web.config нашего сервера является сложным, но соответствующий фрагмент приведен ниже:

<system.webServer>
  <security>
    <access sslFlags="SslNegotiateCert" />
  </security>
</system.webServer>

И снимок экрана с клиентом, который подключается к обычной конечной точке WebAPI, но пытается выполнить SSL-аутентификацию клиента (происходит в любом браузере, Chrome, Firefox или IE)

Ответы на вопрос(3)

Ваш ответ на вопрос