FessのSAML対応

以前に対応しようと思ったときにAzure ADに対応したから良いか、という気分になり、SAML対応を一旦放置してしまったのですが、次のバージョンからSAML対応を入れました。OneLoginのライブラリを使っているので、動作確認とかはここの手順になります。

Fess側の設定としては、system.propertiesに以下のものを書いておけば良いです。値はIdPから取得します。OneLoginであれば、saml.〜はonelogin.saml2.〜に読み替えて、設定してください。

sso.type=saml
saml.idp.single_sign_on_service.url=https\://.../sso/...
saml.idp.x509cert=XBML...(一行にする)...rMdP
saml.idp.entityid=https\://.../metadata/...
saml.idp.single_logout_service.url=https\://.../slo/...

IdP側の設定は、OneLoginであれば以下のような感じで設定します。

あとは、http://localhost:8080/sso/ にアクセスすれば、SSOでログインされます。(SLOは設定しているけど、今のところ、処理してません…)

世の中にいろいろなIdPがあると思うので、何かあればフォーラムとかに投げてもらえればと思います。

注:AudienceのURLが…/metadata/samlから…/metadataに、Single Logout URLが…/logout/samlから…/logoutに変更しました。

Fess 13.8.1のリリース

Fess 13.8.1をリリースしました。13.7.2もリリースしてあります。依存関係の更新も少々しましたが、JAVA_OPTSを参照するのをやめた修正のせいで、Windowsでfess.batから起動できなくなっていたようなので、それに対する修正になります。たぶん、以前からあった問題だったと思うのですが、特定の条件でしか発生しなかったので、発覚しなかったのだと思います。そして、私はWindowsユーザーではないし、Windowsでfess.batで起動するパターンは商用で提供することはないので、気づかなかったという感じ…。Fessはテストケースが多いから商用で使わない部分までのテスト工数をまわすのも難しいところ。この手のは自動化したいところだけど、Windowsだとうまくできる方法があるのかが不明である。という感じで、今回はバグ修正的なリリースでした。

fess-ingest-ndjsonを作る

fess-ingest-ndjsonを作ってみました。これは、elasticsearchに送っている内容を指定されたファイルに保存していく感じです。なので、クロールしている内容を別途保存しておきたいときとかに利用できるかなと。保存しておくことで、Pythonで読み込んで別の処理に使うとかもできるかと。

インストールしたあとはsystem.propertiesファイルに出力先とかを記述する必要があります。たとえば、

ingest.ndjson.path=/tmp
ingest.ndjson.max.lines=10000
ingest.ndjson.prefix=fess-

みたいに書いておけば、fess-*.ndjsonファイルができて、10000件ずつ保存されていきます。1クロール処理で切り替わるので、10000件に満たなければ、次には新しいファイルになります。あとは、titleとcontentだけを保存するのであれば、

ingest.ndjson.filter.keys=title,content

とすれば、それだけが出力されます。

という感じで、別な何かをしたいときとかに利用するものを生成するとかに使えるかなと思います。(というか、Pythonで読み込んで使おうかなと自分で思っていたから作った感じですけど・・・)

Fess 13.7.1のリリース

Fess 13.7.1をリリースしました。新しい機能としてはfess-ingestプラグインです。Ingesterを実装することで、インデックスされる前のデータを加工したり、ファイルに保存したりと、処理を差し込むことができます。サンプル的な実装はfess-ingest-loggerを参照してください。

他の変更点は細かなバグ修正をしたことと、elasticsearch 7.7.1に対応したことくらいでしょうか。そんな感じではありますが、利用してみてください。