OpenId без http перенаправляет? - PullRequest
2 голосов
/ 01 марта 2011

Я хочу использовать одну из централизованных систем аутентификации, таких как системы аутентификации OpenId, Google или Facebook. Однако я обнаружил, что все они используют HTTP-перенаправления на сервер-корреспондент для регистрации в процессе.

Моя проблема с этим заключается в том, что для моей системы мы хотим предоставить различных клиентов, некоторые из которых являются автономными приложениями, и поэтому стратегия перенаправления HTTP не будет работать, если я не реализую мини-браузер (или что-то подобное) в мой клиент.

Можно ли выполнить эту федеративную аутентификацию программным способом?

Спасибо

Густаво.

Ответы [ 2 ]

3 голосов
/ 01 марта 2011

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

Вы могли бы попросить меня предоставить мои учетные данные в вашем приложении или на вашем веб-сайте и провести весь сеанс аутентификации от моего имени, но почему я должен их вам предоставить? Вы могли бы показать встроенный браузер в своем приложении или iframe на своем веб-сайте, но почему бы мне не поверить, что вы не захватили мои учетные данные?

И еще есть удобство: в моем браузере есть cookie от моего провайдера, поэтому большую часть времени мне даже не нужно вводить учетные данные.

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

0 голосов
/ 05 апреля 2011

Опираясь на то, что предложил @aaz, в зависимости от того, насколько ваше приложение открыто для Интернета, вы можете создать HttpListener и указать URL return_to для вашего слушателя. Однако вряд ли будет работать за брандмауэрами.

...