Microsoft Dynamics 365 で、フィールド セキュリティを使用してフィールド値へのアクセスを制御する方法

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Dynamics 365 および Microsoft Dynamics 365 (オンライン) では、フィールドレベルのセキュリティを使用して、ビジネスに大きな影響を与えるフィールドへのアクセスを、特定のユーザーおよびチームに制限します。 たとえば、顧客の信用度スコアの読み取りまたは更新を特定のユーザーだけに許可するには、これを使用します。 このリリースでは、フィールドレベルのセキュリティはカスタム フィールドと多くの標準フィールド (OOB) の両方に適用できます。

フィールドへのアクセスを制限する手順は次のとおりです。

  1. 属性のフィールドレベル セキュリティの有効化

  2. フィールドレベル セキュリティ プロファイルの作成

  3. ユーザーまたはチームをプロファイルに関連付ける

  4. 特定の属性の特定のフィールドのアクセス許可 (作成、更新、読み取りなど) をプロファイルに追加する

次の図は、ロールベースのセキュリティ、レコードベースのセキュリティ、およびフィールドレベルのセキュリティの間のやり取りを示しています。

フィールド レベルのセキュリティと比較したロール ベースのセキュリティ

ロールベースのセキュリティでは特定のエンティティの種類、レコードベースのセキュリティでは個々のレコード、フィールドレベルのセキュリティでは特定のフィールドをそれぞれ確認できます。

ビデオ: Microsoft Dynamics CRM 2015 のフィールド レベル セキュリティ

よく寄せられる質問

  • どの属性を保護できますか。

  • セキュリティで保護されたフィールドを表示するためのセキュリティ ロール

  • Retrieve および RetrieveMultiple に対するセキュリティで保護されたフィールドの動作方法

  • Create または Update に対するセキュリティで保護されたフィールドの動作方法

  • レコードを共有する場合のセキュリティで保護されたフィールドの動作方法

  • フィルター ビューに対するセキュリティで保護されたフィールドの動作方法

  • オフライン同期に対するセキュリティで保護されたフィールドの動作方法

どの属性を保護できますか。

どの属性を保護できるかを確認するには、次のプロパティのエンティティ メタデータを照会できます。

保護できる属性は数千とあります。この情報を検索する 2 つの簡単な方法があります。組織のエンティティ メタデータを表示するには、「組織のメタデータの参照」で説明されているメタデータ ブラウザー ソリューションをインストールします。 カスタマイズされていない組織のメタデータを、EntityMetadata.xlsx という名前の Excel ファイルで見ることもできます。このファイルは、ダウンロードした SDK の最上位のフォルダーに含まれています。

特定の属性のデータの種類に適用するそのほかのいくつかのルールがあります。

  • ブール型属性は、作成、更新操作に保護されていますが、読み取りには保護されていません。

  • オプション セット属性は、既定値が指定されていない場合、作成、更新、および読み取りに保護されています。

セキュリティで保護されたフィールドを表示するためのセキュリティ ロール

システム管理者のフィールド セキュリティ プロファイルでは、Microsoft Dynamics 365 のセキュリティで保護されたすべてのフィールドに対するフル アクセスが付与されます。 既定では、システム管理者のセキュリティ ロールを持つすべてのユーザーにこのプロファイルが割り当てられます。 このプロファイルはシステムで管理され、更新または削除することはできません。

Retrieve および RetrieveMultiple に対するセキュリティで保護されたフィールドの動作方法

Microsoft Dynamics 365 では、Retrieve または RetrieveMultiple メソッド (あるいはメッセージ) を呼び出すと、取得する各レコード (これは通常のセキュリティ プロセスです) とセキュリティで保護された各フィールドに対するアクセス権が呼び出し元と偽装ユーザーにあるかどうかが評価されます。 呼び出し元にアクセス権のないセキュリティで保護されたフィールドが条件に含まれている場合、この呼び出しでは例外はスローされません。 その代わりに、セキュリティで保護されたフィールドが出力列セットの一部である場合は、そのフィールドに対して null 値が返されます。

セキュリティで保護されたフィールドに対する複数の動作の取得については、以下で詳しく説明します。

セキュリティで保護された属性が列セットに含まれている場合

列セットに含まれているセキュリティで保護されたフィールドに対する読み取りアクセス権が呼び出し元 (または偽装ユーザー) にない場合、値は null として返されます。null 値が、データがないために返される場合とアクセス権が不十分なために返される場合の違いは判断できません。

セキュリティで保護された属性がフィルター条件に含まれている場合

フィルター条件に含まれているセキュリティで保護されたフィールドに対するアクセス権が呼び出し元 (または偽装ユーザー) にない場合、フィールド値はフィルターの評価中に null に置き換えられます。

次の表では、呼び出し元はアスタリスク(*)で示されているものを除いて、すべての属性にアクセスできます。

レコード番号

Name 属性の値

Description 属性の値

Can Be Contacted 属性の値

1

A

AAA

はい

2

B

BBB

いいえ

3

C

CCC

はい*

4

D

DDD

Null

5*

E*

EEE*

Null*

フィルターが CanbeContacted == True の場合、返されるのはレコード 1 のみです。

フィルターが IsNULL (CanbeContacted) の場合、レコード 3 および 4 が返されます。 レコード 3 はユーザーには表示されないため、条件の評価時に、このレコードは null として扱われ、ISNull に対して True と評価されます。

セキュリティで保護された属性で集計を行う場合

セキュリティで保護された値は null 値に置き換えられるため、通常の SQL による集計の動作が適用されます。

セキュリティで保護された属性でグループ化を行う場合

グループ化に使用する属性に対するアクセス権が呼び出し元 (または偽装ユーザー) にない場合、値は null として扱われ、結果はすべての null 値と共にグループ化されます。

次の例の場合、呼び出し元はいくつかの属性にアクセスできます。太字 (*で示されている)は、属性にアクセスできないことを示しています。斜体(**で示されている)は、呼び出し元に読み取りアクセス権のないレコードを示しています。

名前

説明

受注数

状態

A

AAA

1

WA

B

BBB

4

WA

C

CCC

4

CA

D**

DDD**

3**

MA**

E

EEE

0

神奈川県

F

FFF

0

WA*

G

GGG

2

神奈川県*

Select State, Total(orders) Group by (STATE) の結果は次のようになります。

WA–5

CA–4

null–2

セキュリティで保護された属性で並べ替えを行う場合

条件による並べ替えに含まれているセキュリティで保護されたフィールドに対するアクセス権が呼び出し元 (または偽装ユーザー) にない場合、値は null の場合と同様に扱われます。

次の例の場合、呼び出し元はプレーン テキストの属性にアクセスできます。太字 (アスタリスク *で示されている)は、属性にアクセスできないことを示しています。斜体(**で示されている)は、呼び出し元に読み取りアクセス権のないレコードを示しています。

名前

内容

CanbeContacted

A

AAA

はい

B

BBB

いいえ

C

CCC*

はい*

D

DDD

Null

E

EEE*

Null*

F**

FFF**

はい**

G

Null

はい

Select Name order by Description ascending の結果は次のようになります。

{G,E,C},A, B, D, が返されます。

Create または Update に対するセキュリティで保護されたフィールドの動作方法

プログラマは、Create メソッドと Update メソッドを使用するクライアントを構築できます。これらのメソッドはセキュリティで保護されたフィールドを操作します。Create メソッドまたは Update メソッドを呼び出して、セキュリティで保護されたフィールドに対してデータが渡され、呼び出し元に十分なアクセス許可がない場合は、例外がスローされます。

レコードを共有する場合のセキュリティで保護されたフィールドの動作方法

レコードのセキュリティで保護されたフィールドにアクセスできるユーザーは、そのレコードを他のユーザーまたはチームと共有できます。 このユーザーは、レコード上で自分が所有しているアクセス権のみ付与できます。 たとえば、レコードを共有して Update 特権を付与するユーザーには更新の特権が必要です。

Read または Update (あるいはその両方) を使用して、特定のレコードのセキュリティで保護されたフィールドをセキュリティ プリンシパル (ユーザーまたはチーム) と共有できます。  これで、レコードを共有したユーザーまたはチーム メンバーは、この種類のセキュリティで保護されたフィールドにアクセスできるようになります。これが可能なのは、レコードを共有したユーザーまたはチーム メンバーがアクセス権を付与するフィールド セキュリティ プロファイルを所有していない場合であっても、その特定のレコードでのみ共有されるセキュリティで保護されたフィールド上に限られます

フィルター ビューに対するセキュリティで保護されたフィールドの動作方法

管理者は、アプリケーションでアクセスするための多数のフィールドをセキュリティで保護し、レポートではそれらのフィールドにアクセスできないようにする必要があります。 これにより、すべてのユーザーに対して同じレポートのセットが維持されます。 呼び出し元のユーザーがそのフィールドに対する承認を得ていない場合、フィルター ビューでは、セキュリティで保護されたフィールドに対してデータが返されません。 いずれかのビューの属性に対してフィールド セキュリティが適用されない場合、フィルター ビューは完全なデータを返します。

オフライン同期に対するセキュリティで保護されたフィールドの動作方法

オフライン アクセス対応 Microsoft Office Outlook 用 Microsoft Dynamics 365 を使用している場合は、アクセスが可能なセキュリティで保護されたフィールドの値のみがオフライン データベースに複製されます。 アクセスできないデータはオフラインでは保存されません。

関連項目

ビデオ: Microsoft Dynamics CRM 2015 のフィールド レベル セキュリティ
Microsoft Dynamics 365 のセキュリティ モデル
ロールベースのセキュリティを使用して Microsoft Dynamics 365 におけるエンティティへのアクセスを制御する方法
レコードベースのセキュリティを使用して Microsoft Dynamics 365 におけるレコードへのアクセスを制御する方法

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権