Fess 12.6からAzure ADの認証に対応する予定。対応するためにadal4jを利用したので、OpenID Connectによる認証になる。これに合わせて、SSOまわりの実装をいろいろと変更したので、12.5に入れるには大きな変更になったので、12.6にいれることにした。
実装するにあたり、active-directory-java-webapp-openidconnectというサンプルプロジェクトを参考にしながら作ったのだけど、このサンプルが所々にゴミが残っていたり、コピペ的に作ると痛い目を見る感じだったので、読み解きつつ、リファクタリングして、Fessには取り込んでおいた。
ということで、Azure PortalでAzure ADにアプリ登録をして、system.propertiesに以下を記述することで、Fessでhttp://localhost:8080/sso/にアクセスすると、Azure ADに認証に行ってFessでログイン状態にすることができるようになる。
sso.type=aad
aad.tenant=<tenant_name>.onmicrosoft.com
aad.client.id=...
aad.client.secret=...
sso.typeは以前のバージョンではfess_config.propertiesで設定していたけど、system.propertiesに移すことで、設定がオンラインで変更可能になった。