Как установить oAuth-аутентификацию для сайта WCF REST C#

Я делаю сайт из сервисного шаблона WCF REST 40(CS) из онлайн-шаблонов VS 2010. Он отлично работает, но мне нужно его обезопасить.

Мне нужно поддерживать приложения для Windows, Linux и iPhone, поэтому REST + oAuth кажется хорошим решением, но я не знаю, с чего начать.

В основном мне нужно разрешить имя пользователя / пароли (для хэширования) в моей базе данных, как традиционные формы авторизации.

1 ответ

OAuth не передает имя пользователя / пароль. OAuth отправляет заголовок OAuth внутри HTTP-заголовка Auth. Ваша служба должна будет извлечь это и затем проверить, чтобы убедиться, что он действителен.

Заголовок OAuth будет содержать несколько незашифрованных значений (timestamp, consumer_key, nonce). Вы можете взять эти незашифрованные значения и использовать незашифрованный ключ, чтобы найти секретный ключ, который будет использоваться вашей службой для шифрования тех же значений, и убедиться, что он соответствует сигнатуре, которая также включена в заголовок OAuth. Если ваша сгенерированная подпись совпадает с подписью, включенной в заголовок OAuth, то вы знаете, что HTTP-запрос хорош. Затем вы можете вытащить ключ потребителя из заголовка и использовать его для поиска имени пользователя, если вам нужно.

Смотрите мой пост здесь. Имейте в виду, что есть несколько хороших библиотек, облегчающих все это, таких как DotNetOpenAuth.

Другие вопросы по тегам