0

DynamicsCRMで定義されたカスタムエンティティエンティティEがあります。エンティティEには、パブリックに表示されるエントリ(種類PUBLIC)とプライベートエントリ(種類PRIVATE)の2種類のエントリが含まれています。

CRMユーザーは、Eから両方の種類のエントリを取得できます。一方、サイトA(インターネットに接続)のユーザーは、EのPUBLICサブセットのみを取得できます。

次の手順は大丈夫ですか?

  • PUBLIC_E_VIEWと呼ばれるエンティティEの保存されたビューを作成します
  • PUBLIC_E_VIEWの読み取り権限を持つセキュリティロールを作成します
  • そのセキュリティロールをユーザー、ユーザーXに割り当てます。
  • サイトAからのすべてのリクエストは、「偽装」(X)を使用してcrmWebサービスに対して実行されます。

前もって感謝します :)

4

2 に答える 2

2

いいえ、これであなたが望むものが達成されるとは思いません。

Webサービスの呼び出しは、ユーザーの見解を尊重しません。たとえば、PUBLIC_E_VIEWはWebサービス呼び出しでは使用されません。

PUBLIC_E_VIEWが機能するには、ユーザーXにEの読み取り権限が必要です。これは、すべてのWebサービスがユーザーXが表示できるすべてのEレコード(この場合はすべて)を返すことを意味します。

たとえば、データを分離するためにビジネスユニットを使用する必要がある場合だと思います。

  • プライベートとパブリックの2つのビジネスユニット、パブリックとプライベートのユーザーがそれぞれに割り当てられます
  • プライベートはパブリックの親です
  • すべてのプライベートユーザーは、ビジネスユニットとチャイルドビジネスユニットでEを読むことができます
  • すべてのパブリックユーザーは、ビジネスユニットでEを読み取ることができます
  • すべてのパブリックおよびプライベートEレコードを正しいユーザーに割り当てます

これは、パブリックユニットでXになりすますと、プライベートユニットでレコードが返されないことを意味します。

于 2012-09-12T08:56:42.253 に答える
1

用語が不明確なため、質問を誤解している可能性があります。

エンティティ E には 2 種類のエントリが含まれています: 公開エントリと非公開エントリです。

あなたの「エンティティ E」(CRM エンティティ定義) には、パブリックにアクセス可能な属性とプライベート属性が含まれているということですか(これは私が想定していることです)、それとも「エンティティ E」タイプのレコードの一部がパブリックであり、プライベート?


CRM 2011 の "フィールド レベル セキュリティ" (FLS) の概念を調査することをお勧めします。これにより、フィールドのサブセットを保護し、特定のユーザーのみが使用できるようにすることができます (つまり、ロールに関連付けられていません)。このセキュリティは、フォームだけでなく CRM ビューにも適用されるため、すべての Web ベースのリクエストが偽装ユーザーを介して送信されるというシナリオに適合するはずです。

FLS はパフォーマンスに影響を与えます。大規模なシナリオでは、「プライベート」属性を新しいエンティティに移動し、それを元のパブリック エンティティに関連付けて、プライベート エンティティへのアクセスを個別に保護することを検討できます。

于 2012-09-12T08:55:52.957 に答える