Пользовательская аутентификация имени пользователя / пароля в IIS6

У меня есть служба WCF, которую я размещаю в IIS6. Я пытаюсь настроить пользовательскую аутентификацию по имени пользователя и паролю с использованием безопасности транспортного уровня. Я установил тестовый сертификат и получил клиент для подключения через SSL без указания аутентификации, то есть:

      <security mode="Transport">
        <transport clientCredentialType="Basic" />
      </security>

Я установил настраиваемый валидатор с безопасностью сообщений и типом учетных данных клиента «Имя пользователя», но сейчас я хотел бы включить его в безопасность транспортного уровня. Когда у меня установлен файл web.config, когда я пытаюсь просмотреть WSDL, я получаю сообщение об ошибке: «Параметры безопасности для этой службы требуют« базовой »аутентификации, но она не включена для приложения IIS, в котором размещена эта служба».

Вот важные части моего файла web.config:

<system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="UserNameBinding">
          <security mode="Transport">
            <transport clientCredentialType="Basic" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <services>
      <service behaviorConfiguration="ServiceAuthenticationBehavior"
        name="Service.WebServices.MyService">
        <endpoint address="mex" binding="mexHttpsBinding" bindingConfiguration=""
          name="mexBinding" contract="IMetadataExchange" />
        <endpoint binding="wsHttpBinding" bindingConfiguration="UserNameBinding"
          name="wsHttpBindingWithAuth" contract="Service.WebServices.IMyService" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceAuthenticationBehavior">
          <serviceMetadata httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceCredentials>
            <serviceCertificate findValue="TestCert01" storeLocation="LocalMachine"
              storeName="TrustedPeople" x509FindType="FindBySubjectName" />
            <userNameAuthentication userNamePasswordValidationMode="Custom"
              customUserNamePasswordValidatorType="Service.WebServices.ClientCredentialsValidator, Service.WebServices" />
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>

Есть ли что-то, что я должен установить в IIS6, чтобы включить это? В IIS я сначала начал с включенной опцией «Разрешить анонимный доступ». Я также попытался установить флажок «Обычная проверка подлинности (пароль отправляется открытым текстом)», но безуспешно.


person Stealth Rabbi    schedule 17.04.2012    source источник
comment
вы пробовали анон [выкл] и базовый [вкл] вместе? делать что-то подобное, ур никогда не уверен, что iisreset может помочь, поэтому я все равно сделаю это   -  person jenson-button-event    schedule 17.04.2012


Ответы (1)


Этот пост, похоже, предполагает, что Basic доступен только для учетной записи Windows со сторонним решением ...

Базовая аутентификация с помощью службы WCF REST для чего-то кроме учетных записей Windows?

Я сам был здесь, и в итоге выбрал односторонний openauth, который отлично работал.

edit это сообщение помогло мне найти решение http://www.cleancode.co.nz/blog/523/oauth-dot-net

Стоит упомянуть разницу между одно- и двухэтапным протоколом OAuth. 1-этап - это когда клиент и служба знают секрет (пароль) клиента для имени учетной записи клиента, который используется для шифрования и дешифрования запроса аутентификации (который все добавляется в строку запроса). с двумя ногами, это создается третьей стороной, такой как google, facebook и т. д.

person jenson-button-event    schedule 17.04.2012
comment
Вы можете описать односторонний openauth? Не уверен, что это такое. Похоже, что настраиваемая проверка подлинности, которую я выполняю с безопасностью на уровне сообщений, не работает. Думаю, я могу использовать транспорт + безопасность сообщений, анонимный SSL, но настраиваемую аутентификацию на транспорте сообщений, как я делал раньше? - person Stealth Rabbi; 17.04.2012
comment
Эта ссылка подразумевает, что вы МОЖЕТЕ выполнить пользовательскую / проходную аутентификацию с помощью SSL. Не могу заставить его работать с вышеупомянутой проблемой. lessprivilege.com/ - person Stealth Rabbi; 17.04.2012