Реализация единого входа в Symfony2

У меня есть базовое понимание концепции безопасностив Symfony2. Теперь я пытаюсь реализовать функцию единого входа для многодоменного веб-сайта.

Сама концепция SSO довольно проста:

  • Домен A — это домен cookie; люди могут войти в этот домен
  • При входе в домен B пользователь перенаправляется в домен A, где запрашивается Одноразовый пароль. Пользователю нужен сеанс в домене А, чтобы получить этот пароль.
  • После получения OTP пользователь возвращается в домен B, который будет сопоставлять OTP с сеансом в домене A.
  • В случае совпадения сеанс будет создан для домена B. Сеанс будет проверен на соответствие сеанс на домене А для каждого последующего запроса с этого момента.

Внедрение брандмауэра/аутентификации для домена А может выполняться как обычно. Насколько я понимаю, мне нужно:

  • Настроить брандмауэр для домена B
  • Создать прослушиватель для этого брандмауэра, который каким-то образом перенаправляет пользователя в домен A (точнее: uri, который запрашивает OTP)
  • Создайте поставщика аутентификации, который обрабатывает OTP и создает сеанс для домена B.
  • Создайте еще один слушатель, который проверяет действительность сеанса на соответствие сеансу в домене A

. сделать это в связке. Если кто-нибудь может помочь мне здесь, это было бы здорово.

Кроме того, я еще не уверен, как реализовать одноразовый пароль или как сравнить два сеанса и убедиться, что они оба действительны. Это будет позже, мне нужно сначала заставить этот рабочий процесс работать.

15
задан Peter Kruithof 12 April 2012 в 13:24
поделиться