Fessでは、ログインすることで、利用者の権限に基づいた検索結果の出し分けをするロール検索が利用できます。Fessの利用者情報は、Fess自体でも管理できますが、利用者情報を「Active Directory」や「SAML」による認証と連携し管理するといった外部の認証管理にも対応しています。Active Directoryとの連携方法は第9回で紹介しているので、今回は、SAMLによるシングルサイオンを利用する方法をご紹介します。SAML認証で利用するIdentity Providerは、クラウド型統合認証基盤サービス「Okta」を利用して、説明していきます。
【第9回 FessでActive Directory連携】はこちら
Oktaの設定
Oktaは30日間のフリートライアルを提供しています。 今回は、Oktaのサイトからフリートライアルのテナントを発行し、Fessとの連携方法を確認していきます。
アプリの登録
まずは、Okta上で認証用のアプリを登録します。 Oktaの管理者画面にログインし、左メニュー「Applications」>「Applications」>「Create App Integration」をクリックします。
ログイン方法(Sign-in method)は「SAML 2.0」を選択し、「Next」ボタンをクリックします。
全般設定(General Settings)で、「App name」にアプリ名を入力して「Next」ボタンをクリックします。 アプリ名は任意で設定してください。
SAML設定(Configure SAML)では、以下を入力します。 今回は、localhostにFessを構築して、シングルサインオンの確認をするため、http://localhost:8080/〜 の値を指定しています。
項目 | 値 |
---|---|
Single sign on URL | http://localhost:8080/sso/ |
Audience URI | http://localhost:8080/sso/metadata |
入力後、「Next」ボタンをクリックします。
次の画面はフィードバック画面で、Oktaの利用方法に関する質問ですので、今回は「I'm a software vendor.〜」を選択して、「Finish」ボタンをクリックします。
設定情報の確認
Fessでの設定で必要な情報をOktaの管理者画面で確認しておきます。
Oktaの管理者画面の左メニュー「Applications」>「Applications」して作成したアプリケーションをクリックします。「Sign On」 をクリックして 「SAML Signing Certificates」 の横にある「View SAML setup instructions」をクリックすると、Fessアプリケーション用に SAML 2.0 を構成する方法が表示されます。
以下の項目の値を控えておきます。
Fessの設定
Fess 14.4.0 を利用して、設定方法を説明します。 Fessのサイトからダウンロードしてインストールしておきます。 インストール後、 app/WEB-INF/conf/system.properties に以下を追加します。
sso.type=saml
saml.idp.single_sign_on_service.url=https://xxxxx.okta.com/app/xxxxx/xxxxx/sso/saml (「Identity Provider Single Sign-On URL」のURL)
saml.idp.x509cert=MIIDqjCCAp..... (「X.509 Certificate」の値)
saml.idp.entityid=http://www.okta.com/xxxxx (「Identity Provider Issuer」のURL)
上記の編集後、Fessのサービスを再起動します。
Fessへのアクセス
「 http://localhost:8080/sso/ 」にアクセスすると、Oktaのサインイン画面が表示されます。 Oktaに登録しているアカウントでサインインします。
ログイン後、Fessの検索画面の右上にサインインした際のアドレスが表示されていれば認証成功です。
* * *
今回は、Oktaを利用して、SAML認証によるシングルサインオンをする方法を紹介しました。 Oktaに限らず、SAML認証が可能なIdentity Providerであれば、Fessと連携してシングルサインオンによる利用者管理が可能です。社内向けドキュメント検索システムの構築などで、社内の認証システムと連携した検索を実現したい時などに、利用を検討してみてください。