Мы создаем RESTful API с использованием WCF (в настоящее время .Net 3.5, но скоро перейдем к .Net 4). У нас есть функциональная структура, но в настоящее время она не обеспечена. Он должен быть доступен из приложений .Net, а также для iOS, Android и веб-приложений.
Мы хотели бы использовать схему аутентификации HMAC, как описано здесь и здесь, но оба примера выглядят разваливаться при описании того, как проверить хэш. В первом примере не описывается объект UserKeys (хеш-таблица?), А во втором примере отсутствуют методы GetUserKey на стороне клиента и сервера.
Может ли кто-нибудь объяснить вам, как "Ключ пользователя" /токен генерируется/хранится/извлекается/используется в этих примерах или дает лучший пример (с возможным исходным кодом), как использовать авторизацию HMAC в RESTful Служба WCF?
Edit: После дополнительных исследований мы определили, что нам нужно больше "Authorization, а не Authentication" (семантика?). Мы внедрили базовую авторизацию и обеспечили API за SSL. Базовая авторизация использует тот же заголовок "Авторизация" из веб-запроса как схема проверки подлинности HMAC, но передает строку имени пользователя: пароль, закодированный в Base64 вместо токена. Это позволило нам настроить пользователя на соответствие нашей базе данных, чтобы определить, лицензирован ли пользователь и имеет ли соответствующие права доступа для доступа к требуемому методу API.
Мы, конечно, открыты для прослушивания других опций о том, как выполнить пользовательскую проверку имени пользователя и пароля и другие методы защиты API.