メインコンテンツまでスキップ

ロールによる機能制御

企業システムでは、ほとんどのケースで、ログインユーザの権限レベルに応じたセキュリティコントロールが必要となります。

Hexabase では、ユーザー・グループ・ロールの設定に従って、API の戻り値が自動的にフィルタされます。

※アイテムの閲覧制御は、アクセスキーでおこないます。

ロールとは

「ロール」は、 アプリケーション内の各機能(データベース、フィールド、アクションなど)に対する権限を設定する対象です。Hexabase では、機能ごとに、利用できるロールを割り当てていきます。

ユーザー・グループは、ロールを付与ことで、その機能を利用できます。

1つのアプリケーション内には、複数のロールをいくつでも作成できます。デフォルトでは「admin」「member」という 2 つのロールが定義されています。admin ロール(ID:ADMIN)は削除・変更できません。

ロール

※Tips:ロールの数に制限はありませんが、最小限となるようシンプルにすることがポイントです。細かく分けすぎると設定が複雑になり、設定工数・管理コストが膨大になり、かえってセキュアでないコントロール不能なシステムとなる可能性が高くなります。

ユーザー・グループ・ロールの関係

ユーザーとグループは、ワークスペースに属しており、ロールはアプリケーションに属しています。Hexabase のシステム開発では、アプリケーションの各機能で、ロールに利用可否を設定し、ユーザーとグループにロールを付与します。

ユーザー・グループ・ロールの関係

ユーザ・グループへのロールの付与

ロールを割り当てる方法は、次の2つがあります。

  • アプリケーションの設定で、ユーザに直接ロールを付与する
  • ワークスペースの設定で、グループにロールを付与する

アプリケーションの設定で、ユーザに直接ロールを付与する

  1. アプリケーションの設定 > ロールと参加ユーザーの設定を選択
  2. 付与先のロールを選択
  3. ロールを付与したいユーザーを選択

ユーザにロールを付与する

ワークスペースの設定で、グループにロールを付与する

  1. ワークスペースの設定 > グループ設定
  2. グループを選択
  3. ロールタブを選択
  4. グループに割り当てるロールをオンにする

グループにロールを付与する

2番目以降のアプリケーションロールをグループに付与する

ワークスペースを作成したとき、同時にアプリケーションが1つ作成されます。このアプリケーションのmemberロールは、ワークスペースのTopグループに自動的に付与されます。

2番目以降に作成したアプリケーションは、adminとmemberというロールを持ちますが、いずれもワークスペースのグループには付与されていません。

2番目以降にアプリケーションを作成した場合は、グループとユーザーにアプリケーションのロールを付与する必要があります。

グループへのロール付与と継承

グループにロールを付与すると、下位グループまでロールが継承されます。 デフォルトでは、最上位の「ワークスペース」グループに members ロールが付与されています。

グループへのロール付与と継承

グループに付与・継承されたロールは、ワークスペース設定の「グループ設定」で確認できます。

継承されたロールの確認方法

ロールを割り当てできる機能

主に次の機能で、ロールによる権限制御が可能です。

識別対象動作権限がない場合の挙動
データベース(datastore)データベースへのアクセスAPI 結果で該当データベースが取得されない。
REST URL 内に display_id を指定した場合は権限エラーになる。
フィールドフィールドの表示・非表示アイテム一覧や詳細などの API の結果に、該当フィールドが含まれない。
データレポート API の結果に、参照しているフィールドが含まれない。
アクションアクション一覧への表示・非表示アクション一覧 JSON に含まれない。
該当アクションが見つからないエラーとなる。
データレポートデータレポートへのアクセスAPI 結果で該当データレポートが取得できない。
チャート(ダッシュボード)チャートデータへのアクセス同上

ロールによる利用可否の指定

各機能では、次の画面でロールを指定できます。

データベースの権限設定

  • データベースの設定 > 権限の設定

データベースの権限設定

フィールドへの権限設定

フィールドにロールを指定することで、次のような利用が可能になります。

  • 管理者のみ表示されるフィールド
  • 発注元メンバーは閲覧・更新できるが、外注先メンバーからは閲覧できないフィールド
  • 社内メンバーは閲覧できるが、顧客は閲覧できないフィールド
  • 承認者にのみ表示されるフィールド

ロールを指定する方法

  1. アイテム詳細画面を表示
  2. 項目を編集・追加する
  3. ロールを指定したいフィールドの設定ボタンを追加
  4. 画面項目設定 > 権限の設定

フィールドへの権限設定

※ アイテムの閲覧制御は、アクセスキーが利用できます。

アクションへの権限設定

アクションにロールを指定することで、次のように特定のロールだけアイテムを操作できるようになります。

想定される利用シーン

  • 部長ロールを持つ人のみ「承認」できる
  • システム管理者のみ「削除」できる
  • 発注担当のみ「発注」できる

アクションにロールを割り当てる

※Tips:ステータスとアクションの関係を整理するには、ステータスチャートで権限のマトリックスを記述するのが有効です。

ロールを指定する方法

  1. アイテム詳細画面を表示
  2. メニューの設定
  3. 「誰がこのメニューを利用しますか?」

アクションへの権限設定

データレポートの権限設定

  • データレポート出力条件の設定 > 権限の設定

データベースの権限設定

ダッシュボードの権限設定

-ダッシュボードの編集

ダッシュボードの権限設定

API によるロールの制御

API を利用してロール付与などが可能です。

詳しくは、Hexabase API リファレンスを参照ください。

アプリケーション > ロール関連 API

  • GetRoleUsers:ロールをもつユーザーの取得
  • AddRoleToUser:ユーザーへロール付与
  • RemoveRoleFromUser:ユーザからロールを削除
  • UpdateGroupRoles:グループロール更新
  • AddGroupRoles:グループロール追加

API の利用例

アイテムの詳細情報を取得

GetItemDetails API

アイテム詳細情報(フィールド、ステータス、アクションなど)を取得。ログインユーザーがアクセスできる情報だけを返す

GET https://api.hexabase.com/api/v0/applications/TestApp/datastores/TODO-SAMPLE/アイテムs/details/:アイテム-id

アイテムの詳細情報を取得

アイテム表示画面の実装

API で取得した情報をもとにして、システム要求に対応した自由な実装が可能です。

たとえば、以下の画面のように、同じ構造でも異なるデザインで実装できます。

※Tips:Hexabase のデータ構造や制御システムを理解した上で画面設計を行うと、無理なく API を活用でき、開発工程がスムーズに進みます。

アイテム画面を実装