検索
連載

業務アプリ開発に欠かせないアクセス権限の制御、通知機能の設定はローコード開発でどう簡単になるのか?kintoneで始めるローコード開発入門(3)

ローコード開発とはどのようなものか、kintoneを題材に具体的な開発手順を解説する連載。今回は、企業の業務アプリ開発に欠かせないアクセス権限の制御、アクセス権限と似ている通知機能の設定などについて解説します。

Share
Tweet
LINE
Hatena
「kintoneで始めるローコード開発入門」のインデックス

連載:kintoneで始めるローコード開発入門

 ローコード開発とはどのようなものか、kintoneを題材に具体的な開発手順を解説する本連載「kintoneで始めるローコード開発入門」。前回は、「チームのタスク管理システム」を開発する流れを通して、フォームや一覧ビューの設定など基礎部分を解説しました。今回は、アクセス権限制御、通知機能の設定などについて解説します。

アクセス権の設定

 まずは、アクセス権の設定からです。企業の業務システムであれば、重要なデータはアクセス権限で制御したいケースもあるでしょう。kintoneでは、次の3つの単位を組み合わせて制御できます。

  • アプリのアクセス権:該当のアプリに誰がアクセスできるのか
  • レコードのアクセス権:特定の条件に合致したレコードの権限制御
  • フィールドのアクセス権:特定のフィールドの権限制御

 それぞれについて見ていきましょう。

アプリ単位のアクセス権を設定する

 例えば以下は、情報システム部だけがタスク管理アプリを利用できるように制限する例です。

1. 対象の組織を追加する

 先に、権限を設定する組織を作成します。これにより、ユーザーごとに権限を付与しなくて済むため、アクセス権管理を効率化できます(組織だけをメンテナンスすれば、部署異動などの際にも権限設定に影響しない)。

図1 cybozu.com共通管理にアクセス
図1 cybozu.com共通管理にアクセス

 図1の画面右上の歯車マークをクリックして、[cybozu.com共通管理]を選択します。第1回でユーザーを作成した管理画面に移動します。

2. 管理画面から組織を追加する

 管理画面が表示されたら、画面左の[組織/ユーザー]のメニューから[組織の追加]をクリックします(図2)。

図2 cybozu.com共通管理画面から組織を作成
図2 cybozu.com共通管理画面から組織を作成

 [組織の追加]画面が表示されるので、組織名を「情報システム部」と入力した後、[保存]ボタンをクリックします(図3)。これで新たな組織が追加されました(注)。

注:本格的に自社の階層組織を設定する際には[親組織]などの階層関係も定義することで、より企業のニーズに沿った権限設定などを効率化できます。

図3 情報システム部の組織を作成
図3 情報システム部の組織を作成

3. 作成した組織にユーザーを追加する

 組織に追加した[情報システム部]の項目の歯車マークをクリックして、[メンバーの変更]を選択します(図4)。

図4 情報システム部の組織にユーザーを追加
図4 情報システム部の組織にユーザーを追加

 [メンバーの変更]画面が表示されるので、情報システム部に所属させるユーザーを左側のリストから選択します。その状態で[追加]ボタンをクリックすることで、右側の所属メンバーのリストに加えることができます(図5)。

図5 ユーザーをクリックし選択して追加
図5 ユーザーをクリックし選択して追加

 メンバーを追加し終わったら、画面下部の[保存]ボタンをクリックします。図6のように、情報システム部にメンバーが追加されたことを確認してください。

図6 情報システム部のメンバーが追加された
図6 情報システム部のメンバーが追加された

4. [アプリのアクセス権]を設定する

 これでアクセス権限の対象となる組織が準備できたので、ここからは権限を付与していきます。まずは、タスク管理アプリの設定画面にアクセスします(図7)。

図7 アプリのアクセス権を設定
図7 アプリのアクセス権を設定

 アプリの設定画面から、アクセス権カテゴリーの[アプリ]を選択します(図8)。

図8 ユーザーや組織を選択して権限を設定
図8 ユーザーや組織を選択して権限を設定

 [アプリのアクセス権]画面では、組織もしくはユーザー単位でどのような操作が可能かを設定します。[ユーザーを追加]と表示された検索窓から、ユーザーや組織を検索/指定できます。

 今回は、「情報システム部」を検索して選択し、[許可する操作]のレコード閲覧・追加・編集のチェックボックスを図8のように設定しました。削除はさせたくないなど、特定のアクションを制限する場合は該当のアクションのチェックを外してください。今回は情報システム部のメンバーはレコードの閲覧/追加/編集/削除が可能な設定にしています。[保存]ボタンをクリックして設定を完了します。

【補足】権限設定の特別なユーザー

 Everyoneとアプリ作成者は権限設定の際に利用する特別なユーザーです。

 [Everyone]は自社のkintone環境上に作成した全ユーザーを表します。先に設定した情報システム部以外を対象に権限を指定する場合にはこちらを使いましょう。権限のチェックボックスを全て外したので、これによって情報システム部メンバー以外はデータ閲覧や編集ができないように制御されます。

 [アプリ作成者]は該当のアプリを作成したユーザーです。デフォルトでアプリの管理権限など全てが付与された状態になります。

 なお、情報システム部のメンバーもEveryoneに該当しますが、1人のユーザーに対して複数のアクセス権設定がある場合には、上の行に設定した権限制御が優先されます。よって、この例であれば、情報システム部のメンバーは閲覧・新規追加・編集の操作が全て可能となります。

レコード単位のアクセス権限を設定する

 [レコードのアクセス権]を利用することで、特定の条件に合致したレコードに対してのみ閲覧、編集を制限するといったことも可能です。今回は、機密度の高いプロジェクトに関わるタスクは、情報システム部内でも特定のメンバーしか閲覧/編集ができないように制限してみます。

 これには、アプリの設定画面から、アクセス権設定の[レコード]をクリックします(図9)。

図9 レコードのアクセス権を選択
図9 レコードのアクセス権を選択

 [レコードのアクセス権]設定画面が表示されるので、[追加する]をクリックします(図10)。

図10 レコードのアクセス権を設定
図10 レコードのアクセス権を設定

 条件行が追加されるので、[関連プロジェクト]フィールドの値が「機密プロジェクト ◯◯開発」に等しい場合、という条件を指定します。

 画面右側には、条件に合致したレコードに対してどのユーザーがどんな権限を持つのかを指定します。この例であれば、[Everyone](全員)には権限がないが、「情報システム部 チームリーダー」の佐藤さんとタスク担当者だけは、データの閲覧や編集が可能という設定です。[保存]ボタンをクリックして設定を完了します。

フィールド単位のアクセス権を設定する

 アプリでの権限を制御できる最小単位は[フィールドのアクセス権]です。指定したフィールドは特定のユーザーや組織しかデータの閲覧や編集ができないようにします。フィールド単位のアクセス制御では、アプリ内の全レコードが対象となり、先のレコードのアクセス権のように条件によって変動する制御はできません(図11)。

図11 フィールドのアクセス権を設定
図11 フィールドのアクセス権を設定

 画面左側で権限を制御するフィールドを、画面右側でそのフィールドに誰がどのような権限を持つのかを、それぞれ設定します。この例であれば、[タスク内容]フィールドについては、「閲覧だけであれば、他の情報システム部メンバーも可能だが、編集はタスク担当者しかできない」という意味になります。[保存]―[アプリを更新]とクリックして、ここまでの設定を本番環境に反映します。

アクセス権の設定を確認

 それでは、どのようにアクセス権限が制御されているか、実際に動作を見てみましょう(図12)。

図12 アプリのアクセス権があるユーザー画面
図12 アプリのアクセス権があるユーザー画面

 [アプリのアクセス権]で、チームのタスク管理アプリへのアクセスは情報システム部の所属メンバーだけとなるように設定しました。結果、情報システム部所属の佐藤さんの利用画面では、確かに、図12のようにチームのタスク管理アプリが利用画面に表示されます。

 一方、情報システム部所属ではない加藤さんの利用画面を見てみると、アクセスが制限されているのでチームのタスク管理アプリ自体が画面に表示されていません(図13)。

図13 アプリのアクセス権がないユーザー画面
図13 アプリのアクセス権がないユーザー画面

 今度は、レコード一覧画面を見てみます。佐藤さんは機密プロジェクトを担当しているので、図14のように全体の5件のレコードが表示されています。

図14 佐藤さんの閲覧権限があるレコード一覧
図14 佐藤さんの閲覧権限があるレコード一覧

 一方、山田さんの利用画面では、図15のように同じレコード一覧を見ても、機密プロジェクトのレコードは表示されません。[レコードのアクセス権]で制御されているからです。

図15 閲覧権限が制御されている
図15 閲覧権限が制御されている

 最後に、「4月本部会資料作成」となっているタスクのレコード詳細を見てみましょう。タスク担当者である佐藤さんの画面では、図16のようにタスク内容の入力が可能になっています。

図16 担当者はタスク内容も編集可能
図16 担当者はタスク内容も編集可能

 一方、タスク担当者ではない山田さんが同じレコードの画面を見た場合は、[タスク内容]の欄は無効化されており、変更できません。[フィールドのアクセス権]で、担当者とレコードの作成者以外は編集が制限されているからです(図17)。

図17 山田さんはタスク内容が編集できないように制御されている
図17 山田さんはタスク内容が編集できないように制御されている

 このように、[アプリのアクセス権][レコードのアクセス権][フィールドのアクセス権]という3つの権限設定を組み合わせることで、同じシステムを利用していても役割などによって柔軟な制御が可能です。効率的な情報共有と、適切な権限制御をバランス良く両立できると理想的です。

通知機能の設定

 本稿後半では、通知機能について解説します。考え方は、アクセス権のそれと似ており、必要に応じて、以下の設定を組み合わせることができます。

  • [アプリの条件通知]:基本の通知設定。どのユーザーがどのようなユーザーアクション(データ新規登録や変更など)で通知を受領するかの設定
  • [レコードの条件通知]:データの値が設定した条件に合致した場合に、指定したユーザーや組織の所属ユーザーに通知する設定
  • [リマインダーの条件通知]:日付データを基に設定した日数前後で、指定したユーザーや組織の所属ユーザーに通知する設定

 通知そのものは、kintone画面上の通知はもちろん、メール通知、スマートフォンでのプッシュ通知などを通じて受け取ることができます。

グループ(ロール)を使ってユーザーをグルーピング

 今回は、役職によって通知を振り分けたいので、cybozu.com共通管理画面に再度アクセスして[グループ(ロール)]機能で役職者のグループを作成します。グループ(ロール)とは、組織以外――役職や役割、その他組織横断のチームなどの切り口で、ユーザーをグルーピングするための機能です。権限設定や通知先設定、コメントでのメンション先などを設定するために利用できます。

1. [グループ(ロール)]機能で役職を作成する

 左側のメニューから[グループ(ロール)]―[グループ(ロール)の追加]を選択します(図18)。

図18 グループ(ロール)を新規作成
図18 グループ(ロール)を新規作成

 [グループ(ロール)の追加]画面が表示されるので、グループ名に「部長」と入力して[保存]をクリックします(図19)。

図19 部長のグループ(ロール)を作成して保存
図19 部長のグループ(ロール)を作成して保存

2. 作成したグループ(ロール)にユーザーを追加する

 [グループ(ロール)の追加]画面で「部長」が追加されているので、その歯車マークをクリックして[メンバーの変更]を選択します(図20)。

図20 部長ロールにユーザーを追加
図20 部長ロールにユーザーを追加

 情報システム部のメンバーから山田さんを選択して、[追加]−[保存]とクリックすれば「部長」グループへの追加は完了です(図21)。

図21 ユーザーを選択して部長ロールに追加
図21 ユーザーを選択して部長ロールに追加

基本の通知設定:アプリの条件通知

 ロールを準備できたところで、ここからは具体的な通知の送信設定をしていきます。まずは[アプリの条件通知]からです。

1. [アプリの条件通知]の設定画面にアクセスする

 アプリ管理画面に戻って、通知カテゴリーから[アプリの条件通知]を選択します(図22)。

図22 [アプリの条件通知]設定にアクセス
図22 [アプリの条件通知]設定にアクセス

 アプリの通知設定は、デフォルトで図23の状態となっています。各レコードの作成者や更新者が、コメントが書き込まれた際に通知を受け取ります。

図23 アプリの条件通知のデフォルト設定
図23 アプリの条件通知のデフォルト設定

2. 通知設定を追加する

 全体を把握したいマネジャー層は、新規タスクの登録があれば通知を受け取りたいといったケースもあるでしょう。そのような場合には、[ユーザーを追加]から役職や個人を通知先に追加します(図24)。

図24 通知先を個人や役職などから指定
図24 通知先を個人や役職などから指定

 先ほど設定したグループの中から「部長」グループを選択して、[追加]ボタンをクリックします(図25)。

図25 各ユーザーや役職の通知要件に沿って設定
図25 各ユーザーや役職の通知要件に沿って設定

 図25のように「部長」グループ(ロール)が通知設定に加わります。新規タスクが登録されたときにだけ通知を受信し、その後のレコード編集やコメントが書き込まれた際の通知は不要なのであれば、図26のようにチェックを外してください。

図26 アプリの条件通知の設定完了イメージ
図26 アプリの条件通知の設定完了イメージ

 タスク内容は把握したいが、通知が多過ぎても確認が煩雑になり見逃しが発生しやすくなるので、このあたりのバランスを考えて設定するのがお勧めです。[保存]ボタンをクリックして[アプリの条件通知]の設定を完了します。

レコードの条件通知

 [レコードの条件通知]は、フィールドの値が指定した条件に合致した場合に、指定の文言で通知を発信する機能です。重要なデータが登録された場合や、作業が完了ステータスになったことなどを通知するのに活用できます。アプリ管理画面に戻って、通知カテゴリーから[レコードの条件通知]を選択します(図27)。

図27 レコードの条件通知を選択
図27 レコードの条件通知を選択

 ここでは急ぎのタスクが登録された際に、情報システム部全員に通知されるように設定します(図28)。

図28 通知の条件と送信先、通知内容を指定
図28 通知の条件と送信先、通知内容を指定

 [レコードの条件通知]画面が表示されるので、画面左の[追加する]をクリックして通知設定を進めていきます(注)。この例では、[タスク優先度]フィールドに「要緊急対応」が選択された場合に情報システム部門ユーザーに通知が送信されるように設定しています。通知の文言は、[通知内容]に「急ぎ対応が必要なタスクが登録されました。」と記入しました。画面右側には、通知を送信する先を指定しています。

 [保存]ボタンをクリックすれば、レコードの条件通知の設定は完了です。

注:通知設定を分かりやすくするため、アプリには[タスク優先度]を選択するドロップダウンフィールドを事前に追加しています。

リマインダーの条件通知

 [リマインダーの条件通知]は、レコードそれぞれに入力されている日付情報を使って、指定した日数前後でユーザーに通知を送る機能です。タスク管理アプリでは、期限が迫っていることや期限超過であることのリマインドを、タスク担当者やマネジャーに通知するなどの用途が考えられるでしょう。

 では実際に設定してみます。先ほどと同じようにアプリの設定画面から、今度は[リマインダーの条件通知]を選択します(図29)。

図29 リマインダーの条件通知を選択
図29 リマインダーの条件通知を選択

 [リマインダーの条件通知]画面が表示されるので、[追加する]をクリックし通知設定を進めます(図30)。

図30 通知のタイミングと通知先を指定
図30 通知のタイミングと通知先を指定

 画面左の[通知のタイミング]の項目で、プルダウンから対象とする日付フィールドを選択します。今回は[期限日]を選択して、期限日に入力されている日付から7日前の午前9時に、タスク担当者に選択されているユーザーに通知を送る設定を図30のように行いました。ちなみに、リマインダーの条件通知は10件まで設定できるので、14日前、7日前、前日など複数回リマインドすることも可能です。

図31 通知が発生する前提条件を設定
図31 通知が発生する前提条件を設定

 タスクが既に完了していた場合は通知も不要なので、その場合は、ステータスが「完了」以外の値の場合のみリマインダーの通知が送信がされるように設定します(図31)。

 これでリマインダーの通知含めた通知設定は完了です。[保存]−[アプリを更新]とクリックして、ここまでの設定を本番環境に反映します。

通知機能の動作を確認

 では、通知機能の使い勝手を確認してみましょう。設定した通知条件に合致するタスクデータが登録/更新された場合には、図32のようにユーザーに自動的に通知が送信されます。kintone上のどの画面を見ていても、ベルマークの通知アイコンをクリックするとこちらの通知一覧にアクセスできます。

図32 受信した通知一覧画面
図32 受信した通知一覧画面

 レコードの条件通知やリマインダーの通知も、こちらの通知画面でまとめて確認することができます。

図33 通知一覧から内容を連続して確認
図33 通知一覧から内容を連続して確認

 通知をクリックすると、該当のタスク内容詳細や関連ファイル、コメントなどを図33のように一覧形式で確認することができます。時系列に並んだ通知を消し込んでいく形で、連続して内容確認やコメントしていくことができるので、メールのインボックスのように仕事を処理していけます。

 ちなみに、一度確認した通知は既読状態になりますが、70日間は過去の通知も閲覧できます。また、既読の通知を未読状態に戻したり、フラグを付けたりすることも可能です。

 このように3つの通知設定を組み合わせることで、システムにいちいちアクセスせずとも、確認の必要がある情報が自動で集まってくる形にできます。現場のユーザーの、初期の活用度合いを上げるためにも活用したい機能です。

まとめ

 以上、チームのタスク管理アプリを作成する流れを通して、kintoneでのシステム開発で基本として押さえておきたい機能を解説しました。これらの機能を組み合わせれば、さまざまな業務に向けたシステムを開発できます。実現したい要件をどの機能を使って開発していけばいいか、ぜひ実際に手を動かして理解を深めていただけたらと思います。

 次回は、開発の進め方や、ベストプラクティスなどについて掘り下げます。実際の業務改善や、システム導入プロジェクトを円滑に進めるためのコツを紹介します。

筆者紹介

WINGSプロジェクト 木戸裕一郎

米国で大学卒業後にサイボウズに入社し国内営業、海外ビジネス開発を経験し9年間勤務。その後ITコンサルティング会社を起業、kintoneやGoogle Maps Platform、HubSpotなどのツールを活用したシステム開発やコンサルティング業務に携わっている。

WINGSプロジェクト

有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティー(代表山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手掛ける。2021年10月時点での登録メンバーは55人で、現在も執筆メンバーを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。

サーバーサイド技術の学び舎 - WINGS(https://wings.msn.to/
RSS(https://wings.msn.to/contents/rss.php
X: @WingsPro_info(https://x.com/WingsPro_info
Facebook(https://www.facebook.com/WINGSProject


Copyright © ITmedia, Inc. All Rights Reserved.