Внедрение единого входа в богатых клиентах (не в Интернете)? - PullRequest
4 голосов
/ 25 марта 2011

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

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

Мы рассмотрели использование систем проверки подлинности на основе сертификатов (одна изнаиболее распространенными из них являются Kerberos) и использование этого механизма аутентификации для использования внешних служб аутентификации в нашей системе.

Это выполнимо?Есть ли конкретные детали реализации, о которых нам нужно знать?Я не так обеспокоен конкретными технологиями (хотя предложения, безусловно, приветствуются), более подробно об основных концепциях и о том, что мы делаем правильные вещи, когда это возможно.

А как насчет авторизации - то есть доступа к различным службам.Существует ли стандарт или наилучшая практика, как это обрабатывается при работе с (потенциально) отключенными службами аутентификации?

В качестве дополнительного примечания, наши интерфейсные системы сделаны на Java, поэтому конкретная информация связана с реализацией этого поведения.в среде Java определенно ценится (т.е. полезные библиотеки, потенциальные ловушки, специфичные для Java и т. д.).

1 Ответ

1 голос
/ 25 марта 2011

это выполнимо? Да.
Есть ли конкретные детали реализации, о которых нам нужно знать? Да.

Каждый тип реализации безопасности имеет свои собственные детали реализации, которые вам просто необходимо выяснить. Каждый из них индивидуален и имеет свои нюансы.

Вы должны быть в состоянии реализовать любой тип безопасности, который вы выбрали. Kerberos - прекрасный выбор. Вы также можете посмотреть на Openid и CAS. Хотя есть много других.

Чтобы справиться с реальной защитой, вы можете рассмотреть Spring Security. Spring Security может достаточно хорошо обрабатывать аутентификацию / авторизацию. Однако большая часть весенней безопасности действительно ориентирована на безопасность в Интернете, а не на клиентские системы, поэтому вам, скорее всего, придется самостоятельно внедрять большую часть механизмов аутентификации (конечно, используя библиотеки, доступные по возможности).

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

Я бы заглянул в книгу Spring Security 3 . Это не очень хорошая книга, но она многое объясняет о том, как правильно реализовать безопасность. Настоятельно рекомендуется использовать работу пружин, потому что попытка реализовать безопасность самостоятельно будет довольно сложной задачей.

Удачи.

...