Как реализовать аутентификацию HMAC в RESTful WCF API

Мы создаем RESTful API с использованием WCF (в настоящее время .Net 3.5, но скоро перейдем на .Net 4). У нас есть функциональная структура, но в настоящее время она не защищена. Он должен быть доступен из приложений .Net, а также из приложений iOS, Android и веб-приложений.

Мы хотели бы использовать схему аутентификации HMAC, как описано здесь и здесь , но оба примера, кажется, разваливаются при описании того, как проверить хэш. В первом примере не описывается объект UserKeys (хэш-таблица?), А во втором примере отсутствуют методы GetUserKey на стороне клиента и сервера.

Может ли кто-нибудь объяснить, как «Ключ пользователя» / токен генерируется / хранится / извлекается / используется в этих примерах, или предоставить лучший пример (с исходным кодом, если возможно) того, как использовать авторизацию HMAC в RESTful Служба WCF?

Изменить: После дополнительных исследований мы определили, что нам нужно больше техники « Авторизация », чем техники « Аутентификация » (семантика?). Мы реализовали базовую авторизацию и защитили API с помощью SSL.Базовая авторизация использует тот же заголовок «Authorization» из веб-запроса, что и схема HMAC Authentication , но вместо токена передает строку имени пользователя: пароля, закодированную в Base64. Это позволило нам выполнить индивидуальную проверку пользователя по нашей базе данных, чтобы определить, имеет ли пользователь лицензию и соответствующие права безопасности для доступа к желаемому методу API.

Мы, безусловно, открыты для обсуждения других вариантов выполнения пользовательской проверки имени пользователя / пароля и других методов защиты API.

11
задан Will Hartung 7 December 2011 в 21:43
поделиться