次の方法で共有


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

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

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

  • 制約付きテーブル: データがフィルタ処理またはセキュリティ保護されているテーブル。 たとえば、顧客に基づく取引へのアクセスを保護するポリシーでは、CustTrans は制約されたテーブルの例になります。

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

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

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

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

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

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

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

      AOTXDS 概念モデル。

アプリケーション オブジェクト ツリー (AOT) では、ポリシーとそのコンポーネントがセキュリティ > ポリシーに基づいて表示されます。

重要な考慮事項

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

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

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

XDS ポリシーのバイパス

新しいロール XDSDataAccessPolicyBypassRole は XDS ポリシーをバイパスします。 ユーザーにロール XDSDataAccessPolicyBypassRole が割り当てられている場合、このユーザーは補助的な拡張可能なデータ セキュリティ (XDS) ポリシーをバイパスし、データ アクセスは純粋にロール ベースになります。

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

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

その他のリソース

ポリシーをデバッグする方法の詳細については、制限されたテーブルのチェーン、式に基づくテーブルの関係を含むより詳細なポリシーを作成し、これらのリソースを参照してください。