Самый простой способ использовать клиентский токен для аутентификации WCF - PullRequest
2 голосов
/ 12 февраля 2010

(Я пытался найти, но не смог найти действительно полезных ссылок.)

Мы внедряем набор сервисов WCF. Что бы я хотел сделать в этих службах, так это иметь клиентов (которые будут доверенными серверами приложений), которые могут передавать какой-либо токен в веб-службу для проверки подлинности. Я не хочу, чтобы от меня требовалось передавать имя пользователя / пароль при первоначальном или последующих запросах (поскольку в некоторых случаях вызывающий сервер приложений может не иметь пароля). Windows и Kerberos не могут использоваться в наших конкретных обстоятельствах.

Я думал просто создать простой пользовательский класс UserNameSecurityTokenAuthenticator и изменить его так, чтобы, если пароль пуст, он принимал userName в качестве значения токена со строковым кодированием (очевидно, проверяя сам токен, чтобы убедиться, что он действителен в тот момент) , но если пароль не пустой, перешлите имя пользователя и пароль на MembershipProvider для проверки. По сути, я бы хотел перегрузить аутентификацию по имени пользователя и паролю, чтобы обеспечить передачу токена.

Возможно ли это? Могу ли я просто подключить токен-аутентификатор, как этот, или есть какой-то другой простой способ «перехватывать» запросы, подобные этому (и обновлять фактическое значение имени пользователя из расшифрованного токена)?

Или есть какой-то другой невероятно простой способ разрешить клиенту передавать пользовательский токен и заставить сервер принять его, которого я просто пропускаю?

1 Ответ

1 голос
/ 12 февраля 2010

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

Сертификаты не привязаны к Windows или домену AD, и их настройка - разовая работа.

Подробнее об этом сценарии безопасности WCF:

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