Common Data Service では、ロールベースのセキュリティ モデルを使用して、データベースへのアクセスをセキュリティで保護します。 このトピックでは、アプリのセキュリティ保護に必要なセキュリティ アーティファクトを作成する方法を説明します。 これらのユーザー ロールは、データへの実行時アクセスを制御するもので、環境管理者や環境作成者を管理する環境ロールとは別のものです。 環境の概要については、「Environments overview (環境の概要)」を参照してください。

アプリのユーザーがこれらのエンティティへのアクセスでどのレベルを必要としているかを理解することが重要です。 Common Data Service では、エンティティに対する作成、読み取り、更新、削除 (CRUD) のアクセス許可をサポートしています。

  • 作成 - ユーザーはエンティティに新しいエントリを作成できます。
  • 読み取り - ユーザーはエンティティの既存のエントリを表示および検索できます。
  • 更新 - ユーザーはエンティティの既存のエントリを更新または編集できます。
  • 削除 - ユーザーはエンティティの既存のエントリを削除できます。

最もよく使用される 2 つのアクセス許可レベルは、読み取り専用アクセスとフル アクセスです。 Common Data Service には、すべてのエンティティに対する、これら 2 つのアクセス許可レベルでのアクセス許可セットが含まれています。 表示アクセス許可セットは、エンティティへの読み取りアクセスを提供します。 管理アクセス許可セットは、エンティティへのフル アクセスを提供します。

このセキュリティ モデルでは、これらのアクセス許可の任意の組み合わせをユーザー ロールに割り当てることができます。 ロールでは、ロールに追加されたすべてのアクセス許可セットで付与されるさまざまなアクセス許可が組み合わされます。 したがって、ロールのメンバーは、そのロールに含まれるアクセス許可セットがアクセスを許可するすべてのデータにアクセスできます。 Common Data Service セキュリティ モデルの詳細については、「Security model (セキュリティ モデル)」を参照してください。

エンティティの識別

アプリに正しいアクセス制御を構成するには、アプリで使用されるエンティティを把握する必要があります。 アプリで使用されるエンティティの一覧を表示するには、次の手順に従います。

  1. Microsoft PowerApps Studio でアプリを開きます。
  2. [コンテンツ] タブで、[データ ソース] をクリックまたはタップします。 右側のウィンドウに、データ ソースの一覧が表示されます。

セキュリティの構成

新しいエンティティを作成する際は、そのエンティティのデータへのアクセスを提供するために、新しいアクセス許可セットを作成するか、既存のアクセス許可セットを編集する必要もあります。 アプリを作成する場合は、そのアプリの実行に必要なすべてのエンティティへのアクセスを提供するアクセス許可セットも作成することをお勧めします。 セキュリティは管理センターで管理されます。

  1. 管理センターを開きます。
  2. データベースを含む環境をクリックまたはタップします。
  3. [セキュリティ] をクリックまたはタップします。 [アクセス許可セット] タブと [ユーザー ロール] タブを使用して、データベースのセキュリティを構成できます。

アクセス許可セットの作成

新しいアプリへのアクセスを有効にするには、最初に新しいアクセス許可セットを作成する必要があります。

  1. [アクセス許可セット] をクリックまたはタップします。
  2. [新しいアクセス許可セット] をクリックまたはタップして、アクセス許可セットを作成します。
  3. アクセス許可セットの名前と説明を入力し、[作成] をタップまたはクリックします。 新しいアクセス許可セットがアクセス許可セットの一覧に表示されます。
  4. 作成したアクセス許可セットをクリックまたはタップします。
  5. [エンティティ] タブをクリックまたはタップします。 [エンティティ] タブには、データベース内のすべてのエンティティの一覧が表示されています。 アプリで使用される各エンティティについて、許可するアクセス許可のチェック ボックスをオンにします。
  6. [Save] (保存) をクリックまたはタップします。

ポリシーの作成 (Technical Preview)

エンティティ内のレコードへのアクセスを有効化または制限するには、最初にポリシーを作成する必要があります。

  1. [ポリシー] をクリックまたはタップします。
  2. [新しいポリシー] をクリックまたはタップします。
  3. ポリシーの名前と説明を入力します。
  4. 作成するポリシーの種類を選択します。 候補リストのポリシーを作成する場合は、使用する候補リストを入力します。
  5. 使用する演算子を選択します。
  6. 照合するポリシーの値を選択します。
  7. [作成] をクリックまたはタップします。

ポリシーの割り当て (Technical Preview)

ポリシーを適用するには、アクセス許可セットのデータ エンティティにポリシーを割り当てる必要があります。

  1. [アクセス許可セット] をクリックまたはタップします。
  2. ポリシーを割り当てるアクセス許可セットをクリックまたはタップします。
  3. ポリシーを割り当てるエンティティの [編集] ボタンをクリックまたはタップします。
  4. [ポリシーの割り当て] セクションを展開します。
  5. ポリシーを適用するデータ操作 ([作成][読み取り][更新]、または [削除]) を選択します。
  6. ポリシーの基になるエンティティ フィールドを選択します。
  7. 割り当てるポリシーを選択します。
  8. [割り当て] をクリックまたはタップします。
  9. [Save] (保存) をクリックまたはタップします。

ロールの作成と割り当て

アクセス許可セットに正しいアクセス許可が追加された後、ユーザーに割り当てることのできるロールを作成できます。

  1. [ユーザー ロール] をクリックまたはタップします。
  2. [新しいロール] をクリックまたはタップします。
  3. ロールの名前と説明を入力し、[作成] をクリックまたはタップします。 新しいロールが [ユーザー] ロール一覧に表示されます。
  4. 作成したロールをクリックまたはタップします。
  5. [アクセス許可セット] タブをクリックまたはタップします。
  6. 先ほど作成したアクセス許可セットの名前を入力します。 入力時に表示されるドロップダウン リストで、アクセス許可セットをクリックまたはタップしてロールに追加します。 ロールに必要なすべてのアクセス許可セットに対して、この手順を繰り返します。
  7. ロールの [ユーザー] タブをクリックまたはタップします。
  8. ロールに追加するユーザーまたはグループの名前または電子メール アドレスを入力します。 入力時に表示されるドロップダウン リストで、ユーザーをクリックまたはタップします。 ロールが割り当てられるユーザーまたはグループが一覧に追加されます。
  9. [Save] (保存) をクリックまたはタップします。

これで、このロールのユーザーまたはグループは、ロールに関連付けられたアクセス許可セットによってアクセスが許可されるデータにアクセスできるようになりました。 ユーザーがデータベースのデータを使用するには、セキュリティ ロールと、データを使用する PowerApps アプリへのアクセスが必要です。

アクセス許可セットとロールの編集

作成したロールとアクセス許可セットを編集するには、[編集] ボタンをクリックします。

ロールまたはアクセス許可セットを削除するには、[削除] ボタンを使用します。

すぐに使用できるセキュリティ ロール

すぐに使用できるセキュリティ ロールは 2 つ用意されています。

  • データベースの所有者 - データベースの所有者ロールは、管理担当のユーザー向けです。 環境の作成者は、自動的にこのロールに割り当てられます。 このロールのユーザーは常に、データベースのすべてのエンティティへのフル アクセス権があり、 追加された新しいエンティティに対してもフル アクセス権を持ちます。 このロールのユーザーは、データベースのエンティティ スキーマを作成および編集することもできます。 このロールにアクセス許可セットを追加する必要はなく、 ユーザーを割り当てるだけで済みます。
  • 組織のユーザー - 組織のユーザー ロールは、すべてのユーザーに割り当てられる既定のロールです。 このロールの目的は、すべてのユーザーがパブリック データを含むエンティティにアクセスできるようにすることです。 アプリが制限モードで共有されている場合、アプリで使用されるエンティティはこのロールに含まれている必要があります。 組織のすべてのユーザーには既にこのロールが割り当てられているので、このロールを割り当てる必要はありません。 必要なのは、組織全体に付与するアクセス許可セットの追加のみです。