Cloud Security

Microsoft Dataverse - アクセスを制御する

2021年9月6日

自分
自分
SharePoint Listsを利用すると、SharePoint Online のサイトごとに設定した権限や、アプリごとに設定した権限によって、閲覧できるデータの範囲が変わります。 そのため、部署ごとに閲覧範囲を変えることは出来ないものになります。 より細かに設定する方法を Microsoft Dataverse を利用した設定方法を記載します

サイトやアプリの管理者は、すべてのデータを参照可能。ユーザーは自分だけのデータを参照可能 という設定は、Dataverseを利用しなくても設定可能です。

アクセス制御 事前準備

事前準備として、最低3つ必要になります。
一番のハードルは、有償ライセンスかと思いますが重要な作業は[権限 の プランニング]になります。
細かくしすぎることで、管理が大変に。大雑把だとセキュリティが・・・将来の運用も考えて慎重にご判断してください

  1. Microsoft Dataverseの利用が必須となります
  2. ユーザー全員分の有償ライセンスが必要になります
  3. どのような権限管理を実装するかのプランニング

実現するアクセス制御

PowerAppsを利用していく中で、自分のデータだけ見せたい。一部利用者には部下のデータも見せたい。といった用途が生まれると考え以下制限を実装します

  1. 部署ごとに閲覧できる範囲を変える
  2. 部門長 / 部門配下ユーザー によって閲覧できる範囲を変える

想定した組織構成

1.営業部 の 管理者 営業部配下の利用者の全データを閲覧可能
2.営業部配下 の 利用者 自身のデータのみ閲覧可能
3.販売部 の 管理者 販売部配下の利用者の全データを閲覧可能
4.販売部配下 の 利用者 自身のデータのみ閲覧可能

 

制御の設定手順

設定手順を6つに分けて記載していきます。

手順1:環境作成方法

  1. 環境を作成するため、Power Platform 管理センター (https://admin.powerplatform.microsoft.com/environments) にアクセスし [環境] > [+ 新規] をクリックします。
  2. 任意の名前を作成し、種類にて “試用 (サブスクリプションベース)” を選択し、[次へ] をクリックします。

  3. [Dynamics 365 アプリを有効にする] のスイッチ コントロールを “はい” にし、[保存] をクリックします。

手順2:部署の作成手順

  1. 使用する環境にて部署を作成するため、Power Platform 管理センター より、[環境] > [任意の環境] > [設定] の順にクリックします。

  2. [ユーザーとアクセス許可] をクリックし、ドロップ ダウンリストより [部署] を選択します。


  3. [新規] をクリックし、任意の部署を作成後 [保存して閉じる] をクリックします。
    • 追加前


    • 追加後

手順3:セキュリティ ロールの作成

  1. Power Platform 管理センターより [環境] > [任意の環境] > [設定] の順にクリックします。

  2. [ユーザーとアクセス許可] をクリックし、ドロップ ダウンリストより [セキュリティ ロール] を選択します。


  3. 作成した部署ごとのセキュリティ ロールをカスタマイズするため、部署を切り替えた後、既定で用意されている “営業担当者” のセキュリティーロールを二つコピーし、任意の名前で作成します。
    • 切り替え
    • セキュリティ ロールのコピー
    • セキュリティ ロールの作成 – コピー時
    • セキュリティ ロールの作成 – 追加後
  4. 手順3の項番2-3を繰り返し、他の部署も同じ要領でセキュリティ ロール のコピー/作成を行います。
    • 全て追加後

手順4:ユーザーの追加方法

  1. Power Platform 管理センターより、[環境] > [任意の環境] > [設定] の順にクリックします。

  2.  [ユーザーとアクセス許可] をクリックし、ドロップ ダウンリストより [ユーザー] を選択します。


  3. [+ ユーザーの追加] をクリックし、使用するユーザーを追加します。


  4. セキュリティ ロールはそれぞれ “Basic User” で割り当てます。
    ※ 後のほど、それぞれのセキュリティー ロールを変更します。
  5. ユーザーが追加されたことを確認します。

手順5:ユーザーの部署割り当て方法

  1. ユーザーを選択し、Dynamics 365 に画面遷移します。
    • ユーザー選択画面
      Dynamics 365-ユーザー選択画面
    • クリック後の Dynamics 365 画面
      ユーザー選択後の画面
  2. 画面上部の [部署の変更] をクリックします。
    [部署の変更]

  3. 検索ボタンより、以下の内容でそれぞれ任意の部署に変更します。
    部署設定は、上部の[想定した構成]をご参照ください。
    部署設定

  4. 部署およびユーザーに応じたセキュリティ ロールに変更するため、画面上部の [ロールの管理] をクリックし、それぞれ以下の内容で設定します。
    ロール設定は、上部の[想定した構成]をご参照ください。
    部署およびユーザーに応じたセキュリティ ロールに変更するため、[ロールの管理]を進める

  5. [OK] をクリック後、画面右下の保存アイコンにて保存をします。
    ロール変更に保存を押す

手順6:セキュリティ ロールのカスタマイズ方法

  1. セキュリティ ロールをカスタマイズするため、Power Platform 管理センター より、[環境] > [任意の環境] > [設定] の順にクリックします。

  2. [ユーザーとアクセス許可] をクリックし、ドロップ ダウンリストより [セキュリティ ロール] を選択します。

  3. 部署を切り替えた後、カスタマイズする 任意のセキュリティ  ロールを選択します。
    カスタマイズしたセキュリティロールをクリック

  4. [編集] をクリックします。
    セキュリティロールの編集

  5. 検証するためのテーブル “取引先企業” の権限を設定権限の変更を行うため、 [コア レコード] タブを選択後、“取引先企業” を何回かクリックし、キーの設定を “ユーザー” に変更します。
    • 変更前
      権限変更前
      変更後
      ユーザー用のセキュリティー ロールは “ユーザー”を設定し [保存して閉じる] をクリックします。
      権限変更後
  6. 同じ要領で、他のセキュリティ ロール の権限もカスタマイズします。
    管理者用のセキュリティ ロールは “部署配下” を設定します。
    その他セキュリティロールの権限を変更

  7. 部署 “営業部” を設定後、“販売部” のセキュリティ ロールも変更します。

設定してみて感じたこと

ユーザーごとにロールを割り当てる必要があるのは、面倒ですが今回の設定を行うことでデータの閲覧権限を制御することが出来るため、オススメの設定手順となります。疑問を検索して私のサイトにたどり着いた方は、ぜひ設定してみてください。設定した瞬間に全ユーザーに適用される制御ではないので、設定に対するハードルは低いと思います。
動作イメージつかないし。設定したくないなぁ。という方は、以下の動作確認をご参考にして頂き、ぜひ設定への一歩を踏み出してください。

 

実際の動作確認

結果:管理者は自部門のレコードが参照可能

結果:部門配下のユーザーは、自身のレコードのみ参照可能

  1. “管理者ユーザー” にて、既定で用意されているモデル駆動型アプリにアクセスするため、Power Platform 管理センターより、[環境] > [任意の環境] をクリックします。
    設定後の動作確認1
  2. 詳細項目の 環境 URL をクリックします。
    設定後の動作確認2

  3. “Dynamics 365 ― custom” を選択します。
    設定後の動作確認3

  4. 顧客項目の “取引先企業” を選択し、[+新規] よりレコードを作成し、[保存して閉じる] をクリックします。
    設定後の動作確認4
    • 登録時
      設定後の動作確認4-登録時
    • 登録後
      設定後の動作確認4-登録後
  5. 画面上部の “Dynamics 365 ― custom” をクリックし、アプリ選択画面に戻ります。
    設定後の動作確認5

  6. [・・・] > [すべてのロールに対して表示] をクリックします。
    ※ この操作により、環境内のそれぞれのユーザーにアプリが展開されます。
    • クリック前
      設定後の動作確認6-クリック
    • クリック後
      設定後の動作確認6-クリック後
  7. 任意の “部署の管理者” ユーザー にて、既定で用意されているモデル駆動型アプリにアクセスするため、環境URLにアクセス/サインインします。
    ※ 環境 URL は手順2. にてアクセスしたURLと同じものでアクセスします。
    設定後の動作確認7

  8. アクセスできたことを確認します。
    設定後の動作確認8
  9. “取引先企業” を選択し、手順2. にて管理者ユーザーが登録したレコード “システム管理者が登録した企業” が表示されないことを確認し、新規でレコードを追加します。

    • レコード追加前
      設定後の動作確認9-レコード追加前
    • レコード追加後
      設定後の動作確認9-レコード追加後
  10. 上記7~8の手順にて、別の任意の部署の管理者でモデル駆動型アプリにアクセスし、上記手順まで登録したレコードが表示されないことを確認します。
    設定後の動作確認10

  11. 新規でレコードを作成します。

  12. 販売部配下のユーザー にてモデル駆動型アプリにアクセスし、任意の部署の管理者が作成したレコードを確認できないことを確認します。

  13. 販売部配下のユーザー にて新規レコードを作成します。

  14. 販売部 管理者にて、配下ユーザーのレコードを確認できること、他部署のレコードを確認できないことを確認します。

全体管理者 / システム管理者 の画面では以下のように全てのレコードを閲覧できるようになっております。
設定後の動作確認-結果

 

まとめ

いかがでしたか? 手順が長く、読むのも大変だったと思いますが最後まで閲覧ありがとうございます。
有償ライセンスが必要になりますが、悩みが解決できるのではないでしょうか。
手順は画像を張る形でイメージしやすく記載させてもらっていますので、なんとなく作業イメージを付けていただけたかと思います。
設定してしまえば便利なので、体温記録や在庫記録、出退勤管理などをPowerAppsで作成されたときには、ぜひ設定してみてください。

 

-Cloud Security