拡張可能なデータ セキュリティ ポリシー

Note

コミュニティの関心グループが Yammer から Microsoft Viva Engage に移行されました。 Viva Engage コミュニティに参加し、最新のディスカッションに参加するには、「 Finance and Operations Viva Engage Community へのアクセスを要求する 」フォームに入力し、参加するコミュニティを選択します。

この記事では、財務と運用アプリにおける拡張可能なデータ セキュリティ (XDS) ポリシーの概要を提供します。 XDS を使用すると、開発者は、セキュリティ ポリシーに基づいてテーブル レコードへのアクセスを制限することで、ロールベースのセキュリティを補完できます。 ポリシーのクエリはフィルターを適用するため、フィルター条件を満たすレコードにのみ制限されたテーブルからアクセスできます。

データ セキュリティ ポリシー コンポーネント

  • 制約付きテーブル: データのフィルター処理またはセキュリティ保護の対象となるテーブル。 たとえば、顧客に基づいてトランザクションへのアクセスをセキュリティで保護するポリシーでは、 CustTrans テーブルは制約付きテーブルの例です。

  • プライマリ テーブル: 関連する制約付きテーブルの内容を保護するために使用されます。 次の例では、 CustTable テーブルがプライマリ テーブルです。 プライマリ テーブルには、制約されたテーブルと明示的な関係である必要があります。

  • ポリシー クエリ: プライマリ テーブルの内容に対する範囲条件を使用して、制約付きテーブルのコンテンツをセキュリティで保護するために使用されます。 範囲に含まれるレコードのみがアクセス可能になります。 この範囲は、顧客の特定の値に基づいている場合などに使用できます。

  • コンテキスト – ポリシーが適用される条件を制御します。 主に 2 種類のコンテンツを利用できます。

    • ロール コンテキスト: ユーザーが割り当てられているロールに基づきます。 ロール コンテキストには、次の 2 つのサブオプションを使用できます。

      • RoleName – セキュリティ ポリシーが RoleName の値と等しいロールに割り当てられたアプリケーション ユーザーにのみ適用されることを示します。

      • RoleProperty – 複数のユーザー ロール コンテキストを指定するために ContextString プロパティと組み合わせて使用されます。 ポリシーの ロール プロパティ フィールドで定義されているコンテキスト文字列の値が、割り当てられたユーザー ロールの ContextString フィールドの値と同じである場合に適用されます。

    • アプリケーション コンテキスト: XDS::SetContext API を使用しているアプリケーションによって設定されたコンテキスト文字列が、ポリシーの コンテキスト文字列 フィールドで定義した値と同じである場合に適用されます。

      AOTXDS 概念モデルのスクリーンショット。

アプリケーション オブジェクト ツリー (AOT) では、セキュリティ > ポリシーの下にポリシーとそのコンポーネントを表示できます。

重要な考慮事項

Important

ポリシー クエリは、指定された制約付きテーブルを含む選択、更新、削除、および挿入の各操作において WHERE 句または ON 句に追加されます。 入念に設計され、テストされていない限り、ポリシー クエリはパフォーマンスに重要な影響を与える可能性があります。 したがって、拡張可能なデータ セキュリティ ポリシーを開発する場合は、必ず単純ですが、重要なガイドラインに従ってください。 詳細については、拡張可能なデータ セキュリティ ポリシーの開発 (ホワイト ペーパー) [AX 2012] の「拡張可能なデータ セキュリティ ポリシーの開発」を参照してください。

2 つ以上のセキュリティ ポリシーが適用されている場合は、各ポリシーに含まれるレコードの交差 (和集合ではない) のみが、アクセス可能なレコードとなります。 つまり、レコードへのアクセスを許可する前に、レコードが適用可能なすべてのセキュリティ ポリシーを満たす必要があります。

XDS は財務分析コードには対応しておらず、財務分析コード データで XDS を使用するとデータが破損します。

Note

XDS を財務ディメンションデータに直接適用しないでください。 バッキング エンティティ (顧客、ベンダー、運用単位など) に対する XDS ポリシーは、エンティティに基づくディメンション値の可視性に影響を与える可能性があります。 ユーザーのロールがバッキング エンティティの XDS ポリシーによって制限されている場合、対応するディメンション値が空白または不足している可能性があります。

XDS ポリシーのバイパス

新しいロール XDSDataAccessPolicyBypassRole は XDS ポリシーをバイパスします。 ユーザーに XDSDataAccessPolicyBypassRole* ロールが割り当てられている場合、このユーザーは補助的な拡張データ セキュリティ (XDS) ポリシーをバイパスし、そのデータ アクセスは純粋にロールベースです。 XDSDataAccessPolicyBypassRole を一時的に構成すると、ユーザーがデータを表示または変更できないことが XDS ポリシーによるものであるかどうかを判断するのに役立ちます。

たとえば、単純なセキュリティ ポリシーを作成 します。

クエリ XDSQCustGroup10 を使用して XDS ポリシーが作成され、ロール X などのロールに割り当てられているとします。User1 に ロール X が割り当てられている場合、User1すべての顧客 ページで 顧客グループ:10 を表示できます。 User1 がロール X と共に XDSDataAccessPolicyBypassRole ロールに割り当てられている場合、XDS ポリシーはロール XDSDataAccessPolicyBypassRole のためにバイパスされるので、フィルターは適用されません。 User1 では、すべてのグループを表示できます。

追加リソース

制限付きテーブルのチェーン、式に基づくテーブルの関係など、ポリシーをデバッグし、より高度なポリシーを作成する方法については、次のリソースを参照してください。