Как установить аутентификацию oAuth для сайта WCF REST C # - PullRequest
8 голосов
/ 14 января 2011

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

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

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

1 Ответ

9 голосов
/ 03 февраля 2011

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

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

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

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