[PowerPages] Webロールでページのアクセス権を制御する方法

PowerAutomate

実装する機能

ユーザマスタページで承認者フラグをTrueにした時、承認者のみが閲覧可能なページをヘッダーに表示する

  1. 承認者ですか?がいいえの状態
  2. 承認者ですか?を「はい」に変更
  3. 承認者ページがヘッダーに表示される

作成物

PowerPages アクセス権を設定したページ
PowerPages管理アプリ Webロール
PowerAutomate Webロールを設定するフロー
Dataverse 取引先担当者(contact)テーブルに追加する列

手順

  1. ページ作成(PowerPages)
    1. PowerPages Studioでアクセスを制限する承認者ページを作成します
      ※アクセス権の設定はWebロール作成後に行います
  2. Webロール作成(PowerPages管理アプリ)
    1. PowerPages管理アプリの [Web ロール] からWebロールを作成します

      名称 <任意の名称>
      Webサイト <Webロールを使用するWebサイト>
      説明 <任意>
      認証されたユーザー ロール 無効
      匿名ユーザー ロール 無効
    2. [Web ページ] > [アクセス制御ルール] > [新しい​​Web ページ アクセス制御ルール
      ]からページのアクセス権を設定します

      全般

      名称 <任意の名称>
      Webサイト <Webロールを使用するWebサイト>
      Webページ <アクセス権を設定したいページ>
      右(Rightが”右”と訳さられている) 読み取りの制限
      アクセスの種類 すべてのコンテンツ
      説明 <任意>

      Webロール
      [既存のWeb ロールの​​追加] から作成したWebロールを追加します

      ※ページのアクセス権は、PowerPages Studioで対象のページの […] > [ページ設定] > [アクセス許可]から設定も可能です

  3. ユーザテーブルに承認者フラグ追加(Dataverse)
    1. 取引先担当者(contact)に列を追加します
      ※今回は「フラグに変更があったら」をトリガーとするので列を追加していますが、別のトリガーを考えているのであれば、ここは飛ばして問題ないです

      表示名 任意の表示名
      説明 任意
      データの種類 はい/いいえ
      動作 シンプル(既定値)
      必須 任意(既定値)
      選択肢 いいえ、はい(既定値)
      既定の選択肢 いいえ(既定値)
    2. フォームとビューに追加します
      作成した列をフォームとビューに追加し、PowerPagesから確認と編集をできるようにします
  4. Webロールを付与するPowerAutomateを作成
    • 全体
    • 詳細
      1. 行が追加、変更、または削除された場合
        種類の変更 更新
        テーブル名 取引先担当者
        スコープ Organization
        列を選択する <作成した承認者フラグ列>
        ※「承認者ですか?」列が更新された場合のみトリガーさせるため
        行のフィルター


      2. 行を一覧にする
        Webロールテーブルから「承認者ロール」のレコードを取得します

        テーブル名
        Web ロール
        mspp_name eq ‘<作成したWebロールの名前>’
        並べ替え順
        行数


      3. 条件
        更新された「承認者ですか?」列が、TrueかFalseか判定します

        [ トリガー.<承認者ですか?> ] is equal to [ true ]


        •  Trueの場合(「承認者ですか?」がTrue)
          1. 行を関連付ける
            テーブル名 取引先担当者
            行ID トリガー.取引先担当者(GUID列)
            リレーションシップ 取引先担当者 – powerpagecomponent_mspp_webrole_contact
            関連付け 行を一覧にする.@odata.id
        • Falseの場合
          1. 行の関連付けを解除する(「承認者ですか?」がFalse)
            テーブル名 取引先担当者
            行ID トリガー.取引先担当者(GUID列)
            リレーションシップ 取引先担当者 – powerpagecomponent_mspp_webrole_contact
            関連付け 行を一覧にする.Webロール(GUID列)
            ※ なぜか仕様が関連付けと解除で異なっている
動作確認

現在の状態
ログイン:user1
承認者ですか?:いいえ

承認者ですか?を「はい」変更する

PowerAutomateが実行される

承認者ロールが付与される

承認者ページがヘッダーに表示され、アクセス可能になる