Настройка аутентификации для защищенного SSL веб-сервиса WSIT / Metro и клиента - PullRequest
0 голосов
/ 04 октября 2011

Я немного озадачен настройкой стандартной аутентификации для моей службы, защищенной SSL.Я пробовал HTTP-заголовок , но это нестандартно, и WS-I важен для меня.Можно установить Authentication Token на Username на уровне метода.Это результат BindingPolicy в WSIT XML:

<wsp:Policy wsu:Id="DataStoreWSPortBindingPolicy">
    <wsp:ExactlyOne>
        <wsp:All>
            <wsam:Addressing wsp:Optional="false"/>
            <sp:TransportBinding>
                <wsp:Policy>
                    <sp:TransportToken>
                        <wsp:Policy>
                            <sp:HttpsToken RequireClientCertificate="false"/>
                        </wsp:Policy>
                    </sp:TransportToken>
                    <sp:Layout>
                        <wsp:Policy>
                            <sp:Lax/>
                        </wsp:Policy>
                    </sp:Layout>
                    <sp:IncludeTimestamp/>
                    <sp:AlgorithmSuite>
                        <wsp:Policy>
                            <sp:Basic128/>
                        </wsp:Policy>
                    </sp:AlgorithmSuite>
                </wsp:Policy>
            </sp:TransportBinding>
            <sp:Wss10/>
        </wsp:All>
    </wsp:ExactlyOne>
</wsp:Policy>
<wsp:Policy wsu:Id="DataStoreWSPortBinding_hello_Input_Policy">
    <wsp:ExactlyOne>
        <wsp:All>
            <sp:SupportingTokens>
                <wsp:Policy>
                    <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
                        <wsp:Policy>
                            <sp:WssUsernameToken10/>
                        </wsp:Policy>
                    </sp:UsernameToken>
                </wsp:Policy>
            </sp:SupportingTokens>
        </wsp:All>
    </wsp:ExactlyOne>
</wsp:Policy>

SvcUtil предупреждений:

<!--    WsdlImporter encountered unrecognized policy assertions in ServiceDescription 'http://webServices/':    -->
          <!--    <wsdl:binding name='DataStoreWSPortBinding'>    -->
          <!--        <sp:SupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">..</sp:SupportingTokens>    -->

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

1 Ответ

1 голос
/ 04 октября 2011

Если вы хотите иметь стандартный путь на транспортном уровне, почему бы вам не использовать HTTP Basic аутентификацию? Это общий стандартизированный механизм аутентификации для протокола HTTP, который также работает с веб-сервисами.

Ошибка, которую вы получили, скорее всего, из-за утверждения SupportingTokens. Даже это правильное утверждение WCF не поддерживает. Попробуйте использовать SignedSupportingTokens или SignedEncryptedSupportingTokens. Если вы не можете изменить свой сервис для создания такого WSDL, вы можете даже попытаться изменить WSDL, полученный вами вручную.

Что вы имели в виду под WS-I? Существует множество стандартов WS-I, и некоторые из них вообще не ожидают политик - просто простые сервисы SOAP, заголовки которых описаны непосредственно в WSDL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...