次の方法で共有


Dataverse for Microsoft Teams のテーブルへのアクセス許可の付与

Power Apps を構築する際の重要な考慮事項の 1 つは、データ セキュリティです。 アプリは重要なビジネス プロセスを推進するものであり、ユーザーが機密情報を閲覧したり、アクセスすべきでないレコードを削除したりすると、ビジネスを混乱させる可能性があります。

たとえば、機密性の高い顧客データを含むアプリがある場合、データへの不正アクセスにより、会社をプライバシーに関する法律への準拠という危険にさらす可能性があります。

「アプリ内の機密データへのアクセスを隠すだけだ」と思うかもしれません。ただし、基になるデータ ソースがユーザーと共有されている場合、ユーザーは引き続きデータにアクセスしたり、データ ソース上に新しいアプリを構築したりして、制限されたレコードにアクセスすることができます。

Dataverse for Teams を使用して Teams に Power Apps を構築する利点の 1 つは、Teams でのセキュリティ ロール所有者、メンバー、ゲスト、アプリ ユーザーなど、をマップする特定のビジネス ニーズにテーブル アクセス許可を設定することができることです。

たとえば、ユーザーが所有するレコードに対してのみ変更できるテーブルがある場合、Dataverse for Teams には、ユーザーが所有するレコードのみを編集できる 共同作業 というテーブルのアクセス許可があります。 この記事では、Dataverse for Teams のテーブル アクセス許可を確認し、それらを使用して重要なビジネス アプリケーションを保護する方法について説明します。

注意

現在、テーブル アクセス許可を編集できるのはチームの所有者だけです。

このビデオでは、テーブルのアクセス許可の構成方法について説明します:

チーム ロールについて

Teams で使用するアプリとデータへのアクセス許可は、Teams チームの次のロールに基づいています。

  • 所有者 - 所有者ロールを持つチーム メンバー。 これには、チームの作成者と、別のユーザーから所有者ロールを付与されたユーザーが含まれます。 所有者は、チーム内のアプリで使用されているデータにフル アクセスできます。
  • メンバー - 所有者ではないチーム メンバー。 既定では、チーム メンバーは所有者のようにフル アクセスできますが、チーム メンバーのアクセス許可を変更することもできます。 メンバーが特定のテーブルを編集できないように制限することもできます。
  • ゲスト - ゲストとは、チームに追加された組織外のユーザーです。 既定では、ゲストはレコードを作成できますが、他のユーザーが作成したレコードを表示できません。
  • アクセス許可を持つ同僚: Power Apps for Teams では、メンバーがアプリを構築した Teams チームに所属する必要のない Azure AD セキュリティ グループとアプリを共有できます。 これにより、特定のチームにユーザーを追加しなくてもアプリケーションにユーザーを追加でき、「幅広い配布」シナリオを開きます。 たとえば、組織内のすべての会計士、またはその組織内のすべての従業員に対して有効なアプリを構築することができます。

テーブルのアクセス許可を解釈する

テーブルにセキュリティを割り当てる場合、割り当てることができるアクセス許可は次のとおりです:

  • フル アクセス – エンド ユーザーがテーブル内のすべてのレコードを表示および編集できるように許可します。
  • 共同作業 – エンド ユーザーがすべてのレコードを表示して、新しいレコードを作成できるようにします。 ただし、編集または削除できるのは自分のレコードのみです。 共同作業を使用する場合の例としては、Ideas the Perspectives アプリの「賛成票」があります。 アプリの各ユーザーは、他のユーザーの賛成票を表示することができます。 ただし、自分以外のユーザーの投票を変更することはできません。
  • 参照 – データの読み取り専用ビューを提供します。 ユーザーは、レコードを作成、編集、または削除することはできません。 たとえば、Bulletin アプリで、ユーザーに Bulletin レコードの閲覧は許可しても編集は許可しない場合は、Bulletin テーブルに参照権限を付与します。
  • 非公開 – ユーザーは新しいレコードを作成できます。 また、表示、編集、または削除できるのは自分のレコードのみです。 たとえば、Issue reporting アプリでは、ユーザーに Dataverse での自分の問題レコードのみを作成および表示できるようにするには、Issue Report テーブルで Private 権限を付与します。

実際のシナリオでのテーブルのアクセス許可

テーブルのアクセス許可が実際にどのように機能するかを見てみましょう。 テーブルを作成してから、2 人の異なるユーザーに表示される内容を示します。

注意

レッスンのこの部分を完了するには、2 つのユーザー ログインがある環境が必要です。 1 人はチームの所有者ロールを持ち、もう 1 人はチーム メンバー (チームのメンバーだが、所有者ロールは付与されていない) を持ちます

  1. チーム所有者として Teams にサインインします。

  2. Dataverse for Teams データベースを使用して、チームにアプリとテーブルを作成します。

  3. Power Apps アイコンを右クリックし、アプリをポップアウトします。

  4. 新しいアプリを作成します。

    1. アプリ名: "車両マネージャー"
    2. 新しいテーブルの作成 を選択し、"車両" という名前を付けます。
    3. 列の追加: "メーカー"、"モデル"、"製造年"。
    4. 列の表示/非表示を選択します。
    5. 列の表示/非表示ダイアログから、所有者 フィールドを選択して、保存 を選択します。

    列の表示

    テーブルは次のようになります:

    車両テーブルの表示

  5. レコードをテーブルに追加します:

    1. 行の追加 を選択します。
    2. レコードの詳細を入力します。
    3. 作成されたレコードの所有者フィールドには、ログインしたユーザー アカウントが反映されます。
  6. テーブル定義画面の外側の領域を選択して、アプリに戻ります。

  7. アプリを保存して公開します。 アプリが表示されるチャネルを選択する必要があります目的のチャネル名の横にある + を選択してチャネルを選択します。

テーブル アクセス許可の構成と確認

チーム メンバーに対して車両テーブルのアクセス許可を設定します:

  1. Teams で、Power Apps アプリを開きます。 Teams で Power Apps アイコンを右クリックして、ポップアウト アプリ を選択します。 これにより、アプリが新しいウィンドウで表示されるため、Teams 内の別の場所に移動しても、変更内容が失われることはありません。

  2. ビルド タブを選択します。

  3. 車両マネージャー アプリを含むチームを選択します。

  4. 作成された品目… エリアで、すべて表示 を選択します。

  5. ソリューション コンポーネント バーから テーブル を選択します。

  6. 車両テーブルを選択してから、アクセス許可の管理 を選択します。

  7. メンバー ノードを選択します。 最初のアクセス許可にはフル アクセスと表示されます。 アクセス許可 非公開 を選択して、保存 を選択します。

    テーブルのアクセス許可を管理する

次に、所有者ではないチーム メンバーであるユーザーとして Teams にログインし、チームのエクスペリエンスを確認します。

  1. アプリがインストールされているチームのメンバーであるユーザーを使用して、Teams にログインします。
  2. アプリをインストールしたチャネルを選択します。
  3. 車両マネージャー アプリのタブを選択します。
  4. アプリはユーザーに対して開きますが、ユーザーは自分のレコードしか表示できないため、ギャラリーにレコードは表示されません。
  5. 新しいレコード を選択して新しい車両レコードを作成し、チェック マークを選択してレコードを保存します。
  6. これで、ギャラリーに 1 つのレコードが表示されます。

Teams からログアウトし、チーム所有者として再度ログインします。 次に、テーブルに移動して、作成されたデータを確認します。

  1. チーム所有者の個人情報を使用して Teams にログインします。

  2. Power Apps アイコンを右クリックし、アプリをポップアウトします。

  3. ビルド タブを選択します。

  4. 車両マネージャー アプリをインストールしたチームを選択します

  5. 車両テーブルを選択します

  6. 編集を選択します。

  7. これで、車両テーブルに所有者が異なる 2 つのレコードが表示されます。

    テーブル レコードの表示

では、Teams のサンプル アプリのテンプレートの 1 つにどのように適用されますか?

たとえば、掲示板では、アプリのテーブルに次のアクセス許可を設定できます:

テーブル アクセス許可 理由
掲示板 信用照会 ユーザーはすべての掲示板を読む必要がありますが、掲示板を編集または作成する必要はありません。
掲示板ブックマーク 非公開企業 ユーザーは自分の掲示板を作成する必要がありますが、他のユーザーのブックマークを表示または編集する必要はありません。
掲示板カテゴリ 信用照会 ユーザーはすべてのカテゴリを読む必要がありますが、カテゴリを編集または作成する必要はありません。
掲示板カテゴリの基本設定 非公開企業 ユーザーは自分のカテゴリの基本設定を作成する必要がありますが、他のユーザーのカテゴリの基本設定を読み取ったり編集したりすることはできません。
掲示板の取引先担当者 信用照会 ユーザーはすべての取引先担当者レコードを読む必要がありますが、取引先担当者を作成または編集する必要はありません。
掲示板 FAQ 信用照会 ユーザーはすべての FAQ レコードを読む必要がありますが、既存の FAQ レコードを作成または編集する必要はありません。
掲示板 FAQ カテゴリ 信用照会 ユーザーはすべての FAQ カテゴリを読む必要がありますが、既存の FAQ カテゴリを作成または編集する必要はありません
掲示板リンク 信用照会 ユーザーはすべてのリンクを読む必要がありますが、既存のリンク レコードを作成または編集する必要はありません。
掲示板リンク カテゴリ 信用照会 ユーザーはすべてのリンク カテゴリを読む必要がありますが、既存のリンク カテゴリを作成または編集する必要はありません。
掲示板の既読受領書 非公開企業 ユーザーは、掲示板を表示するときに新しい開封確認を作成できる必要がありますが、他のユーザーの開封確認を読んだり編集する必要はありません。
掲示板のユーザー設定 非公開企業 ユーザーは、新しいユーザー設定レコードを作成できる必要がありますが、他のユーザー設定レコードを読み取ったり編集したりする必要はありません。

どのようなアクセス許可を共有する必要がありますか?

アクセス許可を割り当てる前に、アプリのユーザーのペルソナに基づいてセキュリティを計画する必要があります。 誰がアプリを管理しますか? 誰がアプリを使用しますか? どのように使用しますか?

たとえば、Teams の検査のサンプル アプリのテンプレートは、次のペルソナに対応するように設計されています:

  • 検査マネージャー - 検査フォームを作成し、場所または資産のリストを管理します。
  • 検査レビューアー - 検査データを確認し、検査を承認します。
  • 検査ユーザー - 検査を完了します。

ペルソナを定義したら、これらのペルソナを割り当てるチーム ロールに関連付けます:

  • 検査マネージャー - 検査マネージャーは、検査フォームやその他のシステム テーブル レコードを作成するためにフル アクセスが必要になるため、チームの所有者にします。
  • 検査レビューアー - 検査レビューアーはすべての検査を編集できる必要がありますが、検査フォームは作成しないため、、チーム メンバーにします。 これにより、エリア 検査チェックリスト テーブル (検査フォーム データが保存されている) への参照アクセスが可能になりますが、エリア検査 テーブル (検査レコードが保存保存されている) へのフルアクセスが可能になります。
  • 検査ユーザー - 検査ユーザーは、新しい検査を送信することのみが可能であり、新しい検査フォームを作成したり、他のユーザーの検査を確認したりすることはできません。 そのため、アプリがインストールされているチームのメンバーにはしません。彼らを同僚としてアプリを共有し、エリア検査チェック リストには参照権限を、エリア検査にはプライベート権限を付与します。 これにより、ユーザーは検査フォームを表示し、独自の検査レコードを作成できます。

Teams のサンプル アプリのテンプレートに推奨されるテーブル アクセス許可の詳細については、Profile+ を幅広い配布アプリとして展開 など、サンプル アプリのテンプレートの幅広い展開に関する記事を参照してください。