Единый вход в ADFS с внешним поставщиком аутентификации - PullRequest
2 голосов
/ 23 января 2012

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

Недавно мы столкнулись со следующим сценарием:

  1. Пользователь пытается получить доступ к клиентской системе A и перенаправляется в ADFS для аутентификации.
  2. ADFS перенаправляет пользователя к партнеру аутентификации, где он успешно проходит аутентификацию.
  3. Пользователь отправляется обратно в ADFS со своим токеном аутентификации.
  4. ADFS отправляет пользователя обратно в систему A. Теперь у него с ним сеанс.
  5. Пользователь пытается получить доступ к Системе B, в которой он еще не аутентифицируется и отправляется в ADFS.

Здесь ADFS отклоняется от ожидаемого нами поведения. Вместо того, чтобы распознавать пользователя и прозрачно отправлять его обратно в систему B с действительным токеном аутентификации, ADFS отправляет его нашему партнеру по аутентификации для повторной аутентификации.

Это полностью разрушает функциональность SSO, которую мы хотели получить для клиентов, использующих системы A и B, но мы не нашли способа заставить ADFS установить сеанс пользователя и повторно использовать его во время доступа ко второй системе.

Кто-нибудь решил эту проблему?

Может ли ADFS предоставлять единый вход, только когда он полностью отвечает за проверку подлинности?

Ответы [ 3 ]

1 голос
/ 16 мая 2012

Ожидается, что ADFS будет вести себя так, если ваши RP-системы (система A и система B) настроены на принудительную аутентификацию (ForceAuthn = "true").Чтобы устранить проблему, убедитесь, что атрибут свежести удален из элемента <wsFederation>.

0 голосов
/ 31 января 2012

У вас есть доступ к журналам ADFS2?На компьютере с Windows -> Просмотр событий -> Журналы приложений и служб -> AD FS 2.0 -> Admin .

Проверьте также, что A, B и ADFS2 находятся втот же круг доверия , а также Assertion Consumer Services конечные точки системы B.

Надеюсь, это поможет,

Luis

0 голосов
/ 23 января 2012

В классической ADFS вы настраиваете разных партнеров аутентификации в качестве провайдеров утверждений с помощью ADFS, т. Е. Вы объединяете соответствующую STS. Это обеспечивает необходимую вам функциональность единого входа.

Похоже, ваша проблема в том, что существует только федерация между ADFS и внешним партнером, но не между ADFS и поставщиками аутентификации, обрабатываемыми внешним партнером.

...