Могу ли я использовать аутентификацию на основе сеансов для моего веб-API? - PullRequest
3 голосов
/ 13 августа 2010

Я внедряю API веб-сервера для своего приложения, и я застрял в процессе выяснения, какой метод аутентификации я должен использовать для аутентификации запросов пользователей (а также других клиентских приложений). Я думаю, что я не совсем понял, для чего созданы OAuth и другие протоколы аутентификации.

Я хочу, чтобы аутентификация выполнялась без вмешательства веб-браузера, полностью из моего приложения для iPhone или другого пользовательского стороннего клиента. Является ли аутентификация на основе сеансов хорошим способом? Как (например) клиент Facebook для Facebook аутентифицирует себя с помощью веб-API? Я не думаю, что он использует OAuth или что-то в этом роде, поскольку сенсорная форма входа / авторизации никогда не отображается. Насколько я знаю, OAuth используется только для сторонних приложений. Но почему это так? Разве клиент iPhone не может считаться сторонним приложением?

Прошу прощения, если мои вопросы расплывчаты и неясны, пожалуйста, укажите мне детали, которые отсутствуют, и тому подобное. Спасибо.

1 Ответ

3 голосов
/ 15 августа 2010

«Auth» в OAuth - это не аутентификация, а авторизация. Это означает, что, если вы являетесь поставщиком услуг, вы можете поддерживать OAuth, чтобы разрешить пользователям предоставлять доступ к отдельным ресурсам для любых OAuth-ориентированных потребителей, если пользователи хотят. OAuth имеет собственную архитектуру безопасности, обеспечивающую весь процесс проверки, предоставления и авторизации ... Тогда проверка подлинности является важным шагом для любых дальнейших запросов.

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

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

...