ACL に関する質問(Admin fundamentals)

其偉単
Tera Expert
質問する場所がなく、ここでヘルプを呼びます。是非教えて下さい。

①一番下のキャプチャーですが、「ACL name matches*」は理解できませんでした。どのような意味でしょうか?すべてのテーブルにアクセスできるということでしょうか?

②servicenow learningのテキストでは「テーブルアクセス制御 (ACL) ルールを満たさない場合、このユーザーはフィールド ACL ルールを満たしていても、テーブルにあるすべてのフィールドへのアクセスが拒否されます。」と記載されています。一番下のキャプチャーを見ると、少し矛盾しているようにも見えます。テーブルルールをいずれもクリアできなかったら、緑の矢印がフィールドルールを指しています。フィールドルールのどれかとマッチできれたら、match foundになり、Passに繋がっていきます。自分の理解を検証したいので、是非先生の理解を共有していただけないでしょうか?宜しくお願い致します。

 

③servicenow learningのテキストでは「アクセス制御ルールで複数の権限が指定されている場合、ユーザーがオブジェクトと操作へのアクセス権を得るには、すべての権限に適合する必要があります。権限の要件をどれか 1 つでも満たしていない場合、このユーザーは該当するオブジェクトや操作にアクセスできません。」と記載されています。少し理解できませんでした。つまり write権限を得るには、create権限も得ないといけないのでしょうか?理解できませんでした。


お手数をおかけしますが、どうぞよろしくお願いいたします

 

 

スクリーンショット 2024-06-24 161823.png

1 件の受理された解決策

iwai
Giga Sage

* Q1、 ①一番下のキャプチャーですが、「ACL name matches*」は理解できませんでした。どのような意味でしょうか?すべてのテーブルにアクセスできるということでしょうか?


* A1、 ACLのName が * になっているものと、一致した場合と言う意味です。

iwai_0-1719492900414.png

--------------------

* Q2、②servicenow learningのテキストでは「テーブルアクセス制御 (ACL) ルールを満たさない場合、このユーザーはフィールド ACL ルールを満たしていても、テーブルにあるすべてのフィールドへのアクセスが拒否されます。」と記載されています。一番下のキャプチャーを見ると、少し矛盾しているようにも見えます。


* A2、Nameが一致する事と、ACLルールを満たすことは別々に考えてください。

1の1,2,3の順番で、Nameが一致するルールがあるかを判定し、一致するNameのルールを満たすか判定をします。一致するNameのルールがある場合図の黒線の経路を進みルールを満たすか判定をします。黒線の先にある判定がlearningのテキストに書いてある内容で、ルールを満たさなければフィールドの判定に進まずアクセスを否定する事になります。

1の1,2,3のどれにも一致するNameのACLがない場合は、そのまま2番に進みます。これはACLルールを満たさないとは違います。一致するNameがない状態とは該当するACLルールがないので、先に進んでフィールド判定を行っています。

--------------------

* Q3、③servicenow learningのテキストでは「アクセス制御ルールで複数の権限が指定されている場合、ユーザーがオブジェクトと操作へのアクセス権を得るには、すべての権限に適合する必要があります。権限の要件をどれか 1 つでも満たしていない場合、このユーザーは該当するオブジェクトや操作にアクセスできません。」と記載されています。少し理解できませんでした。

*A3、以下の図のすべての権限に適合する必要があると言う意味であるならば、図の通りすべてに適合する必要がある図になっています。すべてとはロール、条件、スクリプトの3つすべてに適合する必要があると言う意味です。ロールが設定されていればそれに適合し、レコード条件が設定されていればそれに適合し、スクリプトが設定されていればそれに適合し、すべてに適合する必要があります。 もしこのルールに適合しない場合、次にNameが一致するACLルールを探してひとつでも適合すればアクセスできます。

それらの説明が公式のDocsに記載してあります。

ACL ルールのタイプ (servicenow.com)

アクセス制御リストの詳細 (servicenow.com)

 
 

iwai_2-1719497390688.png

 

 

元の投稿で解決策を見る

3件の返信3

Mark Manders
Mega Patron

You need access to the table, to be able to access the fields. I had an example this morning:

 

sys_user_group table has the name field. User had the snc_internal role, but on the record producer on the portal, was not able to select any group. There were ACL's for the sys_user_group.name field for the snc_internal role, but because the role wasn't allowed to read the record, it made no difference that the field was allowed.


Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark

iwai
Giga Sage

* Q1、 ①一番下のキャプチャーですが、「ACL name matches*」は理解できませんでした。どのような意味でしょうか?すべてのテーブルにアクセスできるということでしょうか?


* A1、 ACLのName が * になっているものと、一致した場合と言う意味です。

iwai_0-1719492900414.png

--------------------

* Q2、②servicenow learningのテキストでは「テーブルアクセス制御 (ACL) ルールを満たさない場合、このユーザーはフィールド ACL ルールを満たしていても、テーブルにあるすべてのフィールドへのアクセスが拒否されます。」と記載されています。一番下のキャプチャーを見ると、少し矛盾しているようにも見えます。


* A2、Nameが一致する事と、ACLルールを満たすことは別々に考えてください。

1の1,2,3の順番で、Nameが一致するルールがあるかを判定し、一致するNameのルールを満たすか判定をします。一致するNameのルールがある場合図の黒線の経路を進みルールを満たすか判定をします。黒線の先にある判定がlearningのテキストに書いてある内容で、ルールを満たさなければフィールドの判定に進まずアクセスを否定する事になります。

1の1,2,3のどれにも一致するNameのACLがない場合は、そのまま2番に進みます。これはACLルールを満たさないとは違います。一致するNameがない状態とは該当するACLルールがないので、先に進んでフィールド判定を行っています。

--------------------

* Q3、③servicenow learningのテキストでは「アクセス制御ルールで複数の権限が指定されている場合、ユーザーがオブジェクトと操作へのアクセス権を得るには、すべての権限に適合する必要があります。権限の要件をどれか 1 つでも満たしていない場合、このユーザーは該当するオブジェクトや操作にアクセスできません。」と記載されています。少し理解できませんでした。

*A3、以下の図のすべての権限に適合する必要があると言う意味であるならば、図の通りすべてに適合する必要がある図になっています。すべてとはロール、条件、スクリプトの3つすべてに適合する必要があると言う意味です。ロールが設定されていればそれに適合し、レコード条件が設定されていればそれに適合し、スクリプトが設定されていればそれに適合し、すべてに適合する必要があります。 もしこのルールに適合しない場合、次にNameが一致するACLルールを探してひとつでも適合すればアクセスできます。

それらの説明が公式のDocsに記載してあります。

ACL ルールのタイプ (servicenow.com)

アクセス制御リストの詳細 (servicenow.com)

 
 

iwai_2-1719497390688.png

 

 

いわいさん、ご解答頂き、ありがとうございました。大変助かりました!