[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]] 「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>CRMのカスタマイズ]] * 目次 [#v5d71fe2] #contents *概要 [#p806dd82] **[[集中管理モデル>CRM セキュリティモデルの作成]] [#i7f6c8fb] 特権(アクセス許可) +特権にアクセス レベルを設定、 +部署やチームを作成、ユーザを追加し、 +セキュリティ ロールを使用する。 **補完モデル [#bcfc8c3b] -[[フィールド セキュリティ>#k2db064d]] -[[アクセス チーム テンプレート>#ja35cc5e]] **監査機能 [#x336e564] データやシステム構成(設定、セキュリティ構成)に加えられた変更・変更したユーザを記録する。 ***メリット [#w54a88d8] -カスタマイズ作業内容の把握、プロセスに従って作業しているかを確認できる。 -弱体化したセキュリティ構成変更を特定するのに役立つ。 -設定を変更前の値に戻す場合に役立つ。 ***デメリット [#s5cf9a3f] -SQLServerに設定が必要になる。 -追加データが生成され運用コストが増加する。 *フィールド セキュリティ [#k2db064d] -システム エンティティ、カスタム エンティティのフィールドの表示・編集等のアクセスを制限 -レコード レベルのセキュリティ ロールとは異なり、~ より詳細なフィールド レベルのユーザ アクセス許可を制御 **スコープ [#k7750cd5] ***クライアント [#da359422] すべてのクライアント -PC用 -タブレット用 -電話用 -Outlook用 ***表示・編集方法 [#haa7ada7] すべての表示・編集方法 -レポート -簡易表示 -グラフ -フィルタービュー -データ インポート ウィザード -監査ログ、重複データ検出 -SDKからのアクセス **実装方法 [#jadb0ba3] [[フィールド カスタマイズ フォームでフィールド セキュリティを有効にできる。>CRM フィールドのカスタマイズ#vf242885]] **フィールド セキュリティを有効にした場合 [#a3dbf19a] ***動作 [#ra9ce7d4] -システム管理者しかアクセスできなくなる。 ***UIの変更 [#ad0925a6] -フォーム エディター~ ラベルに鍵マークが表示され、一部のユーザはアクセスできないフィールドであることをシステム カスタマイザーに知らせる。 -フォーム~ ラベルに鍵マークが表示され、一部のユーザはアクセスできないフィールドであることをユーザに知らせる。 --編集アクセス許可が無い場合、~ フィールド横に南京錠マークが表示され、読み取り専用であることをユーザに知らせる。 --表示アクセス許可が無い場合、~ 南京錠マークに加え、フィールド値が****で表示され、読み取り不可であることをユーザに知らせる。 -ビュー --表示アクセス許可が無い場合、~ フィールドは空になる? **フィールド セキュリティ プロファイル [#i267de9a] システム管理者以外のユーザにアクセス許可を与える。 ***設定方法 [#z4d91cf8] -アクセス許可の種類 --読取:フィールドのデータを参照可能。 --更新:アップデート時にフィールドのデータを入力可能。 --作成:インサート時にフィールドのデータを入力可能。 --削除:削除のアクセス許可は無い -アクセス許可の設定方法 --ユーザやチームをフィールド セキュリティ プロファイルに追加する。 --フィールド セキュリティ プロファイルにフィールドと対応するアクセス許可を設定する。 ***システム管理者フィールド セキュリティ プロファイル [#i927620a] このプロファイルは、 -すべてのフィールド セキュリティを有効にしたフィールドへのアクセス許可がある。 -ユーザ・チームの追加 --システム管理者ユーザ・チームが自動的に追加される。 --その他、任意のユーザ・チームを手動で追加できる。 -削除不可能 --プロファイル自体 --プロファイルに追加されたシステム管理者ユーザ・チーム -ソリューションのフィールド セキュリティ プロファイル一覧に表示されない。 ***フィールド セキュリティ プロファイルの作成 [#la9d720a] -フィールド セキュリティ プロファイルの作成 --フィールド セキュリティを有効にしたフィールドを含むソリューションを開く --ソリューション エクスプローラーで[フィールド セキュリティ プロファイル]をクリックする。 --メニューバーで[新規]をクリックする。 --新しいプロファイルの名前・説明を入力する。 --ツールバーの[保存]をクリックする。 -フィールド セキュリティ プロファイルにユーザ・チームを追加 --フィールド セキュリティ プロファイルのナビゲーション ウィンドウで[ユーザ] or [チーム]をクリックする。 --メニュー バーの[追加]をクリックする。 --プロファイルに追加するユーザ・チームを選択する。 --[選択]をクリックし[選択したレコード]ボックスに追加。 --[追加]をクリックする。 --手順を繰り返してプロファイルにユーザ・チームを追加する。 -フィールドのアクセス許可の設定 --フィールド セキュリティ プロファイルのナビゲーション ウィンドウで[フィールドのアクセス許可]をクリックする。 --アクセス許可を変更するフィールドを選択する(複数選択可能)。 --メニューバーの[編集]をクリックする。 --アクセス許可の種類([読み取りを許可]、[更新を許可]、[作成を許可])の~ ドロップダウンリストから[あり] or [なし]を選択する。 --[OK]をクリックする。 --手順を繰り返してフィールドにアクセス許可を設定する。 -[フィールド セキュリティ プロファイル]ツール バーの[保存して閉じる]をクリックする。 **セキュリティ ロールとフィールド セキュリティ [#x7f87b0d] ***セキュリティの対象と制御方法 [#x3f52f70] 特定のレコードのフィールドに対してユーザに許可されるアクセスは、~ 以下の3種類のセキュリティの対象と制御方法をANDしたものになる。 |/|対象|制御方法|h |1|エンティティ|[[セキュリティ ロール>CRM セキュリティモデルの作成#j4894418]]| |2|レコード|[[共有>CRM セキュリティモデルの作成#i8b10bd9]]| |3|フィールド|フィールド セキュリティ プロファイル| ***AND [#h2eb50a7] -セキュリティ ロール・共有は、フィールド セキュリティを拡張しない。 -共有はセキュリティ ロールのスコープを拡大するが、 --ユーザのアクセス許可は拡張しない。 --アクセス レベルは拡張しない(ユーザ レベル以上が持っていない特権は変更できない)。 -フィールド セキュリティは -レコードの特権(アクセス許可)を拡張しない。 -レコードのアクセス レベルを拡張しない。 *アクセス チーム テンプレート [#ja35cc5e] -アクセス チームを作成し同僚をレコードに簡単にリンクすることで通常持たないアクセス許可を与える。 -[[共有>CRM セキュリティモデルの作成#i8b10bd9]](アクセス レベルは適用されない)に似ているが、こちらの方が中央のアクセス許可の定義を容易に適用可能。 **共有の問題解決 [#x4f2b64f] アクセス チーム テンプレートは、以下の共有の問題を解決する。 ***問題 [#l0b4a602] -共有の度に、共有するユーザに[共有]ダイアログ ボックスを使用してアクセス許可を付与する必要がある。 -[共有]ダイアログ ボックスを開かないと、共有されたレコードに誰がアクセスできるか判断できない。 ***解決 [#gcc6d635] [共有]ダイアログ ボックスを開く必要がない。 -システム カスタマイザーの用意したアクセス許可セットを使用して、~ 共有するユーザに迅速にアクセス許可を付与することができる。 -迅速に、共有レコードにアクセス可能なユーザの確認と編集ができる。 --レコードに対するアクセス権を持つユーザの一覧を出力できる。 --特権を持つユーザは、一覧からのユーザとアクセス権を変更できる。 **アクセス チーム テンプレートの構成 [#p7cbe63d] -エンティティのアクセス チームを有効にして変更を公開する。 -アクセス チーム テンプレートを作成してアクセス許可を定義する。 -エンティティのフォームでユーザ追加して表示するサブグリッドを追加する。 -このサブグリッドは、1つのアクセス チーム テンプレートに関連付けられる。 ***アクセス チーム テンプレートの設定内容 [#p9672e7c] -名前 -説明 -アクセス権 --削除 --追加 --,etc(セキュリティ ロールや共有で称されるアクセス許可と同じ) -対象エンティティ --1つのエンティティに複数のアクセス チーム テンプレートを作成できる。 --この最大値は、PowerShellで変更可能 ---MaxAutoCreatedAccessTeamsPerEntity:~ エンティティに対して定義可能なアクセス チーム テンプレート数(既定値は2) ---MaxEntitiesEnabledForAutoCreatedAccessTeams:~ 自動生成されたアクセス チームに対して有効にできるエンティティ数?(既定値は5) **アクセス チームの生成 [#nfa8e08b] -アクセス チームは、ユーザをサブグリッドに追加することで自動生成される。 --この操作は”レコードにアクセス チーム メンバを追加する”と言う。 --”アクセス チーム メンバを追加する”ユーザは、 ---レコードにレコードに対する共有特権が必要。 ---アクセス チーム テンプレートに含まれるすべてのアクセス許可が必要。 ---標準の共有でも、共有するユーザの持っている以上のアクセス許可は付与できない。 --”アクセス チーム メンバに追加される”ユーザは、 ---アクセス チーム テンプレートに含まれるすべてのユーザ レベルのアクセス許可が必要。 ---標準の共有では、共有されるユーザの持っている以上のアクセス許可を付与できる。 --アクセス チーム テンプレートに共有特権があると、~ すべてのアクセス チーム メンバは、アクセス チーム メンバを追加できるようになる。 --アクセス チームにより、 ---レコード レベルでは、各ユーザと個別に共有されなくなる。 ---しかし、エンティティ レベルでは、各ユーザと個別の共有が可能のままである。~ エンティティのコマンド バーをカスタマイズして、共有用のボタンを削除/非表示にすることはできる。~ これは、エンティティのコマンド バーを定義するリボンXMLのカスタマイズにより行う。 -アクセス チーム名は、~ "レコードGUID" + "サブグリッドに関連付けられたアクセス チーム テンプレートのGUID" になる。 -これにより生成されるチームの --種類は、[[アクセス チーム>CRM セキュリティモデルの作成#f5dccda6]]となり、 --[システムで管理されている]プロパティは、"はい"に設定される。 --この設定のチームは、チームの既定のビューでは表示されない。 *監査機能 [#pb84a4f7] **監査機能のレベル [#n58dd74e] 3つのレベルで監査機能を有効にできる。 ***組織レベル [#mb615cc5] -有効化:[設定] ---> [管理] ---> [システムの設定] ---> [監査] -用途:システム レベルの変更が監査対象になり、不正な変更、誤った変更の判断・修正を支援する。 ***エンティティ レベル [#a0128271] -有効化: --[[エンティティのプロパティで監査プロパティを選択する>CRM エンティティのカスタマイズ]]。 --また、コレに加えて組織レベルの有効化も必要。 -用途:エンティティの変更が監査対象になり、不正な変更、誤った変更の判断・修正を支援する。 ***フィールド レベル [#x434d53d] -有効化: --[[フィールドのプロパティで監査プロパティを選択する>CRM フィールドのカスタマイズ]]。 --また、コレに加えてエンティティ レベル、組織レベルの有効化も必要。 -用途:フィールド値の変更が監査対象になり、不正な変更、誤った変更の判断・修正を支援する。 **監査イベントの確認 [#mbf03509] -監査を有効にすると、変更が追跡され、SQLServerの監査テーブルに保存される。 -すべての監査エントリは、イベント種類、ユーザ、日付・時刻を記録している。 ***確認方法 [#g64f6e26] 監査イベントは以下で確認できる。 -監査履歴 --[監査履歴の表示]で表示 --レコード単位にレコード フォームのナビゲーション バーを使用してアクセスする。 --レコード フォームが表示されなくなるので、削除されたレコードに対しては使用できない。 -監査概要ビュー --[監査の概要の表示]で表示 --組織レベル、エンティティ レベル、レコード レベルのイベントとデータ変更の概要が表示される。 --変更の概要(CRUD)のみ表示され、変更の詳細(データ値)は表示されない。 ***アクセス制御 [#o41b199e] -監査データへのアクセス許可 --監査データのアクセスには監査の特権が必要になる。 --この特権の設定~ セキュリティ ロールの[コア レコード]タブから設定する。 ---[監査履歴の表示] ---[監査の概要の表示] --既定のセキュリティ ロールと監査の特権~ 一部のセキュリティロールでは、以下の監査の特権が既定で有効になっている。 ---”上司”レベル以上のセキュリティ ロール:[監査履歴の表示]が有効 ---システム管理者ロールのセキュリティ ロール:唯一、[監査の概要の表示]が有効 -エンティティ、レコード、フィールドの監査データへのアクセス許可 --エンティティとレコード単位での監査の許可は設定できないが、~ レコード フォームが表示できなければレコードは監査できないので、~ 合わせてエンティティとレコードの読み取りアクセス許可が必要になる。 --当然、フィールド セキュリティも考慮される。~ フィールド セキュリティで読み取りアクセス許可が無い場合、~ そのフィールドの監査データにはアクセスできない。~ 合わせてフィールド セキュリティの読み取りアクセス許可が必要になる。 **監査ログの格納状態 [#gbbd8227] -SQL Serverのパーティショニングの機能を使用して、~ 監査ログが四半期の単位でパーティション分割されている。 -これにより、削除やアーカイブのスライディング ウィンドウ実装が可能。 -最も古い監査ログから削除やアーカイブのスライディング ウィンドウ操作が可能。