簡體   English   中英

如何使用 SAML 中的 RelayState 指定 SP 的登錄頁面,使用 saml-omniauth 和設計?

[英]How do I use RelayState from SAML to specifiy landing page at the SP, using saml-omniauth and devise?

如何使用 SAML 協議中的 RelayState 在 IdP 發起的 SSO 中指定 SP 處的登錄頁面?

我在 IdP 和 SP 之間設置了 IdP 發起的 SSO 流程。 它可以工作,但它位於 root_path。 我需要它登陸 RelayState URL。

我正在使用設計。 在我的控制器下面找到:

def saml
    student = Student.where(email: request.env["omniauth.auth"]['uid'].to_s).first
    if student
      sign_in_and_redirect student, event: :authentication
    else
        flash[:error] = t 'flash_msg.access_1'
        redirect_to root_path
    end
  end

答案是sign_in_and_redirect method by sign_in method替換sign_in_and_redirect method by sign_in method 然后通過執行redirect_to params[:RelayState]將用戶重定向到 RelayState URL。 最終的 saml 方法是:

  def saml
    student = Student.where(email: request.env["omniauth.auth"]['uid'].to_s).first
    if student
      sign_in student, event: :authentication
      redirect_to params[:RelayState]
    else
        flash[:error] = t 'flash_msg.access_1'
        redirect_to root_path
    end
  end

我希望它可以幫助某人!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM