2016-12-03 3 views
0

У меня есть веб-приложение, которое использует REST API для всего. Части API будут доступны для общественного потребления. Существует много случаев, когда конечная точка API создана специально для работы с веб-приложением, например, для сбора личной информации для пользователя, и я бы не хотел, чтобы эта конечная точка была доступна для публики. Как я могу обеспечить защиту определенных конечных точек, которые будут использовать только приложение?Ограничить доступ общественности к конкретным конечным точкам REST API

ответ

0

Вы можете воспользоваться помощью своего веб-сервера, заблокировав определенные пути из общего доступа. Таким образом, вам вообще не нужно прикасаться к исходному коду.

Например, если вы используете Nginx тогда:

location /private-api { 
    allow my.trusted.ip.address; 
    deny all; 
} 

Здесь дискуссия о том, как сделать это с помощью apache

1

Общий подход заключается в обеспечении частных конечных точек с маркерами. Вызывающий должен предоставить токен доступа, чтобы выполнить его, или он получит сообщение об ошибке.

Я бы рекомендовал использовать протокол, совместимый с , для генерации токенов, чтобы люди могли использовать существующие рамки для их применения.

+1

^^ Правильный взгляд на Oauth, например, @Erik. Посмотрите API-интерфейс Facebook Graph, и как этот RESTful-сервис использует токены, чтобы действовать как пользовательские логины. Это позволяет владельцам учетных записей/разработчиков FB использовать функции GET, PUT, DELETE для обновления статусов, помимо других .com и других приложений. – Illdapt

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