Для моего текущего побочного проекта, который представляет собой модульную систему веб-управления (которая может содержать модули для управления базой данных, cms, управления проектами, управления ресурсами, отслеживания времени и т. д.), я хочу представить всю систему как RESTful API, поскольку я Думаю, это сделает систему более удобной. Сама система будет закодирована в ASP.MET MVC3, однако, если я сделаю все данные/действия доступными через RESTful API, это должно сделать систему очень простой в использовании с PHP, Ruby, Python и т. д. (они могут даже сделать собственный интерфейс для управления определенными данными, если они хотят).
Тем не менее, одна вещь, которую сложно сделать легко (с точки зрения пользователя, использующего RESTful API) с RESTful API, — это безопасность с функциональностью ajax. Если бы мне нужно было что-то сложное в настройке и использовании, я бы просто создал сервисы SOAP, но весь смысл использования RESTful API в том, что это очень просто. Наиболее распространенный способ защиты RESTful API с помощью ключа, связанного с пользователем. Это прекрасно работает, когда все вызовы выполняются на стороне сервера, однако, как только вы начинаете выполнять функции ajax, все меняется. Я бы хотел, чтобы API RESTful можно было вызывать непосредственно из javascript, однако любой, у кого есть firebug, мог бы легко получить доступ к ключу, который использует пользователь, разрешив этому человеку доступ к системе. Есть ли лучший способ защитить RESTful API, где он не заставляет пользователя RESTful API делать сложные вещи только для его настройки?