2015-01-15 4 views
0

Этих критерии:стеснять клиентов в них исходящих из собственного приложения/сайта для неаутентифицированного веба-API

  • Моих пользователей неаутентифицированные.
  • Мое приложение представляет собой одностраничное веб-приложение (написанное на JavaScript), которое использует конечные точки веб-API RESTful для извлечения данных с моего собственного сервера.

Цель: Я хотел бы, чтобы ограничить веб-API, чтобы разрешить только запросы от моего собственного приложения, не требуя от пользователей для аутентификации. Существуют ли для этого методы?

Проблема заключается в том, что, поскольку код веб-приложения и сделанные им запросы являются прозрачными для клиента, он не может хранить секрет для аутентификации с сервером.

Я думал о создании одноразовых токенов доступа на стороне сервера, а затем использовать их с клиентской стороны для вызовов API. Теперь это затруднит выполнение запросов извне, но все же вы могли бы делать запросы, если вы сначала извлечете этот токен с исходного сайта (даже если вам придется делать это для каждого запроса).

Если это важно, я бы выполнил это с помощью веб-сайта ASP.NET MVC и конечных точек веб-API ASP.NET.

Как и в случае с this question, но не полностью то же самое.

Заранее спасибо.

+0

также похожие на этот вопрос: http://stackoverflow.com/q/15366436/304832 и это одна: http://stackoverflow.com/q/15877034/304832 – danludwig

ответ

0

пару лет назад я спросил pretty much the same question, а для пользователей, не прошедших проверку подлинности, какой-то токен в значительной степени станет вашим единственным вариантом. Это не делает невозможным получение несанкционированного доступа к вашему API, но делает его немного более болезненным.

В моем решении я принял несколько иной подход, используя 2 файла cookie для защиты некоторых анонимных запросов GET. Одним из них был анонимный файл cookie, который использовался как соль шифрования для другого настраиваемого файла cookie, предоставленного странице, которая доставила javascript. Только когда запрос API получил оба этих файла cookie и расшифрованный результат, был удовлетворительным, я разрешил WebAPI отвечать. Но, как я уже упоминал, это только делает более болезненным получить доступ за пределами приложения javascript, а не невозможно.

Вот ссылка для использования маркеров в WebAPI: http://codebetter.com/johnvpetersen/2012/04/02/making-your-asp-net-web-apis-secure/

+0

Я вижу, спасибо! – Piedone

Смежные вопросы