WCF 4.0 Безопасность - PullRequest
       4

WCF 4.0 Безопасность

2 голосов
/ 09 декабря 2010

Я новичок в использовании WCF и мне нужна помощь в настройке безопасности для простого сервиса WCF 4.0 Я хочу разрешить одной учетной записи пользователя домена иметь доступ к службе, и никому другому. Я видел пример кода, где учетные данные отправляются через прокси в клиентском приложении, вызывающем службу, например proxy.ClientCredentials.Windows.ClientCredential.UserName = "MyUsername"; proxy.ClientCredentials.Windows.ClientCredential.Password = "MyPassword"; Но я не могу понять, как настроить конечную точку в моем сервисе для принятия этого пользователя как единственного, кто имеет право использовать сервис. Вот код моей конечной точки:

    <endpoint address="" binding="wsHttpBinding" bindingConfiguration=""
      contract="EvalServiceLibrary.IService1">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>

1 Ответ

2 голосов
/ 09 декабря 2010

По умолчанию ваш wsHttpBinding будет использовать учетные данные Windows, что прекрасно работает в среде локальной сети / корпоративной интрасети.

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

Вы можете определить основные разрешения для каждой операции (метод обслуживания)

public class MyService : IMyServiceContract
{
   [PrincipalPermission(SecurityAction.Demand, User="Domain\\YourUserName")]
   public void Method1() {...}
}

В этом случае только пользователь Domain\YourUserName может вызвать этот метод - любой другой получит исключение безопасности.

Подробнее о Основах безопасности WCF - особенно на странице 4 , где обсуждается безопасность на основе ролей.

Конечно, расширяемость является одной из отличительных черт WCF - и этот джентльмен здесь создал пользовательский модуль аутентификации, который позволяет вам использовать учетные данные Windows (пользователей и роли) и определять свои настройки безопасности WCF в своем файл конфигурации.

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