Какой подход можно использовать для расширения безопасности WCF за пределы текущего домена? - PullRequest
1 голос
/ 10 августа 2009

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

Наша идентификационная модель опирается на классы IIdentity и IPrincipal (не на WindowsIdentity / WindowsPrincipal), поэтому использование альтернативной реализации идентификации вполне подойдет. Поскольку мой вопрос подразумевает, у меня нет ответа, и я надеюсь, что у вас есть. Единственное решение, с которым я играл, требует, чтобы клиент проходил аутентификацию в нашем домене так же, как и сейчас. В рамках аутентификации им будет предоставлен сертификат X.509, подписанный нашим ЦС (которому будет доверять центр обработки данных). Сертификаты будут размещаться в хранилище сертификатов (я полагаю, что есть один, связанный с .NET, но я не уверен в его способности использовать его в среде, где пользователи время от времени перемещаются) и создаваться / предоставляться пользователю по запросу.

Буду признателен за любые отзывы и / или идеи.

Редактировать

У нас есть услуги, которые все еще находятся в нашем центре обработки данных в дополнение к удаленному центру обработки данных. Я хотел бы предложить решение, которое требует только одного входа (и, кстати, наши пользователи должны вводить свое имя пользователя и пароль каждый раз, когда они запускают это приложение).

1 Ответ

0 голосов
/ 10 августа 2009

Если у вас больше или меньше запросов типа «точка-точка» между несколькими участниками, как, например, в среде B2B, то сертификаты - это, безусловно, путь. Все работает автоматически - конечно, как только вы все настроите правильно! : -)

По сути, ваша служба будет иметь сертификат для аутентификации, а у клиента также будет сертификат, который будет отправлен в службу и проверяет подлинность клиентов на основе этой службы. На стороне сервера вы сможете нажать на ServiceSecurityContext.Current.PrimaryIdentity, чтобы получить доступ к IIdentity звонящего.

Для получения дополнительной информации см. Следующие ресурсы:

Надеюсь, это немного поможет!
Marc

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