2023/07/28

ACLの優先順位

今回は ACL の判定に関してまとめます。

ACL のエントリは、個人名やグループ、使用経験はないのですがワイルドカードで指定できます。そして、そのどれにも属さない場合にデフォルト(-Default-)の権限が適用されます。

実際にアプリケーションを運用していると、あるユーザが複数のグループに所属するなど、1ユーザに対して1ACL エントリではない場合に遭遇します。このような状況になったときに、ACL がどのように判定されるか、実験したのでレポートします。


検証環境と準備

まず、検証は ”User01 Training/Domino” ユーザが存在し、DJX で別名 "講習会 ユーザ01/ドミノ" が付与されている環境を使用しました。

次に検証用に3つのグループを作成しました。すべて、今回の検証で使用する ”User01 Training/Domino” ユーザ所属するグループで、GroupA と GroupA_Sub は階層化されたグループとなっています。

グループ名 メンバー
GroupA GroupA_Sub
GroupA_Sub User01 Training/Domino
GroupB User01 Training/Domino

確認用のアプリケーションには、[RoleA] と [RoleB] の2つのロールを準備しています。


ACL の判定方法

付与された ACL のレベルは、『アクセス制御リスト』ダイアログの [有効なアクセス権] ボタンを使用して確認しました。

この画面を使用すると、指定したユーザの ACL レベルやオプション、付与されたロールが確認できます。


ユーザ vs 別名

通常のユーザ名(英字)と DJX で付与した別名での優先度の確認です。

まずは、同じアクセスレベルで、ロールとオプションを変化させてみました。

ACL エントリ レベル ロール その他
User01 Training/Domino 作成者 [RoleA] 文書の作成
講習会 ユーザ01/ドミノ 作成者 [RoleB] 文書の削除

結果は、次のように双方の設定を合算したようになっており、文書の作成と削除のオプション、両方のロールが付与された状態でした。


続いて、ACL レベルが違う場合です。

ACL エントリレベルロールその他
User01 Training/Domino作成者[RoleA]文書の作成
講習会 ユーザ01/ドミノ編集者なし個人エージェントの作成

別名側の ACL を編集者に設定し、ロールは付与せず、別のオプションを選択してみました。その結果は次の通りでした。

ACL は権限が高いほうの”編集者”が付与されました。ロールやオプションは双方の設定が合算された状態となっています。


ユーザ vs グループ

続いてユーザ名とグループの優先度を確認します。

ACL エントリレベルロールその他
User01 Training/Domino作成者[RoleA]文書の作成
GroupB作成者[RoleB]文書の削除

結果は次の通りとなり、ユーザの設定で権限が付与され、グループの設定は無視されているようです。

ためしに、GroupB の ACL を管理者に変更し、すべてのオプションとロールを付与してみましたが、結果は同じでした。

ユーザとグループで ACL 設定がかち合った場合、ユーザの設定が優先されるようです。


グループ vs グループ

次は、グループ同士の優先度の確認です。

ACL エントリレベルロールその他
GroupA_Sub作成者[RoleA]
[RoleB]
文書の削除
GroupB管理者なし文書の削除なし

結果は次の通りとなりました。ユーザ vs 別名と同様に合算されたような状態でした。

いろいろ検証した結果、階層化されたグループの影響もなく、グループとして設定されたすべてのエントリから、最大の ACL レベルを採用。オプションとロールは合算して付与されていることが確認できました。


まとめ

ここから先は冗長になるので、個人名 vs ワイルドカード、グループ vs ワイルドカードなどのレポートは割愛します。

検証の結果、ACL の優先度の決定は、次の順位で決定され、その順位の ACL 設定が有効となり、それ以下の順位の ACL エントリは無視されます。

   ユーザ > グループ > ワイルドカード > デフォルト

ユーザ別名やグループなど同じ順位で複数の有効なエントリがあった場合には、ACL レベルは高い方を採用し、オプションやロールはすべてのエントリを合算させた設定となります。

なお、今回の検証は、12.0.2 FP1 を使用して確認しました。以前同様の検証をしたのは、約 20 年前の R5 だったかと思います。もちろん結果は一切変わっていません。基本的な機能とは言え、Notes の互換性ってすごいですね。

0 件のコメント:

コメントを投稿