問題
YellowfinにSSOを設定した後でも、ユーザーが組織独自のSSOログインポータルではなく、Yellowfinのデフォルトのログインページに誘導される場合があります。
例えば:
- ユーザーがアプリケーションからログオフした場合、Yellowfinのデフォルトのログインページが表示されます。
- アイドル状態のユーザーが、アプリケーション内で次の操作を行う前にタイムアウトの閾値に達した場合、Yellowfinのデフォルトのログインページが表示されます。
- 現在ログインしていないユーザーが、Yellowfinの特定のレポートまたはダッシュボードへの外部リンクにアクセスを試みた場合、Yellowfinのデフォルトのログインページが表示されます。
通常、SSOを設定している場合、Yellowfin ユーザーがYellowfinにアクセスする主要なエントリーポイントとして、独自のSSOログインポータルのみを使用することを想定していると思います。
解決策
前述のログインしていないユーザーで起こりうるすべてのシナリオに対応し、Yellowfin ユーザーを常にSSOログインページ/ポータルにリダイレクトするには、次の手順を実行します。
手順1:ユーザーをSSOログインページにリダイレクトするために一般的に使用できるカスタムJSPを作成
次のコードをテキストエディターに貼り付けます。「your_login_page_URL」を、忘れずに特定のSSOポータルのログイン/ランディングページのURLに置き換えてください。
<% response.sendRedirect("your_login_page_URL"); %>
「redirect.jsp」という名前でテキストファイルを保存します。
注意:以降の手順で一貫して参照する限り、ファイル名には任意の名前を付けることができます。
<Yellowfin インストールディレクトリ>.../appserver/webapps/ROOT配下に「redirect.jsp」ファイルを配置します。
手順2:リポジトリデータベースに次の設定を追加
まずは、既存の環境にこちらの設定が既に存在するかどうかを確認します。
SELECT * FROM Configuration WHERE configcode = 'CUSTOMNAVREMOTE';
何も結果が返ってこない場合は、次のクエリーを実行し、リポジトリデータベースに設定を追加します。
INSERT INTO Configuration VALUES( 1, 'SYSTEM', 'CUSTOMNAVREMOTE', 'TRUE');
注意:これは、後続の手順でタイムアウトページを設定するときに役立ちます。
手順3:web.xml ファイルを次の変更内容で更新
web.xml ファイルは、<Yellowfin インストールディレクトリ>.../appserver/webapps/ROOT/WEB-INF配下に配置されています。
まず、<welcome-file-list> タグを検索し、元の値である「index_mi.jsp」を「redirect.jsp」に置き換えます。
次に、ファイル下部までスクロールし、次の<filter>...</filter> タグスニペットをファイルの下部(ただし、</web-app> タグの直前)に貼り付けます。
<filter> <filter-name>NotLoggedInFilter</filter-name> <filter-class>com.hof.adapter.NotLoggedInFilter</filter-class> <init-param> <param-name>restrictedEntryPoint</param-name> <param-value>/RunReport.i4,/RunDashboard.i4</param-value> </init-param> <init-param> <param-name>redirectUrl</param-name> <param-value>http://your_yellowfin_URL/redirect.jsp?</param-value> </init-param> </filter> <filter-mapping> <filter-name>NotLoggedInFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
「your_yellowfin_URL」を、Yellowfin アプリケーションの実際のURLに変更するのを忘れないでください。
上記の変更とともに、web.xml ファイルを保存します。
手順4:「redirect.jsp」を指すように、タイムアウトページ設定を更新
Yellowfinのデフォルト(プライマリー)組織にログインします。
管理>システム構成>インテグレーション>タイムアウトページに移動します。
タイムアウトページの表示を「カスタム」に変更します。
URL項目に、上記で作成したJSP(例:redirect.jsp)のファイル名を入力します。
手順5:Yellowfinを再起動
上記すべての変更を反映するために、Yellowfin Tomcat サービスを再起動します。
これで、Yellowfinにアクセス、または再アクセスが必要な場合に、ログインしていないユーザーが常にSSOログインエントリーのURLへリダイレクトされるようになります。