ロールによる機能制御

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

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

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

ロールとは

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

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

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

ロール

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

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

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

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

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

ロールを割り当てる方法は、次の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

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

GET https://api.hexabase.com/api/v0/applications/TestApp/datastores/TODO-SAMPLE/アイテムs/details/:アイテム-id
アイテムの詳細情報を取得

アイテム表示画面の実装

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

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

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

アイテム画面を実装