Изменить RelayState в AD FS

Рассмотрим следующую ситуацию: В настоящее время мы находимся на этапе перехода, когда большинство наших пользователей все еще должны быть перенаправлены в существующее приложение A. Вместо этого другие пользователи, которые удовлетворяют некоторым определенным критериям (давайте назовем их бета-тестерами), должны быть перенаправлены на новый приложение Б.

Пользователи обращаются к нашей AD FS с помощью запроса POST, который содержит SAMLResponse и RelayState. Параметр RelayState сообщает нашей AD FS желаемое целевое приложение. До сих пор он всегда содержит "сайт A", так как пользователи еще не знают о сайте B;-)

Мне интересно, есть ли способ динамически изменить процесс, в котором наша ADFS определяет целевое приложение на основе значения параметра RelayState? Так что я ищу способ каким-то образом изменить RelayState на основе определенных утверждений, предоставленных пользователем. Например, если у пользователя есть запись "бета-тестер" в ее заявке на роль, то наша ADFS должна направить ее на сайт B вместо сайта A.

Есть ли способ подключиться к конвейеру обработки AD FS? Единственное, что я нашел на данный момент, - это статья, описывающая, как "внедрить" пользовательский метод аутентификации. Но это не то, что я ищу.

Так может кто-нибудь сказать мне, есть ли другие точки расширения, которые я мог бы использовать для достижения того, что я описал выше?

2 ответа

Один из подходов заключается в настройке прокси-сайта, где вы можете применять собственную логику по мере необходимости для подобных сценариев. Мой опыт показывает, что было много раз, когда удобно иметь точку входа в процесс федерации, то есть точку расширения псевдо, где вы можете применять собственную логику. Таким образом, каждый из IdP может перейти на https://proxy.mysite.com/ а затем этот сайт будет принимать решения на основе утверждений и, возможно, строки запроса, опубликованных переменных или атрибутов заголовка, относительно того, куда отправлять (перенаправлять) пользователя на следующий, https://a.mysite.com/ или https://b.mysite.com/.

DNS также может быть свернут, чтобы сделать такие вещи, как прямой https://a.mysite.com/ на прокси-сайт, и прокси-сайт может затем посмотреть имя хоста запроса и узнать, что пользователь намеревался перейти на a.mysite..com, но вы можете определить, если бета-тестер и направить на b.mysite.com или фактический сайт А.

Извините, нет - нет способа динамически изменить RelayState.

ADFS заблокирована (так как это система безопасности) и не имеет точек расширения.

Не могли бы вы иметь два RP во время перехода?

Другие вопросы по тегам