Выборочное принятие клиентских сертификатов в ASP.Net WebAPI - PullRequest
0 голосов
/ 17 октября 2018

У меня есть запрос, чтобы разрешить клиентам выбирать аутентификацию для нашего сервиса с использованием mTLS (Mutual Authentication).У меня проблема в том, что я хочу разрешить это только в одной конечной точке и только в особых обстоятельствах.Я не хочу принимать или требовать клиентские сертификаты в глобальном масштабе по каждому запросу.Настройка в IIS позволяет игнорировать, принимать или требовать.

enter image description here

Когда я устанавливаю его в Accept и просматриваю сайт в Chrome, я получаю это всплывающее окно

enter image description here

Есть ли способ принять сертификаты, если они переданы определенной конечной точке, но не изменить поведение других конечных точек?

1 Ответ

0 голосов
/ 17 октября 2018

Чтобы включить Настройки согласования SSL на конкретном маршруте, вы можете применить эту настройку к определенному местоположению

<location path="Route/Goes/Here">
  <system.webServer>
    <security>
      <access sslFlags="SslNegotiateCert"/>
    </security>
  </system.webServer>
</location>

В зависимости от настроек IIS это может привести к ошибке 500, говоря«Этот раздел конфигурации нельзя использовать по этому пути. Это происходит, когда раздел заблокирован на родительском уровне».Если это произойдет, вам нужно включить флаг чтения / записи настроек SSL, как показано здесь:

SSL Settings Read/Write

Или используя Powershell:

Set-WebConfiguration  //System.WebServer/Security/access[@sslFlags] -metadata overrideMode -value Allow -PSPath IIS:/
...