Назад | Перейти на главную страницу

Получение 401 при использовании клиентского сертификата с IIS 7.5

Я пытаюсь настроить веб-сайт, размещенный в IIS 7.5, чтобы запросы к определенному месту требовали проверки подлинности сертификата клиента. При моих текущих настройках я все еще получаю сообщение «401 - Неавторизовано: доступ запрещен из-за неверных учетных данных» при доступе к местоположению с помощью сертификата моего клиента.

Вот фрагмент web.config, который настраивает:

<location path="MyWebService.asmx">
    <system.webServer>
      <security>
        <access sslFlags="Ssl, SslNegotiateCert"/>
        <authentication>
          <windowsAuthentication enabled="false"/>
          <anonymousAuthentication enabled="false"/>
          <digestAuthentication enabled="false"/>
          <basicAuthentication enabled="false"/>
          <iisClientCertificateMappingAuthentication enabled="true" oneToOneCertificateMappingsEnabled="true">
            <oneToOneMappings>
              <add enabled="true" certificate="MIICFDCCAYGgAwIBAgIQ+I0z6z8OWqpBIJt2lJHi6jAJBgUrDgMCHQUAMCQxIjAgBgNVBAMTGURldiBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAxMjI5MjI1ODE0WhcNMzkxMjMxMjM1OTU5WjAaMRgwFgYDVQQDEw9kZXYgY2xpZW50IGNlcnQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANJi10hI+Zt0OuNr6eduiUe6WwPtyMxh+hZtr/7eY3YezeJHC95Z+NqJCAW0n+ODHOsbkd3DuyK1YV+nKzyeGAJBDSFNdaMSnMtR6hQG47xKgtUphPFBKe64XXTG+ueQHkzOHmGuyHHD1fSli62i2V+NMG1SQqW9ed8NBN+lmqWZAgMBAAGjWTBXMFUGA1UdAQROMEyAENGUhUP+dENeJJ1nw3gR0NahJjAkMSIwIAYDVQQDExlEZXYgQ2VydGlmaWNhdGUgQXV0aG9yaXR5ghB6CLh2g6i5ikrpVODj8CpBMAkGBSsOAwIdBQADgYEAwwHjpVNWddgEY17i1kyG4gKxSTq0F3CMf1AdWVRUbNvJc+O68vcRaWEBZDo99MESIUjmNhjXxk4LDuvV1buPpwQmPbhb6mkm0BNIISapVP/cK0Htu4bbjYAraT6JP5Km5qZCc0iHZQJZuch7Uy6G9kXQXaweJMiHL06+GHx355Y="/>
            </oneToOneMappings>
          </iisClientCertificateMappingAuthentication>
        </authentication>
      </security>
    </system.webServer>
</location>

Сертификат клиента, который я использую в своем веб-браузере, совпадает с тем, что я разместил в файле web.config. Что я здесь делаю не так?

Ошибка означает, что учетные данные, которые вы используете для доступа к этому сайту, не имеют разрешений на доступ к указанному сайту.

Требуется дополнительная информация, такая как цель этого сайта и какие учетные данные будут использовать ваши пользователи. В настоящее время аутентификация не разрешена, хотя аутентификация с помощью форм отмечена. Как и в предыдущем ответе выше, переместите список доступа / отказа для аутентификации на уровень сервера.

Я получал ту же ошибку, когда добавлял сопоставления в конфигурацию приложения. Я видел этот пост http://blogs.msdn.com/b/rakkimk/archive/2009/07/08/iis7-configuring-iisclientcertificatemappingauthentication.aspx и переместил свои записи сопоставления на уровень веб-сайта, и они унаследованы приложением ниже, и я включил IISClientCertificateAuthentication только на уровне приложения (отключен на уровне веб-сайта), и он начал работать.

Попробуйте переместить сопоставления в конфигурацию уровня веб-сайта и включить аутентификацию сертификата клиента на уровне приложения. Удачи и с наступающим Новым годом!