внедрение единого входа для кросс-паутины - PullRequest
0 голосов
/ 05 марта 2012

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

спасибо за ваш ответ,

1 Ответ

2 голосов
/ 06 марта 2012

Что бы вы ни делали, не пытайтесь писать свою собственную библиотеку, если у вас нет опыта в области криптографии, использования браузеров, файлов cookie и управления сеансами. (Если у вас были знания по этим предметам, вы, вероятно, не задавали бы этот вопрос, поэтому я постараюсь дать вам еще несколько полезных советов.)

Для Java доступны две большие библиотеки безопасности: Spring Security или Apache Shiro:

Spring Security чрезвычайно зрелый, но сверхгибкий. Он почти слишком для простых приложений, но если вы уже используете Spring, имеет смысл использовать Spring Security. Он полон функций и может делать удивительные вещи, если вам нужна высокая степень безопасности. Он интегрирован с CAS (сервером SSO) и может проходить аутентификацию на LDAP, JDBC и многих других. Spring Security является «декларативным»; он использует аннотации и АОП времени выполнения для внедрения контрольных точек авторизации в ваше приложение.

Apache Shiro намного проще: фильтр сервлетов и файл .ini - и все готово. У него действительно простой SSO и помните, что функции, которые гораздо проще реализовать, чем Spring Security. API носит программный, а не декларативный характер; что, я думаю, проще, но делает ваш код тесно связанным с библиотекой Shiro.

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

...