Безопасность сообщений WCF только с сертификатом сервиса - PullRequest
2 голосов
/ 12 июля 2010

Я новичок в WCF и хотел знать, возможно ли сделать Message Security, где я использую сертификат x.509 только для службы, а для безопасности клиента - делать учетные данные Windows, это приемлемо?Работа?Попытка поиска в Интернете, но либо нет обсуждения этого подхода, либо я поместил неправильную формулировку в свой поиск в Google, любая помощь очень ценится, спасибо всем.

в принципе, я бы получил это вмоя привязка:

<wsHttpBinding>
    <binding name="msgBinding">
        <security mode="Message">
            <message clientCredentialType="Windows" />
        </security>
    </binding>
</wsHttpBinding>

и мое поведение:

<behavior name="wsHttpCertificateBehavior">
    ...
    <serviceCredentials>
        <serviceCertificate findValue="MyCert" x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="My" />
    </serviceCredentials>
</behavior>

Ответы [ 2 ]

1 голос
/ 13 июля 2010

Почему вы пытаетесь это сделать?Каковы ваши требования безопасности?

Вы пытаетесь использовать служебный сертификат для защиты передачи сообщений, а затем используете защиту Windows для клиента для аутентификации и авторизации?

Безопасность Windows работает только в том случае, если вынаходятся в одном домене или имеют какую-то федеративную настройку безопасности.Если вы находитесь в одном домене, просто используйте Windows Security для обоих.Если вы не находитесь в одном домене, вы не можете использовать учетные данные Windows для клиента, потому что сервер не сможет их проверить.Вам придется либо использовать клиентский сертификат, выданный центром сертификации на вашей стороне службы, либо использовать пользовательские учетные данные.

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

Вы можете найти это полезным Сценарии развертывания приложений

0 голосов
/ 16 июля 2010

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

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

Другая проблема, с которой я столкнулся при поиске этого ответа, заключается в том, что не все мои клиенты будут находиться в одном домене, поэтому придется использовать user / pwd или сертификаты на стороне клиента.

...