2010-12-09 4 views
2

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

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

Вы используете проверку подлинности Windows? – 2010-12-09 16:05:26

ответ

2

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

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

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

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

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

Подробнее о Fundamentals of WCF Security - особенно page 4, где обсуждаются вопросы безопасности на основе ролей.

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

+0

Марк, спасибо, что помогает. Похоже, мне нужно, чтобы активная группа каталогов получала доступ к службе, а не к человеку. Есть ли оформление услуги для групп? – 2010-12-09 17:13:30

Смежные вопросы