У меня есть базовое понимание концепции безопасностив Symfony2. Теперь я пытаюсь реализовать функцию единого входа для многодоменного веб-сайта.
Сама концепция SSO довольно проста:
- Домен A — это домен cookie; люди могут войти в этот домен
- При входе в домен B пользователь перенаправляется в домен A, где запрашивается Одноразовый пароль. Пользователю нужен сеанс в домене А, чтобы получить этот пароль.
- После получения OTP пользователь возвращается в домен B, который будет сопоставлять OTP с сеансом в домене A.
- В случае совпадения сеанс будет создан для домена B. Сеанс будет проверен на соответствие сеанс на домене А для каждого последующего запроса с этого момента.
Внедрение брандмауэра/аутентификации для домена А может выполняться как обычно. Насколько я понимаю, мне нужно:
- Настроить брандмауэр для домена B
- Создать прослушиватель для этого брандмауэра, который каким-то образом перенаправляет пользователя в домен A (точнее: uri, который запрашивает OTP)
- Создайте поставщика аутентификации, который обрабатывает OTP и создает сеанс для домена B.
- Создайте еще один слушатель, который проверяет действительность сеанса на соответствие сеансу в домене A
. сделать это в связке. Если кто-нибудь может помочь мне здесь, это было бы здорово.
Кроме того, я еще не уверен, как реализовать одноразовый пароль или как сравнить два сеанса и убедиться, что они оба действительны. Это будет позже, мне нужно сначала заставить этот рабочий процесс работать.
задан Peter Kruithof 12 April 2012 в 13:24
поделиться