Кросс-платформенный вход - PullRequest
3 голосов
/ 18 февраля 2011

Я работаю над приложением, в котором вся аутентификация пользователя происходит в приложении ColdFusion (на основе CFWheels), но взаимодействие с файловыми серверами происходит через приложение Node.js. Мне нужно убедиться, что пользователю, вошедшему в приложение CF, разрешен доступ к файлам на сервере узла. Я думал о создании файла cookie с помощью CFToken или чего-то, что сервер узлов может прочитать и передать ColdFusion с вопросом «Эй, может этот токен получить доступ к этому файлу»

Моя единственная проблема с этим заключается в том, что я не был уверен, будут ли в конечном итоге повторно использоваться CFTokens, и если они будут, то что я должен использовать вместо этого?

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

Ответы [ 2 ]

4 голосов
/ 18 февраля 2011

Звучит как хороший способ сделать это.

Но я бы просто использовал CFCOOKIE, чтобы установить cookie-файл вашего собственного устройства.

Разумеется, два сервера должны будут иметь общее доменное имя, чтобы иметь возможность читать один и тот же файл cookie. Вам также необходимо установить cookie в качестве файла cookie домена.

Один чистый способ создать это - создать целый CFC, посвященный безопасности.

В нем будут методы для генерации и проверки токенов входа в систему.

Ваше приложение CF будет использовать это для генерации токена, и вы можете сделать так, чтобы ваше приложение node.js вызывало его через веб-сервис, используя

http://server.com/path/security.cfc?method=validateToken&token=whatever

Еще более эффективный способ сделать это, предполагая, что они имеют доступ к одному и тому же хранилищу данных, - это использовать один и тот же алгоритм для генерации / декодирования (при необходимости) токенов в обеих системах и позволить приложению node.js напрямую получить доступ к хранилищу данных.

Когда мне нужно было это сделать, мы хранили токены «сеанса» в mongodb и напрямую обращались к хранилищу данных из каждого приложения (CF, Java и Rails). Система CF отвечала за первоначальную аутентификацию. Две другие системы не выполняли аутентификацию, просто проверяли токен и, если он не был найден / недействителен / и т. Д., Отвечали соответствующим образом.

0 голосов
/ 18 февраля 2011

Да, вы хотите прочитать о SSO (Single Sign-on).

OpenID является популярным, который работает с несколькими платформами, включая CF.

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

...