Разрешить доступ к моим API REST только из моего приложения? - PullRequest
1 голос
/ 02 сентября 2010

У нас есть приложение для Windows, на котором размещен элемент управления WebBrowser, который работает с нашими REST API.Нам нравится ограничивать доступ к API-интерфейсам только из-за самого приложения Windows (например, API-интерфейсы недоступны в браузере и т. Д.).

Как мы можем этого достичь?Каков наиболее безопасный способ без необходимости предоставления каких-либо учетных данных (например, если мы используем HTTP Basic auth, имя пользователя и пароль можно увидеть при обратном проектировании самого приложения)?

РЕДАКТИРОВАТЬ: Мы планируем свободно распространять приложение, поэтому мы не можем контролировать, откуда будет установлено соединение.

Ответы [ 2 ]

1 голос
/ 02 сентября 2010

Ограничьте интерфейс REST, чтобы принимать соединения только от 127.0.0.1 (home), а затем подключаться из вашего потребляющего приложения только с http://localhost или http://127.0.0.1 в URL (если вы используетевнешний IP-адрес или DNS-имя вашей машины будет рассматриваться как удаленное соединение и доступ запрещен).

Это можно сделать с помощью настроек веб-сервера или с помощью кода ваших REST API

0 голосов
/ 07 сентября 2010

У меня была похожая ситуация во время проекта, когда мы распространяли приложение для iPhone, которое также подключалось к REST API, которое разработала моя команда.

В целях безопасности мы использовали несколько сценарий с тремя ногами.Приложение должно было проходить аутентификацию с использованием учетных данных пользователя в автономной службе, отвечающей только за аутентификацию и генерацию токенов доступа.Как только приложение получило действительный токен доступа, последующие запросы к API требовали отправки этого токена в заголовке авторизации.

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

...