公開日:2024-04-11
kintoneではアプリごと、レコードごと、フィールドごとの3つの段階でアクセス権を設定することができます。このアクセス権の設定、苦手だという方も多いのではないでしょうか?
このコラムでは、アクセス権の設定のコツについて解説していきたいと思います。
このコラムは、弊社のYouTubeチャンネルで公開している次の動画の解説記事となります。
まず動画を見ていただいてから、理解の定着のためにこのコラムを読んでいただくのがおススメです。
なぜ難しく感じるのか
アクセス権の設定が苦手、難しいと感じる人が多いのはなぜでしょうか?
まず、「アプリのアクセス権」の設定画面を見てみます。
初期状態で、アプリ作成者、Everyoneの2種類のアクセス権が設定されています。
どちらもレコード閲覧、レコード追加、レコード編集、レコード削除という権限がついています。これは、全員が閲覧・追加・編集・削除できる状態を指します。
このように、全員が閲覧・追加・削除できる状態を「全開」になっていると表現します。反対に、閲覧・追加・削除できない状態を「閉じている」と表現します。
全開の状態から制限をしていくのは難しいものです。
このように最初の時点で全開になっていることが、kintoneのアクセス権の設定を難しく感じさせている原因だと言えるでしょう。レコードのアクセス権も同様に全開になっています。
セキュリティの基本
アクセス権が全開だと難しく感じやすいだけでなく、設定にミスがあるとセキュリティの面でも問題が発生します。セキュリティの原則として、アクセス権を設定するときには全て閉じている状態から考えることが重要と言われています。
全開だと、もし設定が漏れてしまった場合に「見えてはいけない人に見えてしまう = 情報漏洩」などのリスクがあります。
一方で、全て閉じている状態から必要なところだけを開けていく方が簡単に設定できますし、漏れなく間違いにくく、情報漏洩などの問題を防ぐことができます。
kintoneにおけるアクセス権設定のルール
次に、kintoneにおけるアクセス権設定のルールを見ていきましょう。
「アプリのアクセス権の画面」の画像のように、アプリ作成者、Everyoneなどのユーザー、組織やグループ単位でアクセス権を設定することが可能です。重複する場合には上段のユーザー、組織やグループから順に、優先的に設定が適用されます。
下の例では、経理部長(ユーザー)は経理(グループ)にも含まれますが、経理の権限より上段である経理部長のアクセス権が優先されます。そのため、経理部長はレコード追加・編集・削除が可能となります。
しかし、次の例では経理部長は経理に含まれるため、上段にある経理のアクセス権が優先されます。この場合、経理部長はレコード閲覧のみ可能で、レコード追加・編集・削除等はできない状態になります。
「経理部長のレコード追加・編集・削除にチェックを入れているのにできない!」とならないように、上段の設定が優先されることを意識しておく必要があります。
また、アプリ→レコード→フィールドの順で、優先的にアクセス権が適用されます。
例えば、アプリのアクセス権でレコードを閲覧できないように設定しているユーザーに、レコードの設定で閲覧可能と設定をしても、アプリのアクセス権が優先されるため閲覧できないことになります。
この例では、マーケティンググループは、アプリのアクセス権でレコード閲覧が許可されていません。そのため、レコードのアクセス権で閲覧の許可をしても閲覧・編集・削除できません。
アクセス権の検討の仕方
たくさんの組織・ユーザーが関わる複雑なアクセス権の設定の場合、最初からkintoneの設定画面で進めるよりも、スプレッドシートなどで作成した「アクセス権検討シート」を活用することをおススメします。
アクセス権検討シートでは、各ロール、アプリ、プロセス管理、レコードそれぞれのアクセス権の設定を、全て閉じた状態から考え、整理するために使用します。
ロールの定義から考え、アプリのアクセス権、プロセス管理とステータス毎の権限など1つずつ整理していくことで、最終的にkintoneアプリの設定画面と同じ状態(レコードのアクセス権)まで整理することを目的としています。
具体的な使用例の前に、まずは各シートの役割を簡単に解説していきます。
①ロール定義
まずはロール定義シートを活用して、ロールを定義します。
必要な部署、役割などを洗い出し、役割とどんなユーザーが当てはまるのか整理します。
②アプリのアクセス権を検討
次に、アプリのアクセス権検討シートで「全て閉じた状態」から整理していきます。このシートでは「〇」はアクセス権の許可を示します。
下の画像のように、どのロールにも「〇」がついていない状態が「全て閉じた状態」です。
一番上にアプリ名を入力し、アプリのアクセス権について考えてまとめていきます。
最初の状態では、ロール名にAdministrators、アプリ作成者、最後にEveryoneが入力されています。
「データ見えていい」「データ追加していい」…といった各項目の、許可するものに「〇」を入力していきます。
③プロセス管理とステータスの権限の整理
次に、プロセス管理のステータスと権限の整理をしていきます。
プロセス管理を使用しているアプリは、必ずステータスごとに整理して考える必要があります。「未処理~完了」まで、各ステータスごとに「閲覧・編集・削除」のうちどの権限を与えるかを1つずつ入力していきます。
④レコードのアクセス権を検討
最後に、レコードのアクセス権をステータスごとに考えていきます。
どういうレコード?の横に、「ステータスが未処理」や「申請金額フィールドが10万円以上」など、制限をしたいレコードの状態を入力します。そして、ロール・ユーザーごとに「データ見えて/編集して/削除していい」など、各項目に「〇」を入力していきます。
この形が最終的にkintoneに設定する内容と同じ形になります。この形に簡単に整理できるよう、ロール定義やプロセス管理とステータスの権限を整理していく必要があります。
アクセス権検討シートのダウンロードはこちら
実際に使ってみましょう
例として、「旅費精算申請」というアプリストアにあるアプリで、アクセス権検討シートの使い方を見ていきます。
フィールドごとのアクセス権制御も可能ですが、この記事ではわかりやすく説明するため、フィールド単位での設定ではなくプロセス管理のステータスに基づいて、ロール毎に制限する例となります。
このアプリでは、各社員が出張などがあった場合に上長に申請、承認を受けたら経理が確認、精算を行うアプリです。
以下のようにプロセス管理が設定されています。
未処理、申請中、承認、却下、確認、精算、完了というワークフローが組まれています。
このステータス毎に、ユーザー・ロールごとに閲覧や編集の制限をしていく必要があります。
①ロール定義
アクセス権検討シートの内の「ロール定義シート」を使用します。
今回は、kintoneのグループで考えてみましょう。一般社員、経理担当に分けて、主たる役割、想定ユーザーを記入していきます。
②アプリのアクセス権を検討
ロールが定義できたら、いよいよアクセス権検討シートを使ってアプリの権限について考えていきましょう。
先ほどロール定義シートで決めた、経理担当と一般社員をロール名に追加します。
Administratorsは管理者なので全て「〇」、アプリ作成者もアプリ維持のため、この例では全て「〇」にして権限をつけておくこととします。
次に、経理担当を考えていきます。
- レコードが見えないと申請、承認ができないので、データ見えていい:〇
- 自分自身の精算をする場合にレコード追加することもあるので、データ追加していい:〇
- 自分の精算のレコードを編集する可能性もあるので、データ編集していい:〇
- この例では削除していいこととするため、データ削除していい:〇
次に一般社員についても考えます・・・が、考えてみると経理担当と同じところに〇が入ります。
このように〇の場所が全く一緒のものは1つにまとめます。経理担当、一般社員の行をEveryoneに集約しましょう。
これで、アプリ権限の設定は完成しました。
③プロセス管理とステータスの権限の整理
次に、プロセス管理のステータスと権限の整理をします。
上の段に、プロセス管理で設定されていた「未処理~完了」までのステータスをそれぞれ入力していきます。
各ロールに与える権限は以下の表のようになります。
ここまで整理できたら、「閲覧・編集・削除」を入力していきましょう。
4行目の一般社員がポイントです。
自分以外の申請は見えてはいけない、というルールにするので、ここではどの権限も付与しません。同様の理由で、5行目のEveryoneも権限を付与しません。
これで、関係者にしか見えないように整理できました。
④レコードのアクセス権を検討
ここまで整理したことを、レコードの権限に展開していきましょう。
レコードの権限は、どのような性質を持つレコードに対してどういった設定をするのかを並べて、アクセス権検討シートに入力していきます。
「どういうレコード?」の横には、ステータスを入力し、画像のようにステータスごとに複数作成します。各ステータスにおいて、ロール・ユーザーが、「データ見えていい」「データ編集していい」「データ削除していい」の当てはまるものに「〇」を入力していきます。この作業は「③プロセス管理とステータスの権限の整理」で作成したシートを見ながら進めるとスムーズに作成できるようになっています。
よく見ると「申請中」と「却下」も同じところにのみ「〇」が入力されています。こちらも以下のように、まとめてもOKです!
これで、アクセス権で設定すべきものを整理できました。
注意点は、「どういうレコード?」に入力するものが、重なったり漏れたりしてはいけないという点です。漏れなくダブりなく、を意識しましょう。
この例の場合、全てのステータスがどこかに必ず入っているかチェックしてください。
NG例
以下のように「承認」が重複していたり、「完了」が漏れていたりすると正しくアクセス権を設定できなくなってしまうので、注意しましょう。
⑤kintoneに設定を適用する
最後に、アクセス権検討シートで整理した内容をkintoneに設定していきます。
アプリの設定から、レコードのアクセス権の設定を開き、先ほどレコードの権限で整理した表のまま、設定するだけです!
設定した画面が以下になります。
このように整理してから設定することで、漏れなくダブりなくミスのない設定がしやすくなります。アクセス権の設定が難しく感じる方や、複雑なアクセス権の設定をする場合など、ぜひアクセス権検討シートをご活用ください!