MicrosoftがAzure Active Directory (Azure AD)をMicrosoft Entra IDにリブランディングしたことに伴い、Fess 15.4では命名規則を新しいブランドに合わせて変更しました。また、ネストしたグループメンバーシップを持つユーザーのログイン遅延を解消するため、親グループの遅延読み込み機能を実装しました。
Azure ADからEntra IDへの名称変更
以下のクラス名と設定キーが変更されました。
クラス名の変更
| 旧クラス名 | 新クラス名 |
|---|---|
| AzureAdCredential | EntraIdCredential |
| AzureAdAuthenticator | EntraIdAuthenticator |
| AzureAdUser | EntraIdUser |
設定キーの変更
設定キーはaad.*からentraid.*に変更されました。
# 旧設定
sso.type=aad
aad.tenant=<tenant_name>.onmicrosoft.com
aad.client.id=...
aad.client.secret=...
# 新設定
sso.type=entraid
entraid.tenant=<tenant_name>.onmicrosoft.com
entraid.client.id=...
entraid.client.secret=...
後方互換性
既存のaad.*設定キーは引き続き動作するように後方互換性が維持されています。SSOタイプとしてaadを指定した場合も、内部的にentraidとして処理されます。既存の設定を変更する必要はありませんが、新規設定ではentraid.*の使用を推奨します。
親グループの遅延読み込み
Entra IDでは、ユーザーが複数のネストしたグループに所属している場合、ログイン時にすべてのグループ情報を取得するのに時間がかかることがありました。この問題を解消するため、親グループの取得を非同期で行う遅延読み込み機能を実装しました。
動作の仕組み
- ログイン時: ユーザーの直接所属グループのみを同期的に取得
- ログイン後: 親グループ(ネストしたグループ)をバックグラウンドで非同期取得
- 取得完了時: パーミッションを再計算して更新
この改善により、多くのネストしたグループメンバーシップを持つユーザーでもログインが高速化されます。
スレッドセーフティの改善
非同期処理に対応するため、EntraIdUserクラスには以下のスレッドセーフティ改善が行われました。
groups、roles、permissionsフィールドにvolatile修飾子を追加setGroups()、setRoles()メソッドをsynchronizedに変更- 非同期更新後にパーミッション再計算を行う
resetPermissions()メソッドを追加
詳細
詳細は以下のPRを参照してください。