kintone は業務アプリをすぐに作れる便利なサービスですが、
権限まわりの“確認方法”だけは昔から変わらず難しい ままです。
- このユーザーはどこまで閲覧できる?
- 組織とグループのどっちが効いてる?
- 権限変更したけど影響は?
- 最終的に何が「見れる/見れない」になる?
管理画面では設定値こそ確認できますが、
“最終的に何が有効になるのか(権限の結果)” は分からない のが現実。
この記事では、
- なぜ権限が見えにくいのか
- 技術的にどう整理できるのか
- 僕がどうやって可視化してみたか
というテーマでまとめ、
最後に 「アプリテンプレートとして実装した方法」 を紹介します。
1. 権限が見えづらい理由:3階層が同時に効く
kintoneの権限は、次の3つが同時に作用します。
- ユーザー権限
- グループ権限
- 組織(部門)権限
しかも、
“もっとも強い(許可の)権限が勝つ” というルール。
UIで設定は見えるのですが、
「どの階層の、どの権限が最終的に効いているのか?」
は逆算しないと分かりません。
2. 権限の“結果”を取得するAPIは存在しない
実は、kintoneのAPIでは
- アプリ/レコード/フィールドの権限“設定”
- グループ/組織の一覧
- ユーザーの所属情報
などは取得できますが、
「このユーザーはこのアプリを閲覧できるか?」
を直接取得する方法は存在しません。
つまり、権限の「実行結果」を得るためには、
こちらがロジックを作る必要がある のです。
3. そこで“権限を計算する”というアプローチを取った
次のような処理をJSで作れば、
「最終的な権限」を算出できることが分かりました。
■ 権限計算のざっくり手順
- ユーザーの所属(組織・グループ)を取得
- アプリ権限設定(app/acl.json)を取得
- フィールド権限(app/form/fields)を取得
- それぞれの「許可 / 不許可」を一覧化
- 結果を表にまとめる
■ 結果イメージ(例)
| 権限種別 | 最終結果 |
|---|---|
| アプリ閲覧 | ◯ |
| レコード追加 | × |
| レコード編集 | ◯ |
| レコード削除 | × |
| フィールド編集 | △(フィールド単位で細かく判定) |
これが出ると、
「権限設定」ではなく「実際の結果」 が一気に見えるようになります。
4. それを “アプリテンプレート” としてまとめてみた
今回のアドカレではプロダクト宣伝ではなく、
アプリテンプレートという“技術アプローチの成果物”を軽く紹介するだけ にとどめます。
僕はこの権限計算ロジックを、
- APIで取得
- JavaScriptで評価
- 結果をレコードに表示する
という形でまとめ、
kintoneアプリテンプレート(Lite版) として提供しています。
▼ Lite版の特徴(あくまで参考)
- テンプレート読み込みだけで使える(カスタマイズ不要)
- 対象のユーザー/グループ/組織を指定すると
→ その単位の“権限結果”を一覧化して表示 - 記録や差分比較などは行わず、
純粋に「権限を確認する」だけに特化した軽量版
いわば、
kintoneに存在しなかった“権限ビューア”
をアプリで再現したようなものです。
5. 権限確認問題は、もっと議論されていいテーマ
権限の設定はUIで見えるのに、
“結果は見えない”。
このギャップが、現場運用を難しくしています。
- 新人が画面を見れない原因特定
- 組織改編による権限影響
- 内部統制・棚卸し
- 属人化の排除
など、影響はどの企業でも確実に存在します。
今回のアプローチはあくまで一例ですが、
kintoneの権限構造を正しく理解し、
どう可視化するかを考えるきっかけになれば嬉しいです。
まとめ
- kintoneには“権限の結果”を確認する手段が無い
- 権限はユーザー/グループ/組織の3層で合成される
- APIは設定のみ → 結果を得るにはロジックが必要
- JSで判定ロジックを作れば、結果の一覧化は可能