использование DotNetOpenAuth для проверки строки запроса OAuthSimple в JavaScript - PullRequest
1 голос
/ 12 августа 2011

Я работаю над проектом, который сгенерирует строку запроса OAuth в JavaScript, используя HTTPS и во внутреннем приложении, поэтому безопасность не является серьезной проблемой на данный момент (подумал я бы упомянул об этом заранее)

Строка запроса JavaScript используется для вызова сценария C # на другом сервере и в домене, по существу, для передачи данных из внутреннего приложения в приложение C # и для проверки того, что a) запрос поступает из правильного источника, и b ) запрос действителен, срок его действия не истек и т. д.

OAuthSimple выдает мне подписанный URL, например: http://www.myremotesite.com/mycodepath/mycodefile.aspx?firstname=Kevin&lastname=Blount&oauth_consumer_key=ThisIsTheConsumerKey&oauth_nonce=nuOoM&oauth_signature=DAoaSxD5SvVFTTDNSxiTbANzGlc%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1313162452

Мой вопрос, одна из сторон C # ... что мне делать дальше? У меня две мысли, но я не могу понять, что мне нужно изучить:

  1. с использованием C # генерирует новый подписанный URL и сравнивает их (или просто сравнивает значения oauth_signature)
  2. взять строку запроса, каким-то образом расшифровать / декодировать ее и проверить.

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

Могу ли я получить совет по поводу того, что мне нужно изучить, или статьи, которые объясняют, как мне поступить?

1 Ответ

1 голос
/ 13 августа 2011

Прочтите инструкции на DotNetOpenAuth и убедитесь, что вы понимаете это.Я не использовал его ранее, но слышал хорошие новости об этом.

Сервер oAuth сделает несколько шагов:

  1. Проверка версии - клиент использует правильную версиюoAuth для вас, чтобы обработать
  2. Проверить временную метку - все временные метки должны быть в UTC, чтобы избежать проблем с часовым поясом
  3. Подтвердить одноразовый номер - использовалось ли ранее разрешенный диапазон времени
  4. Проверить подпись- Получить закрытый ключ от ключа потребителя, вычислить подпись, используя значения, переданные в параметрах, и сравнить с фактической подписью.
  5. После того, как сообщение прошло все проверки, сервер вернет запрошенный ресурспо сообщению
...