LoginSignup
23
18

Power Platformのセキュリティロールについて

Last updated at Posted at 2023-04-08

今回はセキュリティ管理で気になる、セキュリティロールについて書きます。

そもそもセキュリティロールとは?

セキュリティロールとは、役割(ロール)ベースのセキュリティ定義です。
もしくは、ユーザーに付与する操作(CRUD)権限がグループ化されたものです。

セキュリティロールをユーザーに割り当てることで、ユーザーはセキュリティロールに付与されている権限に応じた操作を行うことができるようになります。

  • ユーザーは複数のセキュリティロールを所有することが可能(その場合、権利は和集合的に割り当たる)
  • Azure Active Directory セキュリティグループとは別の仕組み
  • Azure Active Directoryのグループと連携させることも可能

列ごとの権限設定については以下の記事に設定方法を書いています。

環境ごとの制御レベル

環境内に Dataverse があるかないかで、セキュリティの制御レベルが変わります。
①環境、②リソース、③(Dataverse 有の場合)Dataverseに対して制御を設定することができます。

image.png

環境内に Dataverse ができると、Dataverse セキュリティロールが環境内のセキュリティ制御を引き継ぎます。
つまり、Dataverse有の環境の方がより細かな権限管理が可能です。

定義済みのセキュリティロール

それぞれの環境に対して、規定でいくつかのセキュリティロールが定義されています。
既定ではそれぞれのセキュリティロールは以下の表のように権限を持ちますが、設定変更することが可能です。

システム管理者ロール, Basic Userロールは設定変更できません。
システム管理者ロールはすべてに対して権限を持つ一つのロールであり、特別です。
環境には必ず、一人以上にシステム管理者ロールを割り当てる必要があります。

image.png
image.png

おすすめは、すでにあるこれらのセキュリティロールをコピーして新しいロール(カスタムロール)を作成し、楽してロールを定義することです。
セキュリティロールの設定方法

リソース権限

各セキュリティロールが既定で作成できるリソースは以下のようになっています。

リソース\ ロール 環境作成者 環境管理者 システムカスタマイザー システム管理者
キャンバスアプリ
モデル駆動型アプリ -
クラウドフロー 〇(ソリューション非対応) 〇(ソリューション対応)
デスクトップフロー - -
コネクタ -
データ ゲートウェイ -
データフロー -
Dataverse テーブル - -
つながり(接続) -
ソリューションフレームワーク -
AI Builder - -
環境の詳細設定 - -
PPF管理センターの操作 自分の作成した環境のみ可能 自分の作成した環境のみ可能 自分の作成した環境のみ可能

Dataverseに対する操作

操作\ ロール Basic User 環境作成者 システムカスタマイザー システム管理者
データ作成 一部テーブルのみ -
データ更新 自分のデータのみ - ほとんど〇(※1)
データ参照 自分のデータのみ - ほとんど〇(※1)
データ削除 自分のデータのみ - ほとんど〇(※1)
テーブル作成・編集 自分のデータのみ - -

※1 標準テーブルでは自分の作成したデータに対して更新/参照/削除ができ、カスタムテーブルにはフルコントロールを持ちます。

環境自体にアクセスする(画面右上に環境を表示する)には、以下のいずれかが必要です。

  • システム管理者
  • システムカスタマイザー
  • 環境作成者
  • 対象の環境内のアプリの所有者であること 

より細かいことは以下をご参照ください。

セキュリティロールの設定概要

定義済みセキュリティロールはあくまでもモデル的なロールであって、
カスタムロールを設定することで、より細かい権限設定をしていくこともできます。

セキュリティロールで設定するときに抑えておくものは2つです。
特権は、許可するアクション種類で、8種類存在します。
アクセスレベルは4種類存在し、どの範囲のユーザーに許可するのかを制御します。

この2つは各テーブル単位で設定が可能です。これを組み合わせることによってかなり細かい設定をすることができます。

image.png

アクセスレベル詳細

アクセスレベルについては、わかりづらいので図と一緒に一つずつ説明します。

重要なのはそのレコードの所有者に対するアクセス者の所属位置です。
以下のように、緑を「所有者」として、紫を権限を許可される「アクセス可能者」として定義して図で確認してみましょう。

組織全体

組織全体に許可するので、全レコードが全ユーザーに権限許可されます。
image.png

部署配下

同じ部署配下の人にのみ許可します。
image.png

部署

同じ部署の人にのみ許可します。
image.png

ユーザー

自分自身のレコードのみ許可します。

なし

いかなるレコードも権限を与えません。

セキュリティロールの設定方法

Power Platform管理センターから行います。
(「aka.ms/ppac」をアドレスバーに入力、もしくは、開発ページの[⚙]>[管理センター]からアクセス)

今回、設定したい環境を選択します。
image.png

環境の詳細画面で[アクセス]>[セキュリティロール すべて表示]をクリックします。
image.png

セキュリティロールの一覧が表示されます。
セキュリティロールを設定するには、以下の3通りがあります。
①全く新しくセキュリティロールを作る
②定義済みのセキュリティロールを編集する
③定義済みのセキュリティロールをコピーしてカスタマイズする

image.png

基本的に、「Basic Userユーザー」をコピーし、カスタムロールとしてアクセスレベルや特権の設定を行っていくのが良いとされています。

Basic Userユーザー:環境内でアプリを実行して、自分が作成したテーブルに対する作成、読み取り、書き込み、削除を実行できる

今回は「コピー」で作っていきます。
「Basic Userユーザー」の三点リーダー[...]>[コピー]をクリックします。
セキュリティロールの名前を付け、[コピー]ボタンをクリックします。
image.png

作成されたロールをクリックします。

こちらで具体的にテーブルや権利を設定していきます。
右上で該当のテーブル名で検索をし、それぞれの特権に対してアクセスレベルを設定していきます。
image.png

基本的な操作は以下の通りです。
image.png

実際にどのように作っていくかについては、アプリ実装者と話して、決めていきましょう。

補足:部署の考え方

  • Power Platformでは、Azure Active Directory とは別にユーザー情報を管理
  • ユーザー情報は「ユーザー」テーブルに格納
  • ユーザーは必ず一つの部署に所属(ユーザーが複数の部署に所属することはできない)
  • 部署はルート部署(組織)を基点に階層構造

まとめ

今回はセキュリティ管理で気になる、セキュリティロールについて書きました。
Dataverse環境だと特に細かく設定できますので、ぜひアプリやフローなどを組織で利用する際、参考にしてください。

23
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
18