OneLogin の Java 統合ツールキットを使用しました。SAML SSO を使用して、アプリケーションのデフォルトのホームページにログインできました。しかし、リダイレクトするには、ユーザーが最初に要求した URL が必要です。残念ながら、OneLogin は、アプリケーションへの SAML アサーション中に RelayState パラメータを返しません。それとも、別のクエリ パラメータとして渡す必要がありますか?
注: これは SP によって開始される SSO です。
OneLogin の Java 統合ツールキットを使用しました。SAML SSO を使用して、アプリケーションのデフォルトのホームページにログインできました。しかし、リダイレクトするには、ユーザーが最初に要求した URL が必要です。残念ながら、OneLogin は、アプリケーションへの SAML アサーション中に RelayState パラメータを返しません。それとも、別のクエリ パラメータとして渡す必要がありますか?
注: これは SP によって開始される SSO です。
Java ツールキットを近日中に更新して最新化し、多数の SAML 機能を導入する予定です。
RelayState は、ユーザーがアクセスしようとしていた元の URL (またはアプリ内のリソース) を参照する不透明なトークンです。OneLogin Java SAML SDK は AuthRequest を IdP に送信しますが、URL を自動的に解析して IdP にトークンを送信しません。
ツールキットの使用を簡単に拡張すると、次のようになります。
1.) ユーザーが保護されたページにアクセスしたときに、セッションを確認します。2.) アクティブなセッションがない場合 (つまり、Cookie がないなど)、ユーザーが SAML ベースの SSO が有効になっている組織の一部であるかどうかを判断します (URL サブドメインを介して、またはユーザーの電子メールアドレスを要求するなど) 3.) あなたのアプリは、ユーザーがログインしておらず、IdP に対して認証する必要があると判断した後、OneLogin の SAML ツールキットのすぐに使えるコードを利用して、Settings.java ファイルに保存されている HTTP エンドポイントに SAMLRequest を送信できます。4.) authrequest.java ファイルに追加の関数を作成して、RelayState トークンを作成します。これは、URL を解析してから URL エンコードするのと同じくらい簡単です。5.) アプリの java-saml / sample / src / main / webapp / index.jsp ロジックでその関数を呼び出し、それを使用して変数 ?RelayState={yourtoken} を認証要求に追加します。
最善!