При использовании единого входа Okta с перенаправлением ссылки (вместо отправки + создания объекта запроса SAML) возможно ли динамически включать состояние реле? (например, включить заголовок RelayState или строку запроса)
Okta перенаправляет состояние динамического реле
Ответы (2)
Да, ты можешь.
Предполагая, что вы говорите об этом: Получение файла cookie сеанса путем перехода по ссылке перенаправления сеанса
Я сделал это следующим образом:
appSSOUrl = 'https://your.okta.com/app/identifier/sso/saml'
RelayStateValue = URLENCODE(desired relay state here)
redirectUrl = URLENCODE(appSSOUrl + '?RelayState=' + RelayStateValue)
Отправка userAgent на
https://your.okta.com/login/sessionCookieRedirect?token={cookieToken}&redirectUrl={redirectUrl}
Здесь {redirectUrl} представляет собой закодированную версию URL-адреса SSO вашего приложения okta? добавлен параметр RelayState. Значение этого параметра - это состояние реле с кодировкой URL, которое вы динамически сгенерировали перед перенаправлением.
Кодировка URL-адреса может быть необязательной, но у меня были хорошие результаты.
полученный URL-адрес перенаправления выглядит глупо, но он работает.
https://your.okta.com/login/sessionCookieRedirect?token=00FAyayhEPQj3O7czF192BaEzjWhGjOSKk7f4QNRfe&redirectUrl=https%3A%2F%2Fyour.okta.com%2Fapp%2Fidentifier%2Fsso%2Fsaml%3FRelayState%3DParam1%253Dvalue1%2526param2%253Dvalue2%2526param3%253Dvalue3
Путем добавления вывода строки запроса к ссылке перенаправления
https://your.okta.com/.../sso/saml?RelayState=/param1/param2
состояние выходного реле будет отправлено в теле сообщения возврата.
{SAMLResponse: ..., RelayState: "/ param1 / param2"}