URL динамического обратного вызова с pingfederate mod_auth_mellon
Мы настроили наш SPA с mod_auth_mellon, и установка SP Initiated работает хорошо. Теперь мы хотим добавить возможность динамической маршрутизации к URL-адресу SPA, который инициировал вызов SSO SAML.
Ниже течет ток
- Пользователь открывает URL http://foo.com/user/1
- Время сеанса истекло, поэтому SP инициирует SSO-рукопожатие и перенаправляет пользователя в IDP (Ping Federate).
- Пользователь входит в систему IDP и после успешной аутентификации перенаправляется на http://foo.com/sso_callback
На шаге (3) мы теперь хотим перенаправить обратно на http://foo.com/user/1. Какие изменения конфигурации я должен сделать в конфигурации SP / IDP, чтобы включить динамическую маршрутизацию?
1 ответ
Если вы используете SAML 2.0, то вы хотите использовать RelayState. При создании вашего запроса AuthN на шаге 2 вы захотите убедиться, что вы, как поставщик услуг, включили желаемое RelayState. Значение, которое вы предоставляете IDP для RelayState, будет передано через транзакцию и возвращено вам в качестве параметра URL на шаге 3, когда пользователь отправит POST на ваш ACS @ http://foo.com/user
Вот пример потока:
- Пользователь открывает URL http://foo.com/user/1
- Сессия истекла, поэтому SP перенаправляет пользователя в IDP с токеном AuthN И значением RelayState http://foo.com/user/1
- IDP аутентифицирует пользователя
- IDP направляет пользователя для отправки токена SAMLResponse в SP ACS @ http://foo.com/sso_callback, а также включает дополнительный параметр URL для RelayState.
- SP использует и проверяет SAMLResponse в ACS, а в случае успеха перенаправляет текущего активного сеансового пользователя на значение, содержащееся в параметре RelayState.
Если вы не выполняете SSO инициализации SP и вместо этого делаете общее перенаправление на URL SSO, инициированный IDP, вы можете добавить параметр URL TargetResource в ваше перенаправление SSO, инициированное IDP, чтобы затем получить его обратно с SAMLResponse позже.