設計と構築
3-28
最軽量の
アクセス権設定
アクセス権設定
- 状況
-
kintoneのアクセス権を設定しようとしている。【開かれた情報】(0-03)にするため、【オープンな閲覧権限】(2-16)を基本としながら、必要に応じて権限を付与していく運用を思い描いている。
しかし、アプリグループ、アプリ、レコード、フィールドとアクセス権を設定できる箇所が多く、設定対象も組織、グループ、ユーザー等複数の選択肢があるため、どのように設定をすべきか悩んでいる。
- 問題
-
行き当たりばったりに、ユーザー単位でのアクセス権を設定すると、人事異動が発生するたびに権限の再設定の手間や、それに伴う設定ミスの危険性が発生してしまう。
またユーザー単位や個別のフィールド単位での設定は設定数が多くなってしまい、性能問題が発生する可能性もある。
▼アクセス権の事前評価とアプリの更新時間について
https://cybozu.dev/ja/kintone/tips/development/customize/columns/access-permissions-evaluation-app-update/
- 解決
-
上位の設定項目や、組織やグループごとのアクセス権で設定をすることで、軽量なアクセス権設定を保つ。
アクセス権の設定箇所は下記の順番で考える。
・所属スペースの設定 or アプリグループの設定
・アプリのアクセス権
・レコードのアクセス権
・フィールドのアクセス権(グループフィールドによる一括設定)
・フィールドのアクセス権(個別フィールド)
レコードやフィールドのアクセス権の設定数が多くなるようなものについては、アプリの分割を実施した上でそれぞれのアプリのアクセス権で実現する方法を検討するのも有効だ。設定対象については下記の順番で考える。
・グループ or 組織
・ユーザーユーザーのグループ分けや組織・アプリの設定を整備することで、より下位の個別設定を減らすことが可能になる。なるべく個別設定を減らせる運用を考えよう。
また、前提として【開かれた情報】(0-03)にし、必要以上に閲覧権限を絞らないことも心がける。なお、レコードやフィールドのアクセス権では、対象レコード内のフィールドの値を用いた動的な権限の設定が可能だ。レコードの登録者やレコード内のユーザー選択フィールド等をアクセス権の設定に用いる事で、アプリ設定でのアクセス権設定の軽量化や、アプリ管理者以外にも権限設定が可視化されるメリットがある。
- 結果
-
上位の設定項目で設定することにより、下位の項目変更時に考慮すべき範囲を狭められる。
たとえば、アプリのアクセス権で閲覧権限を制限している場合、フィールド追加時の閲覧権限はすでに制限された範囲からさらに制限が必要か?と考えられる。
考慮範囲を狭めることで結果的に設定ミスは少なくできるだろう。設定対象を組織、グループで指定することにより、設定数が少なくなるため、設定の視認性が高まる。
その結果、初期設定時や変更時の設定ミスの発生率を低減させられる。
設定数を少なくすることでシステムへの負荷を抑えられる可能性もある。
人事異動時の再設定の手間をなくすことにもつながるだろう。