Мы создаем ADFS (2.0), которая будет отвечать за аутентификацию пользователей для нескольких ориентированных на клиента систем. Механизм аутентификации передается внешнему партнеру, который предлагает доступ нескольким провайдерам аутентификации.
Недавно мы столкнулись со следующим сценарием:
- Пользователь пытается получить доступ к клиентской системе A и перенаправляется в ADFS для аутентификации.
- ADFS перенаправляет пользователя к партнеру аутентификации, где он успешно проходит аутентификацию.
- Пользователь отправляется обратно в ADFS со своим токеном аутентификации.
- ADFS отправляет пользователя обратно в систему A. Теперь у него с ним сеанс.
- Пользователь пытается получить доступ к Системе B, в которой он еще не
аутентифицируется и отправляется в ADFS.
Здесь ADFS отклоняется от ожидаемого нами поведения. Вместо того, чтобы распознавать пользователя и прозрачно отправлять его обратно в систему B с действительным токеном аутентификации, ADFS отправляет его нашему партнеру по аутентификации для повторной аутентификации.
Это полностью разрушает функциональность SSO, которую мы хотели получить для клиентов, использующих системы A и B, но мы не нашли способа заставить ADFS установить сеанс пользователя и повторно использовать его во время доступа ко второй системе.
Кто-нибудь решил эту проблему?
Может ли ADFS предоставлять единый вход, только когда он полностью отвечает за проверку подлинности?