設定権限

階層による表示範囲

読み手がどこに位置するか(その事業単位、その下の単位、またはその報告ライン)によって、誰がレコードを読めるかを広げます。unit、unit_and_below、own_and_reports のスコープを使います。

対応エディション

階層による表示範囲は、組織の中でどこに位置するかによって、人が読めるレコードを広げます。地域マネージャーは自分の地域の誰かが所有するすべてのレコードを見られ、チームリーダーは直属と間接の部下のレコードを見られます。これは権限セットでオブジェクトごとに、読み取り(または書き込み)のスコープとして設定します。

利用できる場所。 セルフマネージドの ObjectOS Enterprise のデプロイメントで、hierarchySecurity 機能を含むライセンスのもと。ObjectOS Cloud では、Enterprise 契約のもと。それ以外のどこでも、このページの 3 つのスコープは所有者自身のレコード以上のものを何も付与しません。開いた側に倒れて失敗することは決してありません。要件を参照してください。

3 つのスコープ

own(レコードの所有者)と org(組織内の全員)はすべてのエディションで機能します。3 つの階層のスコープは、その間に位置します。

スコープ読み手が見られるのは、次の人が所有するレコード構築の元
unit読み手と、読み手の事業単位のほかのすべてのメンバー。下へは降りません。読み手のポジションの割り当て、なければ単位のメンバーシップ
unit_and_below読み手の事業単位とツリーでその下にあるすべての単位、そしてそのすべてのメンバー事業単位のツリー
own_and_reports読み手と、管理の連鎖でその下にいる全員(直属と間接)各ユーザーのマネージャー

スコープは、人が読めるものを広げるだけです。共有ルールとレコードの共有に追加され、誰かがすでに持っているアクセスを取り除くことはなく、org を越えることもありません。スコープが決めるのは権限がどのレコードに適用されるかであって、新しい権限を付与することは決してありません。

例

事業単位のツリーには Region があり、その下に Team、そして兄弟の単位 Other があります。Alice と Carol は Region に、Bob は Team に、Dave は Other にいます。Bob は Alice の部下です。

  • unit の Alice が見られるのは Alice、Carol です。Bob と Dave は見られません。
  • unit_and_below の Alice が見られるのは Alice、Carol、Bob です。Region は Team へ降ります。兄弟の単位の Dave は外れたままです。
  • unit_and_below の Bob が見られるのは Bob だけです。下に何もない単位が、親へと上に広がることはありません。
  • own_and_reports の Alice が見られるのは Alice、Bob です。Bob の単位がどこであっても、彼女の部下だからです。

スコープを設定する

権限セットのオブジェクトのエントリに readScope(必要なら writeScope も)を設定します。地域全体を読む営業担当者:

// Keys of a permission set; its other keys are omitted.
objects: {
  opportunity: { allowRead: true, allowEdit: true, readScope: 'unit_and_below' },
}

自分の報告ラインに限られるチームリーダー:

// Keys of a permission set; its other keys are omitted.
objects: {
  opportunity: { allowRead: true, readScope: 'own_and_reports' },
}

階層のスコープを使う、コードで書かれたスタックは requires: ['hierarchy-security'] を宣言しなければなりません。なければスタックはビルドされません。スコープを解決できない環境は、それを使うメタデータの公開を拒否し、そのようなドラフトが保存されたときに警告します。

どの単位があなたのものか

unit と unit_and_below では、読み手の単位はまずポジションの割り当てから取られます。現在の各割り当てが配置されている事業単位です。配置された割り当てを持たない読み手だけが、メンバーである単位にフォールバックします。

これは、複数の単位に属していても 1 つしか管理していない人にとって重要です。Alice は Region と部門横断の Project 単位のメンバーですが、彼女のセールスマネージャーのポジションは Region で割り当てられています。unit では、彼女が見られるのは Region のメンバーだけです。Project のメンバーシップが、彼女の読めるものを広げることはありません。

  • 配置された割り当てが複数あれば合算されます:読み手の単位はそのすべてです。
  • 期限切れの割り当ては数えられません:valid-from / valid-until の期間外にある割り当ては、その単位の付与を止めます。

割り当てと事業単位のツリーについてはポジションを参照してください。

投入するデータ

スコープは、ディレクトリや人事のソースが SCIM、連携、管理画面を通じて提供するデータを読みます。

データ使うもの
事業単位のツリー(各単位の親)unit_and_below
ポジションの割り当て(事業単位と有効期間付き)unit、unit_and_below(第一候補)
事業単位のメンバーシップunit、unit_and_below(フォールバック)
各ユーザーのマネージャーown_and_reports

どちらのたどり方も 20 階層までに制限されているので、不正なツリーや偶然の報告の循環が無限ループになることはありません。結果はユーザーごとに短時間キャッシュされ、ツリー、メンバーシップ、割り当て、またはユーザーのマネージャーが変わるたびに消去されます。

報告ラインは 1 つの組織の中にとどまる

複数の組織を持つデプロイメントでは、マネージャーとその部下は少なくとも 1 つの組織を共有していなければなりません。

  • 組織をまたいでマネージャーを設定することは拒否されます。 部下と提案されたマネージャーがどちらも組織に属していて、1 つも共有していない場合、書き込みは 400 INVALID_REFERENCE(reason: 'cross-organization-manager')で拒否されます。管理画面、API、インポート、システムのコードのいずれからでも同じです。修正するには、2 人に共有の組織を与えるか、部下自身の組織の中からマネージャーを選びます。
  • 「同じ組織」ではなく「組織を共有する」です。 グループと工場の両方のメンバーであるグループレベルのマネージャーは、どちらの人も管理できます。
  • まだ組織を持たないユーザーが拒否されることは決してなく、たどる対象から外されることもありません。
  • 読み取りも同じルールに従います。 own_and_reports は境界で止まります。別の組織にだけ属する部下は外され、その下の全員も外されます。

グループレベルの監督のためには、その人に監督する組織のメンバーシップを与えてそこでより広いスコープの権限セットを付与するか、1 つの組織の中で事業単位のツリーを使ってください。

要件

  • セルフマネージドの ObjectOS Enterprise: 機能に hierarchySecurity を含むライセンス(デフォルトの Enterprise の機能セットは含みます)。なければ、スコープは own として動作します。
  • ObjectOS Cloud: Enterprise 契約。Free と Team ではスコープは own として動作し、環境はそれを使うメタデータの公開を拒否します。
  • ObjectOS Community: 利用できません。スコープは own として動作します。

ほかのすべての Enterprise の機能と同じく、権利を失うとアクセスが狭まります。ランタイムが止まることは決してありません。

次へ