データ セキュリティと Liquid

完了

Power Pages の Liquid 拡張機能を使用すると、作成者が Microsoft Dataverse にアクセスできるようになります。 Liquid オブジェクトおよびタグによって行われるすべてのデータ アクセスは、テーブルのアクセス許可によって管理され、この機能をオフに切り替えることはできません。 また、テーブル アクセス許可によって出力が動的になります。これは、現在の Web サイト ユーザー、その Web ロール、および関連付けられたテーブル アクセス許可列によって、出力が変化するためです。

レンダリングのパフォーマンスを高め、現在のユーザー権限に応じてテンプレートを変更するには、開発者は、データ取得を実行する前に特定のアクセス権を確認します。 たとえば、テンプレート開発者は、連絡先レコードにアクセスする代わりに、開発者が連絡先テーブルに対する読み取り権限を持っているかどうかをチェックしてから、データを取得せずに応答を適切に処理することもできます。

次の Liquid フラグメントを考えてみましょう。

{% if user %} <!-- 1 -->
<p>
  {% assign account = entities.account[user.parentcustomerid.id] %} <!-- 2 -->
  {% if account and account.permissions.can_read %} <!-- 3 -->
    Company: {{account.name}} <!-- 4 -->
  {% else %}
    Unknown company <!-- 5 -->
  {% endif%}
</p>
{% else %}
<p>We are unable to provide any information to anonymous visitors.</p> <!-- 6 -->
{% endif %}

この例では、コードによって次のアクションが実行されます。

  1. ユーザーがサインインしている場合にのみデータを表示します。

  2. 取引先企業の親会社のレコードを取得します。

  3. アカウントが存在し、ユーザーにそのレコードを読み取るためのアクセス許可があることを確認します。 テーブル オブジェクトのアクセス許可プロパティは、特定権限の検証に使用できるテーブルのアクセス許可オブジェクトを返します。

  4. 取引先企業の名前がある場合は、その名前を表示します。

    ない場合は、"不明な会社" メッセージが表示されます。

  5. 匿名の閲覧者に対して汎用メッセージを表示します。

Power Pages デザイン スタジオ内のコードをテストしてから、そのサイトを参照できます。 デザイン スタジオ内のメーカー権限によって、コードでレンダリングされたさまざまな値を確認します。

詳細については、Liquid の概要を参照してください。