Zugriffssteuerungslisten-API – ServiceNow Fluent

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 5 Minuten Lesedauer
  • Die API für Zugriffssteuerungslisten enthält Objekte, die Zugriffssteuerungslisten [sys_security_acl] definieren, die Teile einer Anwendung sichern.

    ACL-Objekt

    Konfigurieren Sie eine anwenderdefinierte ACL-Regel [sys_security_acl], um den Zugriff auf neue Objekte zu sichern oder das Standardsicherheitsverhalten zu ändern.

    ACLs müssen eine oder mehrere Rollen, ein Sicherheitsattribut, eine Bedingung oder ein Skript enthalten.

    Tabelle : 1. Eigenschaften
    Name Typ Beschreibung
    $id Zeichenfolge oder Zahl Erforderlich. Eine eindeutige ID für das Metadatenobjekt, die im folgenden Format bereitgestellt wird: wobei<value> ist eine Zeichenfolge oder Zahl.
    $id: Now.ID[<value>]

    Wenn Sie die Anwendung erstellen, wird diese ID in eine eindeutige sys_ID gehasht.

    table Zeichenfolge Der Name der Tabelle, für die die ACL gilt.

    Diese Eigenschaft gilt nur und ist erforderlich, wenn die Typeigenschaft einen der folgenden Werte aufweist: ux_data_broker, ux_page, ux_route, pd_action oder record.

    Feld Zeichenfolge Der Name eines zu sichernden Felds in der Tabelle. Sie können das Platzhalterzeichen („*“) verwenden, um alle Felder auszuwählen.

    Diese Eigenschaft gilt nur und ist erforderlich, wenn die Typeigenschaft einen der folgenden Werte aufweist: ux_data_broker, ux_page, ux_route, pd_action oder record.

    name Zeichenfolge Der Name der ACL.

    Diese Eigenschaft gilt nur und ist erforderlich, wenn die Typeigenschaft einen der folgenden Werte aufweist: rest_endpoint, ui_page, Processor, graphql, client_callable_flow_object oder client_callable_script_include.

    operation Zeichenfolge Erforderlich. Der Vorgang, den diese ACL-Regel sichert. Eine ACL-Regel kann nur einen Vorgang sichern. Um mehrere Vorgänge zu sichern, erstellen Sie für jeden eine separate ACL-Regel.

    Der Vorgang muss ausgeführt werden, wenn die Typeigenschaft „client_callable_flow_object“, „client_callable_script_include“, „graphql“, „processor“ oder „rest_endpoint“ ist.

    Gültige Werte: execute, create, read, write, delete, edit_task_relations, edit_ci_relations, save_as_template, add_to_list, report_on, list_edit, report_view, personalize_choices

    Typ Zeichenfolge Der Typ des Objekts, das diese ACL-Regel sichert. Der Typ bestimmt, welche Vorgänge verfügbar sind.

    Wenn Sie nach dem Erstellen einer ACL-Regel den Typ ändern möchten, müssen Sie die ACL löschen und eine neue mit dem richtigen Typ erstellen.

    Gültige Werte: record, rest_endpoint, ui_page, Processor, graphql, pd_action, ux_data_broker, ux_page, ux_route, client_callable_flow_object, client_callable_script_include

    Standard: Datensatz

    aktiv Boolean Kennzeichnung, die angibt, ob die ACL-Regel erzwungen wird.
    Gültige Werte:
    • „wahr“: Die ACL-Regel wird erzwungen.
    • „falsch“: Die ACL-Regel wird nicht erzwungen.

    Standardwert: wahr

    Rollen Array Die Variablenbezeichner von Rollenobjekten oder sys_ids von Rollen, die ein Anwender haben muss, um auf das Objekt zugreifen zu können. Weitere Informationen finden Sie unter Rollen-API – ServiceNow Fluent.

    ACLs müssen eine oder mehrere Rollen, ein Sicherheitsattribut, eine Bedingung oder ein Skript enthalten.

    Hinweis:
    Benutzer mit der Administratorrolle bestehen diese Berechtigungsprüfung immer, da die Administratorrolle Benutzern automatisch alle anderen Rollen gewährt.
    Skript Skript Eine Funktion oder ein Inline-Skript, dem ein Skript -Tag vorangestellt ist. Das anwenderdefinierte Skript sollte die Berechtigungen definieren, die für den Zugriff auf das Objekt erforderlich sind.

    ACLs müssen eine oder mehrere Rollen, ein Sicherheitsattribut, eine Bedingung oder ein Skript enthalten.

    Hinweis:
    Wenn die Typeigenschaft „graphql“ lautet, werden Skripts nicht unterstützt.

    Verwenden Sie für Funktionen den Namen einer Funktion, eines Funktionsausdrucks oder einer Standardfunktion, die aus einem JavaScript-Modul exportiert und in die .now.ts- Datei importiert wurde. Informationen zu JavaScript-Modulen finden Sie unter JavaScript-Module und Bibliotheken von Drittparteien.

    Inline-Skripts verwenden das Skript- Tag im folgenden Format:
    script: script`gs.info('info')`,
    Das Skript kann die Werte der aktuellen und vorherigen globalen Variablen und Systemeigenschaften verwenden. Das Skript muss auf eine von zwei Arten eine Wahr- oder Falsch-Antwort generieren:
    • geben Sie eine Antwortvariable zurück, die auf den Wert „true“ oder „false“ festgelegt ist
    • als „true“ oder „false“ auswerten
    In beiden Fällen erhalten Benutzer nur dann Zugriff auf das Objekt, wenn das Skript als „true“ ausgewertet wird und der Benutzer die Bedingungen der ACL-Regel erfüllt. Sowohl die Bedingungen als auch das Skript müssen zu „true“ ausgewertet werden, damit ein Benutzer auf das Objekt zugreifen kann.
    Hinweis:
    Wenn sich das ausgewertete Element in einer zugehörigen Liste befindet, verweist current auf das Element, auf dem sich die zugehörige Liste befindet, und nicht auf das aktuelle Element, für das die ACL gilt. Wenn sich das Element jedoch, für das Sie die ACL auswerten, nicht in einer zugehörigen Liste befindet, verweist current auf das tatsächliche Element.
    admin_overrides Boolean Kennzeichnung, die angibt, ob Anwender mit der Administratorrolle die Berechtigungsprüfung für diese ACL-Regel automatisch bestehen.
    Gültige Werte:
    • „wahr“: Administratoren bestehen die Berechtigungsprüfung automatisch.
    • „falsch“: Administratoren müssen die in dieser ACL-Regel definierten Berechtigungen erfüllen, um Zugriff auf das gesicherte Objekt zu erhalten. Verwenden Sie die Eigenschaften condition oder script, um eine Berechtigungsprüfung zu erstellen, die Administratoren bestehen müssen.

    Administratorbenutzer bestehen unabhängig davon, welche Skript- oder Rollenbeschränkungen gelten. Die Rolle niemand, die nur von ServiceNow -Mitarbeitern zugewiesen werden kann, hat jedoch Vorrang vor der Option zum Überschreiben des Administrators. Wenn einer ACL die Rolle niemand zugewiesen ist, können Administratoren nicht auf die Ressource zugreifen, auch wenn admin_overrides auf „wahr“ festgelegt ist. Weitere Informationen finden Sie unter Basissystemrollen.

    Standardwert: wahr

    Bedingung Zeichenfolge Eine Filterabfrage, die die Felder und Werte angibt, die „wahr“ sein müssen, damit Anwender auf das Objekt zugreifen können. Weitere Informationen finden Sie unter Operators available for filters and queries.

    ACLs müssen eine oder mehrere Rollen, ein Sicherheitsattribut, eine Bedingung oder ein Skript enthalten.

    description Zeichenfolge Eine Beschreibung des Objekts oder der Berechtigungen, die durch diese ACL-Regel gesichert werden.
    local_or_existing Zeichenfolge Der Typ des anzuwendenden Sicherheitsattributs.
    Gültige Werte:
    • Lokal: Ein Sicherheitsattribut basierend auf der Eigenschaft condition, das nur für die ACL gespeichert wird, in der es erstellt wird.
    • Vorhanden: Ein vorhandenes Sicherheitsattribut, auf das in der Eigenschaft security_attribute verwiesen wird.

    Standard: Lokal

    security_attribute Zeichenfolge Zu verwendende vordefinierte Bedingungen. Zum Beispiel, ob ein Benutzer die Identität eines anderen Benutzers annimmt. Weitere Informationen zu Sicherheitsattributen finden Sie unter OOB (Out-of-Box) Security Attributes.

    ACLs müssen eine oder mehrere Rollen, ein Sicherheitsattribut, eine Bedingung oder ein Skript enthalten.

    Hinweis:
    Für Sicherheitsattribute, bei denen das Feld Is localized auf „wahr“ festgelegt ist, muss die Eigenschaft „local_or_existing“ der ACL auf „Lokal“ festgelegt werden. Wenn das Feld Is localized auf „false“ festgelegt ist, muss die Eigenschaft „local_or_existing“ auf „Existing“ festgelegt werden.

    Gültige Werte: role_explicit, group_explicit, user_is_authenticated, impersonating, interaktive_session, has_admin_role, role,logged_in, network_criteria, group, allow_unauth_roleless_acl

    „decision_type“ Zeichenfolge Gibt an, ob die ACL den Zugriff zulassen oder verweigern soll.
    Gültige Werte:
    • zulassen: Die ACL ermöglicht den Zugriff.
    • deny: Die ACL verweigert den Zugriff.

    Standard: zulassen

    import { Acl } from "@servicenow/sdk/core";
    
    export default Acl({
        $id: Now.ID['task_delete_acl'],
        active: true,
        admin_overrides: true,
        type: 'record',
        table: 'task',
        field: 'description',
        operation: 'delete',
        roles: [adminRole, managerRole],
    })
    Die Rollen, auf die verwiesen wird, werden mithilfe des Rollenobjekts definiert:
    import { Role } from "@servicenow/sdk/core";
    
    const managerRole = Role({ 
       $id: Now.ID['manager_role'], 
       name: 'x_snc_example.manager' 
    })
    
    const adminRole = Role({ 
       $id: Now.ID['admin_role'], 
       name: 'x_snc_example.admin', 
       contains_roles: [managerRole] 
    })