Как реализовать единый вход для веб-приложений?

Каковы стратегии реализации единого входа в веб-приложения?

7
задан java_geek 26 August 2010 в 17:35
поделиться

1 ответ

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

Возможности см. в этом ответе: Единый вход в Java EE

Основная стратегия состоит в том, чтобы изобрести некую стратегию общих файлов cookie, которую могут читать все веб-сайты. Например, если вы разрабатываете решение для единого входа для xyz.company.com и abc.company.com, доставьте какой-либо файл cookie сеанса с путем к company.com. Оба сайта могут получить доступ к этому сеансу и увидеть «О, этот парень уже входил в систему раньше».

Существуют также стратегии единого входа в Интернет, когда вы аутентифицируете пользователей на совершенно разных сайтах, таких как MySiteA.com и MySiteB.com.

Чтобы предотвратить повторные атаки, вам потребуется какое-то общее хранилище сеансов, чтобы ваши веб-страницы могли проверять этот файл cookie при каждом запросе страницы. Вы не пометили этот .NET, но в .NET это означает, что вам нужно переместить состояние сеанса из рабочего процесса IIS, что не является значением по умолчанию, когда вы выбираете «Файл» > «Новый проект...» для веб-приложений.

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

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

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

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

Это ОГРОМНАЯ тема, которую я НЕ ПЫТАЛСЯ подробно осветить. Это не достаточный ответ. Дело в том, что вам нужно будет выбрать больше частей вашей архитектуры, прежде чем вы сможете получить более конкретную помощь и рекомендации.

9
ответ дан 7 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: