Подключаете приложение iPhone к безопасному RESTful API? - PullRequest
1 голос
/ 02 декабря 2011

Я создаю RESTful API в Python с платформой Pylons, обслуживаю его с помощью Apache2 и mod_wsgi и хочу подключить его к приложению для iPhone. У меня очень мало опыта работы с HTTPS, SSL и центрами сертификации, и мне интересно, как мне поступить с защитой моего API.

Как мне убедиться, что API обслуживается через HTTPS? Необходимо ли, как в этом примере, настроить сертификат SSL? Если я подпишу SSL-сертификат через орган, не распознаваемый iOS (например, CACert.org, и в основном потому, что он бесплатный), повлияет ли это на способность моего приложения взаимодействовать с моим сервером? Как другие решили эту проблему защиты связи между веб-интерфейсом RESTful API и приложениями для iPhone?

Кроме того, как OAuth вписывается во все это?

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

Вы можете обрабатывать сертификаты программно в iOS.Вы даже можете использовать самозаверяющие сертификаты, если ваш код подтверждает отпечаток пальца.Я не могу вспомнить подробности, но я знаю, что вы можете использовать didReceiveAuthenticationChallenge, чтобы сделать это.

В долгосрочной перспективе проще купить сертификат (cacert.org выиграл 'т))

1 голос
/ 02 декабря 2011

Это действительно зависит от того, что вы подразумеваете под «защитой» вашего API.

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

Если ответ B или оба, тогда вам определенно нужно будет взглянуть на получение сертификата SSL и его установку насервер.У большинства центров сертификации есть инструкции о том, как это сделать.

Я не уверен, что вы подразумеваете под "органом, не распознаваемым iOS", но вам все же, вероятно, следует подумать о том, чтобы расколоть тесто для сертификата от признанноговласть.Тем не менее, не мешало бы попробовать CACert.org, если они предлагают бесплатные сертификаты.На самом деле я не вижу каких-либо проблем с точки зрения возможности взаимодействия между сервером и клиентом.

С точки зрения защиты вашего API от неавторизованных клиентов вы можете проверить OAuth (см. http://oauth.net/). Существуют различные библиотеки Python для OAuth. Посмотрите, например, * 1012. * Единственное, что вы можете рассмотреть, - это разумная кривая обучения, когда дело доходит до реализации OAuth.

Вторая ссылка выше демонстрирует простой клиент OAuth, а также содержит пример кода для трехстороннего процесса аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...