Я успешно установил аутентификацию SAML, используя omniauth-saml в своем приложении Rails 4.2.0. Поскольку это приложение с несколькими арендаторами, и каждый арендатор может определить свой собственный IdP, это было сложно, но я это сделал.Могу ли я передать IdP обратно поставщику услуг с помощью omniauth-saml?
Когда IdP аутентифицировал пользователя, IdP отправляет его обратно в мое приложение по адресу /auth/saml/callback
, стандартное место для omniauth. Пока я в порядке с отправкой пользователя на указанную страницу в моем приложении (скажем, на приборной панели), все это хорошо работает.
Но что, если пользователь пытался получить доступ к определенной странице и был отправлен на страницу входа? Если пользователь должен был нормально войти (адрес электронной почты/пароль), приложение rails запоминает возвращаемый URL-адрес и отправляет пользователя обратно туда, куда они пытались идти в первую очередь.
С omniauth-saml, я не уверен, как это сделать. Мой первый инстинкт - отправить параметр return_url
в IdP, чтобы IdP мог отправить его обратно после аутентификации. Есть ли способ, которым я могу это сделать?