Рекомендуемая конфигурация для безопасности веб-клиента и мобильного REST API.

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

В настоящее время у меня есть развитый сайт django, с веб-клиентом, который, вероятно, общается примерно на 95% через API-интерфейс json REST. Остальные 5% - это некоторые постоянные функции входа в систему, которые все еще проходят через формы POST с защитой CSRF. В идеале я хотел бы перенести остаток также в REST API.

Сейчас я нахожусь в точке, где мне нужно найти наилучшее рекомендуемое решение для защиты как веб-клиента, так и мобильного клиента (приложение, которое еще не разработано) в многократно используемой и счастливо сосуществующей форме. Я прочитал много постов, в которых, в конечном счете, рекомендую OAuth2 (и https) для мобильных устройств, но я все еще не уверен, как настроить безопасность веб-клиента. Я также понимаю, что такое аспект OAuth2, и могу ли я использовать двухногую форму. В настоящее время веб-клиент проходит проверку подлинности django. Технически, функция jsonp все еще активна в поршне, так что я думаю, что кто-нибудь может использовать API из стороннего приложения, если их веб-сессия имеет куки-файлы аутентификации?

Резюме использования моего API:

API является полностью приватным интерфейсом для серверного приложения.Было бы идеально, если бы API не мог широко использоваться сторонними разработчиками веб-клиента.Данные не являются конфиденциальными. Это просто сайт социального типа, где большая часть личной информации является основным профилем пользователя, таким как электронные письма, адреса и т. Д.

Резюме моих вопросов:

Является ли OAuth2 лучшим рекомендуемым подходом к обеспечению безопасности доступа к мобильным приложениям? Это как-то связано с аспектом веб-клиента? И если рекомендуется OAuth2, должен ли он быть ключом для всего приложения, который поддерживается версиями приложений?Должен ли веб-клиент использовать CSRF, который передается через ajax, и просто отключить jsonp, чтобы обеспечить его всегда один и тот же источник? В основном, я рассматриваю безопасность веб-клиента отдельно?Как мне организовать организацию URL-адресов / экземпляров / поддоменов приложений или что-то, что рекомендуется для обеспечения безопасности веб-сайтов и мобильных устройств? Нужно ли мне просто использовать отдельные префиксы URL, один для мобильного, который использует другие правила?

Я ищу конкретные рекомендации для решения этих проблем. Я уже разветвил свой проект и начал играть с этой разветвленной версией поршня:https://bitbucket.org/jespern/django-piston-oauth2

У меня была одна идея - создать ресурс поршня, который сначала проверяет, является ли он одним и тем же источником, а затем только применяет аутентификацию django, в противном случае он применяет oauth2, но я не уверен, что это даже уместно.

Обновление 01.01.2012

Судя по информации, предоставленной Спайком, я начал работать с pneon-oauth2. Я закончил тем, что создал форк этого, чтобы добавить некоторые исправления для nonrel django (mongodb), и я раздумал кое-кого, чтобы также использовать oauth2 и поршень:

https://bitbucket.org/justinfx/django-piston-oauth2-nonrel-example

Теперь я просто хочу подключить это к моему собственному проекту и заставить его работать. Но все эти тесты работают отлично.

Ответы на вопрос(1)

Ваш ответ на вопрос