マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

集中管理モデル

特権(アクセス許可)

  1. 特権にアクセス レベルを設定、
  2. 部署やチームを作成、ユーザを追加し、
  3. セキュリティ ロールを使用する。

補完モデル

監査機能

データやシステム構成(設定、セキュリティ構成)に加えられた変更・変更したユーザを記録する。

メリット

  • カスタマイズ作業内容の把握、プロセスに従って作業しているかを確認できる。
  • 弱体化したセキュリティ構成変更を特定するのに役立つ。
  • 設定を変更前の値に戻す場合に役立つ。

デメリット

  • SQLServerに設定が必要になる。
  • 追加データが生成され運用コストが増加する。

フィールド セキュリティ

  • システム エンティティ、カスタム エンティティのフィールドの表示・編集等のアクセスを制限
  • レコード レベルのセキュリティ ロールとは異なり、
    より詳細なフィールド レベルのユーザ アクセス許可を制御

スコープ

クライアント

すべてのクライアント

  • PC用
  • タブレット用
  • 電話用
  • Outlook用

表示・編集方法

すべての表示・編集方法

  • レポート
  • 簡易表示
  • グラフ
  • フィルタービュー
  • データ インポート ウィザード
  • 監査ログ、重複データ検出
  • SDKからのアクセス

実装方法

フィールド カスタマイズ フォームでフィールド セキュリティを有効にできる。

フィールド セキュリティを有効にした場合

動作

  • システム管理者しかアクセスできなくなる。

UIの変更

  • フォーム エディター
    ラベルに鍵マークが表示され、一部のユーザはアクセスできないフィールドであることをシステム カスタマイザーに知らせる。
  • フォーム
    ラベルに鍵マークが表示され、一部のユーザはアクセスできないフィールドであることをユーザに知らせる。
    • 編集アクセス許可が無い場合、
      フィールド横に南京錠マークが表示され、読み取り専用であることをユーザに知らせる。
    • 表示アクセス許可が無い場合、
      南京錠マークに加え、フィールド値が****で表示され、読み取り不可であることをユーザに知らせる。
  • ビュー
    • 表示アクセス許可が無い場合、
      フィールドは空になる?

フィールド セキュリティ プロファイル

システム管理者以外のユーザにアクセス許可を与える。

設定方法

  • アクセス許可の種類
    • 読取:フィールドのデータを参照可能。
    • 更新:アップデート時にフィールドのデータを入力可能。
    • 作成:インサート時にフィールドのデータを入力可能。
    • 削除:削除のアクセス許可は無い
  • アクセス許可の設定方法
    • ユーザやチームをフィールド セキュリティ プロファイルに追加する。
    • フィールド セキュリティ プロファイルにフィールドと対応するアクセス許可を設定する。

システム管理者フィールド セキュリティ プロファイル

このプロファイルは、

  • すべてのフィールド セキュリティを有効にしたフィールドへのアクセス許可がある。
  • ユーザ・チームの追加
    • システム管理者ユーザ・チームが自動的に追加される。
    • その他、任意のユーザ・チームを手動で追加できる。
  • 削除不可能
    • プロファイル自体
    • プロファイルに追加されたシステム管理者ユーザ・チーム
  • ソリューションのフィールド セキュリティ プロファイル一覧に表示されない。

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

  • フィールド セキュリティ プロファイルの作成
    • フィールド セキュリティを有効にしたフィールドを含むソリューションを開く
    • ソリューション エクスプローラーで[フィールド セキュリティ プロファイル]をクリックする。
    • メニューバーで[新規]をクリックする。
    • 新しいプロファイルの名前・説明を入力する。
    • ツールバーの[保存]をクリックする。
  • フィールド セキュリティ プロファイルにユーザ・チームを追加
    • フィールド セキュリティ プロファイルのナビゲーション ウィンドウで[ユーザ] or [チーム]をクリックする。
    • メニュー バーの[追加]をクリックする。
    • プロファイルに追加するユーザ・チームを選択する。
    • [選択]をクリックし[選択したレコード]ボックスに追加。
    • [追加]をクリックする。
    • 手順を繰り返してプロファイルにユーザ・チームを追加する。
  • フィールドのアクセス許可の設定
    • フィールド セキュリティ プロファイルのナビゲーション ウィンドウで[フィールドのアクセス許可]をクリックする。
    • アクセス許可を変更するフィールドを選択する(複数選択可能)。
    • メニューバーの[編集]をクリックする。
    • アクセス許可の種類([読み取りを許可]、[更新を許可]、[作成を許可])の
      ドロップダウンリストから[あり] or [なし]を選択する。
    • [OK]をクリックする。
    • 手順を繰り返してフィールドにアクセス許可を設定する。
  • [フィールド セキュリティ プロファイル]ツール バーの[保存して閉じる]をクリックする。

セキュリティ ロールとフィールド セキュリティ

セキュリティの対象と制御方法

特定のレコードのフィールドに対してユーザに許可されるアクセスは、
以下の3種類のセキュリティの対象と制御方法をANDしたものになる。

/対象制御方法
1エンティティセキュリティ ロール
2レコード共有
3フィールドフィールド セキュリティ プロファイル

AND

  • セキュリティ ロール・共有は、フィールド セキュリティを拡張しない。
  • 共有はセキュリティ ロールのスコープを拡大するが、
    • ユーザのアクセス許可は拡張しない。
    • アクセス レベルは拡張しない(ユーザ レベル以上が持っていない特権は変更できない)。
  • フィールド セキュリティは
  • レコードの特権(アクセス許可)を拡張しない。
  • レコードのアクセス レベルを拡張しない。

アクセス チーム テンプレート

  • アクセス チームを作成し同僚をレコードに簡単にリンクすることで通常持たないアクセス許可を与える。
  • 共有(アクセス レベルは適用されない)に似ているが、こちらの方が中央のアクセス許可の定義を容易に適用可能。

共有の問題解決

アクセス チーム テンプレートは、以下の共有の問題を解決する。

問題

  • 共有の度に、共有するユーザに[共有]ダイアログ ボックスを使用してアクセス許可を付与する必要がある。
  • [共有]ダイアログ ボックスを開かないと、共有されたレコードに誰がアクセスできるか判断できない。

解決

[共有]ダイアログ ボックスを開く必要がない。

  • システム カスタマイザーの用意したアクセス許可セットを使用して、
    共有するユーザに迅速にアクセス許可を付与することができる。
  • 迅速に、共有レコードにアクセス可能なユーザの確認と編集ができる。
    • レコードに対するアクセス権を持つユーザの一覧を出力できる。
    • 特権を持つユーザは、一覧からのユーザとアクセス権を変更できる。

アクセス チーム テンプレートの構成

  • エンティティのアクセス チームを有効にして変更を公開する。
  • アクセス チーム テンプレートを作成してアクセス許可を定義する。
  • エンティティのフォームでユーザ追加して表示するサブグリッドを追加する。
  • このサブグリッドは、1つのアクセス チーム テンプレートに関連付けられる。

アクセス チーム テンプレートの設定内容

  • 名前
  • 説明
  • アクセス権
    • 削除
    • 追加
    • ,etc(セキュリティ ロールや共有で称されるアクセス許可と同じ)
  • 対象エンティティ
    • 1つのエンティティに複数のアクセス チーム テンプレートを作成できる。
    • この最大値は、PowerShellで変更可能
      • MaxAutoCreatedAccessTeamsPerEntity?
        エンティティに対して定義可能なアクセス チーム テンプレート数(既定値は2)
      • MaxEntitiesEnabledForAutoCreatedAccessTeams?
        自動生成されたアクセス チームに対して有効にできるエンティティ数?(既定値は5)

アクセス チームの生成

  • アクセス チームは、ユーザをサブグリッドに追加することで自動生成される。
    • この操作は”レコードにアクセス チーム メンバを追加する”と言う。
  • ”アクセス チーム メンバを追加する”ユーザは、
    • レコードにレコードに対する共有特権が必要。
    • アクセス チーム テンプレートに含まれるすべてのアクセス許可が必要。
    • 標準の共有でも、共有するユーザの持っている以上のアクセス許可は付与できない。
  • ”アクセス チーム メンバに追加される”ユーザは、
    • アクセス チーム テンプレートに含まれるすべてのユーザ レベルのアクセス許可が必要。
    • 標準の共有では、共有されるユーザの持っている以上のアクセス許可を付与できる。
  • アクセス チーム テンプレートに共有特権があると、
    すべてのアクセス チーム メンバは、アクセス チーム メンバを追加できるようになる。
  • アクセス チームにより、
    • レコード レベルでは、各ユーザと個別に共有されなくなる。
    • しかし、エンティティ レベルでは、各ユーザと個別の共有が可能のままである。
      エンティティのコマンド バーをカスタマイズして、共有用のボタンを削除/非表示にすることはできる。
      これは、エンティティのコマンド バーを定義するリボンXMLのカスタマイズにより行う。
  • アクセス チーム名は、
    "レコードGUID" + "サブグリッドに関連付けられたアクセス チーム テンプレートのGUID" になる。
  • これにより生成されるチームの
    • 種類は、アクセス チームとなり、
    • [システムで管理されている]プロパティは、"はい"に設定される。
    • この設定のチームは、チームの既定のビューでは表示されない。

監査機能

監査機能のレベル

3つのレベルで監査機能を有効にできる。

組織レベル

  • 有効化:[設定] ---> [管理] ---> [システムの設定] ---> [監査]
  • 用途:システム レベルの変更が監査対象になり、不正な変更、誤った変更の判断・修正を支援する。

エンティティ レベル

フィールド レベル

監査イベントの確認

  • 監査を有効にすると、変更が追跡され、SQLServerの監査テーブルに保存される。
  • すべての監査エントリは、イベント種類、ユーザ、日付・時刻を記録している。

確認方法

監査イベントは以下で確認できる。

  • 監査履歴
    • [監査履歴の表示]で表示
    • レコード単位にレコード フォームのナビゲーション バーを使用してアクセスする。
    • レコード フォームが表示されなくなるので、削除されたレコードに対しては使用できない。
  • 監査概要ビュー
    • [監査の概要の表示]で表示
    • 組織レベル、エンティティ レベル、レコード レベルのイベントとデータ変更の概要が表示される。
    • 変更の概要(CRUD)のみ表示され、変更の詳細(データ値)は表示されない。

アクセス制御

  • 監査データへのアクセス許可
    • 監査データのアクセスには監査の特権が必要になる。
    • この特権の設定
      セキュリティ ロールの[コア レコード]タブから設定する。
      • [監査履歴の表示]
      • [監査の概要の表示]
    • 既定のセキュリティ ロールと監査の特権
      一部のセキュリティロールでは、以下の監査の特権が既定で有効になっている。
      • ”上司”レベル以上のセキュリティ ロール:[監査履歴の表示]が有効
      • システム管理者ロールのセキュリティ ロール:唯一、[監査の概要の表示]が有効
  • エンティティ、レコード、フィールドの監査データへのアクセス許可
  • エンティティとレコード単位での監査の許可は設定できないが、
    レコード フォームが表示できなければレコードは監査できないので、
    合わせてエンティティとレコードの読み取りアクセス許可が必要になる。
  • 当然、フィールド セキュリティも考慮される。
    フィールド セキュリティで読み取りアクセス許可が無い場合、
    そのフィールドの監査データにはアクセスできない。
    合わせてフィールド セキュリティの読み取りアクセス許可が必要になる。

監査ログの格納状態

  • SQL Serverのパーティショニングの機能を使用して、
    監査ログが四半期の単位でパーティション分割されている。
  • これにより、削除やアーカイブのスライディング ウィンドウ実装が可能。
  • 最も古い監査ログから削除やアーカイブのスライディング ウィンドウ操作が可能。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-27 (月) 22:51:54 (934d)