Explizite Rollen

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 10 Minuten Lesedauer
  • Sie können internen Benutzern und externen Benutzern Zugriff auf Ihre Instanz gewähren. Möglicherweise möchten Sie jedoch nicht, dass beide Benutzertypen dieselben Zugriffsrechte haben. Um die Sicherheit zu erhöhen, muss jeder Benutzer mindestens eine Rolle besitzen, damit die Instanz zwischen internen und externen Benutzern unterscheiden kann.

    Ab Release Paris können Benutzer nicht mehr beide expliziten Rollen (snc_internal und snc_external) haben. Auch durch Gruppen- und Rolleneinschluss dürfen nicht beide Rollen enthalten sein, da dies dazu führen würde, dass jedes Gruppenmitglied oder jeder Benutzer, der einer solchen Gruppe oder Rolle zugeordnet ist, automatisch beide Rollen hätte. ServiceNow AI Platform bricht jeden Vorgang ab, der ein solches Szenario hervorrufen würde.

    Hinweis:
    Sie können keine anderen Rollen als enthaltene Rollen zu „ snc_external„ Oder “ snc_internal„ Rollen.
    Externe Benutzer müssen mindestens die Rolle snc_external erhalten. Die Rolle snc_external gibt an, dass es sich gegenüber Ihrer Organisation um einen externen Benutzer handelt. Sie sollten keinen Zugriff auf Ressourcen haben, es sei denn, dies wird ausdrücklich erlaubt durch ACLs für die Rolle snc_external oder zusätzliche Rollen, die die Rolle snc_external erben. Standardmäßig haben Benutzer mit der Rolle snc_external keinen Zugriff auf:
    • Tabellen ohne die Rolle, die die Rolle snc_external oder public erbt
    • Ressourcen vom Typ „nicht Datensatz“, z. B. Prozessoren und UI-Seiten, ohne Zugriff auf die Rolle „snc_external“ oder eine Rolle zu gewähren, die die Rolle „snc_external“ erbt.
    • Platform Analytics-Dashboards.

    Markieren Sie die Rolle snc_internal nicht als erweitert. Andernfalls können interne Benutzer nicht auf die Instanz zugreifen.

    Plugin „Explicit Roles“

    Wenn das „Explicit Roles“-Plugin aktiviert ist, gilt Folgendes:

    • Alle Anwender müssen über die Rolle „snc_internal“ verfügen, um auf interne Ressourcen zuzugreifen, oder über die Rolle „snc_external“, um auf externe Ressourcen zuzugreifen. Benutzer ohne eine dieser expliziten Rollen können nur auf öffentliche Ressourcen zugreifen.
    • Allen vorhandenen Benutzern wird automatisch die Rolle snc_internal zugewiesen. Durch diese Rolle werden die vorhandenen Zugriffsebenen und das Systemverhalten nicht geändert. Stattdessen stellt sie eine Kategorie bereit, um interne Benutzer von externen Benutzern zu unterscheiden. Alle internen Benutzer behalten dieselbe Zugriffsebene bei wie vor der Aktivierung des Plugins.
      Tipp:
      Um Änderungen an vorhandenen Funktionen für Benutzer zu verhindern, wird durch die Aktivierung des Plugins „Explicit Roles“ die Benutzerrolle snc_internal allen vorhandenen Benutzern in der Instanz zugewiesen. Dies schließt alle externen Benutzer ein, die hinzugefügt wurden, bevor das Plugin „Explicit Roles“ aktiviert wurde. Nachdem das Plugin „Explicit Roles“ aktiviert wurde, gehen Sie für alle externen Benutzer, die vor Aktivierung des Plugins „Explicit Roles“ hinzugefügt wurden, wie folgt vor:
      • Entfernen Sie die Rolle snc_internal.
      • Fügen Sie die Rolle snc_external hinzu.
      Durch die vorstehenden Maßnahmen können Sie sicherstellen, dass externe Benutzer, die vor der Aktivierung des Plugins „Explicit Roles“ hinzugefügt wurden, keinen Zugriff auf interne Ressourcen haben, die nur internen Benutzern zur Verfügung stehen sollten.
    • Neu erstellten Benutzern wird automatisch die Rolle snc_internal zugewiesen, wenn sie erstmalig versuchen, sich bei der Instanz anzumelden, es sei denn, ihnen wurde explizit die Rolle snc_external zugewiesen. Sie können die Rolle snc_external einem neuen Benutzer hinzufügen, bevor er sich zum ersten Mal bei der Instanz anmeldet, um externe Benutzerrechte bereitzustellen.
      Wichtig:

      Aktivieren Sie dieses Plugin während eines Wartungsfensters oder wenn nur wenige Benutzer angemeldet sind. Benutzern, die derzeit bei der Aktivierung des Plugins angemeldet sind, wird die Rolle snc_internal nicht dynamisch zugewiesen. Stattdessen müssen sich Benutzer abmelden und wieder anmelden, um die Rolle snc_internal zu erhalten. Sobald das Plugin aktiviert ist, können Sie die Rollen snc_internal und snc_external jederzeit hinzufügen oder entfernen, um Benutzerrechte zu ändern.

      Nach der Aktivierung des Plugins erhält der Benutzer bei jeder Anmeldung die Rolle snc_internal, sofern das Konto diese Rolle noch nicht hatte, oder die Rolle snc_external. Dies schließt per Identitätswechsel angemeldete Benutzer ein.

    • Allen vorhandenen ACLs ohne Rollenanforderung wird automatisch die Rolle snc_internal zugewiesen. Da sowohl vorhandenen ACLs als auch Benutzern die Rolle „snc_internal“ zugewiesen ist, ändern sich die vorhandenen Zugriffsebenen nicht.
    • Neu erstellten ACLs ohne Rollenanforderung wird automatisch die Rolle snc_internal zugewiesen. Diese Rollenzuweisung gilt nicht für neu erstellte ACLs mit zugewiesener Rolle.
    • Für alle vorhandenen Prozessor-Datensätze [sys_processor] oder neu erstellte Prozessor-Datensätze [sys_processor] mit Typ = Skript wird die Rolle snc_internal automatisch zum Feld Rollen hinzugefügt, wenn das Feld leer ist.
    • Um den Zugriff auf UI-Seiten auf interne Benutzer zu beschränken, weist das Plugin automatisch die Rolle snc_internal der * ACL mit dem Typ ui_page zu.
    • Um den Zugriff auf Prozessoren auf interne Benutzer zu beschränken, weist das Plugin automatisch die Rolle snc_internal der * ACL mit dem Typ processor zu.
    • Externe Benutzer müssen mindestens die Rolle snc_external erhalten, um auf die Instanz zuzugreifen. Diese Rolle muss externen Benutzern manuell erteilt werden. Der Zugriff auf Datensätze wird über ACLs gewährt.

    Verschieben Sie keine System-Update Sets zwischen Instanzen, unabhängig davon, ob das Plugin „Explicit Roles“ aktiviert oder deaktiviert ist. Weitere Informationen finden Sie unter System-Update Sets.

    Hinweis:
    Dieses Plugin erfordert auch das Plugin Contextual Security Manager.

    glide.security.explicit_roles.do_not_fix Verhalten

    Ab Xanadu Lassen Sie den los glide.security.explicit_roles.do_not_fix Wurde mit Änderungen an „snc_internal“ angepasst. Die Rolle „snc_internal“ ist jetzt sowohl im Arbeitsspeicher als auch in „sys_user_has_role“ identisch. Das neue Verhalten für glide.security.explicit_roles.do_not_fix Ist:
    Tabelle : 1. glide.security.explicit_roles.do_not_fix Neues Verhalten
    Wert Ergebnis
    Falsch Fügen Sie die Rolle „snc_internal“ sowohl im Arbeitsspeicher als auch „sys_user_has_role“ hinzu
    True Fügen Sie keine Rolle „snc_internal“ im Arbeitsspeicher oder „sys_user_has_role“ hinzu
    Um die Rolle „snc_internal“ für bestimmte Anwender auszuschließen, verwenden Sie glide.security.explicit_roles.ignore.snc_internal.exclude_role_list Eigenschaft.
    Tipp:
    Um zum vorherigen zurückzukehren glide.security.explicit_roles.do_not_fix Verhalten Verwenden Sie glide.security.explicit_roles.do_not_fix_in_memory Eigenschaft.

    Externen Benutzer Zugriff auf Tabellen gewähren

    Sie können externen Benutzern Zugriff auf eine Tabelle gewähren, indem Sie der Tabelle eine Rolle hinzufügen, die die Rolle snc_external erbt. Weitere Informationen finden Sie unter Provide external users access to a table.

    Die hasRoles()-Methode

    Die Methode hasRoles() ist zwar noch verfügbar, wird aber im Geneva-Release abgeschafft. Verwenden Sie stattdessen die Methode hasRole(role name).

    Wenn Sie die Methode hasRoles() verwenden, beachten Sie die folgenden Änderungen:
    • Diese Methode schließt die snc_internal-Standardrolle automatisch aus, wenn sie nach Rollen sucht. Dies bedeutet, dass die Methode hasRoles() immer noch false zurückgibt, wenn ein Benutzer nur über die Rolle snc_internal verfügt.
    • Wenn der Benutzer die Rolle „snc_external“ hat, gibt die Methode false zurück, da die Instanz externe Benutzer als ohne Rolle betrachtet.

    Gegenseitiger Ausschluss: snc_external und snc_internal

    Die ServiceNow AI Platform verhindert, dass Benutzer gleichzeitig über beide Rollen snc_external und snc_internal verfügen. Die ServiceNow AI Platform wendet diesen gegenseitigen Ausschluss überall im System an und schreibt Fehlermeldungen für jeden Konflikt in die Protokolle.
    Hinweis:
    ACLs können beide Rollen haben, wenn die ACL-Ressourcen für alle Benutzer zugänglich sein sollen.
    Beispiel: Einem Benutzer beide expliziten Rollen hinzufügen (direkte Kollision):
    1. Weisen Sie Benutzer Abel Tuter die Rolle snc_internal zu.
    2. Weisen Sie Benutzer Abel Tuter die Rolle snc_external zu.

    Ergebnis: Das Hinzufügen der Rolle snc_external schlägt fehl, da Abel Tuter die Rolle snc_internal hat.

    Beispiel: Einer Gruppe beide expliziten Rollen hinzufügen (direkte Kollision):

    1. Stellen Sie sich eine Gruppe namens Testgruppe vor, der derzeit keine expliziten Rollen zugewiesen sind.
    2. Fügen Sie Abel Tuter der Testgruppe hinzu.
    3. Fügen Sie die Rolle snc_external der Testgruppe hinzu.

    Ergebnis: Das Hinzufügen der Rolle snc_external schlägt fehl, da Abel Tuter die Rolle snc_internal hat und nicht beide Rollen haben kann.

    Beispiel: Eine explizite Rolle einer Gruppe zuweisen, in der ein Gruppenmitglied die explizite Rolle hat, die einen Konflikt verursacht (indirekte Kollision):
    1. Weisen Sie Benutzer Abel Tuter die Rolle snc_internal zu.
    2. Stellen Sie sich eine Gruppe namens Testgruppe vor, der derzeit keine expliziten Rollen zugewiesen sind.
    3. Fügen Sie Abel Tuter der Testgruppe hinzu.
    4. Fügen Sie die Rolle snc_external der Testgruppe hinzu.

    Ergebnis: Das Hinzufügen der Rolle snc_external zur Gruppe schlägt fehl, da Abel Tuter die Rolle snc_external durch seine Zugehörigkeit zur Gruppe erben würde. Beide expliziten Rollen würden demselben Benutzer zugewiesen, was nicht zulässig ist.

    Weitere Beispiele finden Sie in der folgenden Tabelle:

    Rolle Versuchte Aktion Ergebnis
    Direkte Kollision
    Der Benutzer hat die Rolle snc_internal. Fügen Sie die Rolle snc_external hinzu. Die Aktion wird abgebrochen.
    Der Benutzer hat die Rolle snc_external. Fügen Sie die Rolle snc_internal hinzu. Die Aktion wird abgebrochen.
    Der Benutzer hat keine explizite Rolle. Fügt die Rolle snc_internal oder snc_external hinzu. Die Rolle wird hinzugefügt.
    Der Benutzer hat beide explizite Rollen (vorhandene Kollision). Fügen Sie den Benutzer einer Gruppe ohne Rollen hinzu. Die Aktion wird abgebrochen.
    Eine Rolle, die keinem Benutzer zugeordnet ist, enthält die Rolle snc_internal. Fügen Sie die Rolle snc_external hinzu. Die Aktion wird abgebrochen.
    Eine Rolle, die keinem Benutzer zugeordnet ist, enthält die Rolle snc_external. Fügen Sie die Rolle snc_internal hinzu. Die Aktion wird abgebrochen.
    Der Rolle enthält beide explizite Rollen (vorhandene Kollision). Fügen Sie die Rolle einem Benutzer, einer Rolle oder einer Gruppe hinzu. Die Aktion wird abgebrochen.
    Eine Gruppe ohne Mitglieder hat die Rolle snc_internal. Fügen Sie die Rolle snc_external hinzu. Die Aktion wird abgebrochen.
    Eine Gruppe ohne Mitglieder hat die Rolle snc_external. Fügen Sie die Rolle snc_internal hinzu. Die Aktion wird abgebrochen.
    Eine Gruppe ohne Mitglieder hat keine Rollen. Fügt die Rolle snc_internal oder snc_external hinzu. Die Rolle wird hinzugefügt.
    Indirekte Kollision
    Rolleneinschluss mit Kollision
    1. Gewähren Sie einem Benutzer mit der Rolle snc_internal die Testrolle.
    2. Fügen Sie der Testrolle die Rolle snc_external hinzu.
    Die Aktion wird abgebrochen.
    Rolleneinschluss ohne Kollision
    1. Gewähren Sie einem Benutzer ohne Rolle die Testrolle.
    2. Fügen Sie der Testrolle die Rolle snc_external hinzu.
    Die Rolle wird sowohl dem Benutzer als auch der Testrolle hinzugefügt.
    Gruppeneinschluss mit Kollision
    1. Fügen Sie einen Benutzer mit der Rolle snc_internal der „Testgruppe 2“ (untergeordnete Gruppe von Testgruppe 1) hinzu.
    2. Fügen Sie Testgruppe 2 die Rolle snc_external hinzu.
    3. Fügen Sie die Rolle snc_external der übergeordneten Gruppe „Testgruppe 1“ (übergeordnete Gruppe von Testgruppe 2) hinzu.
    Die Aktion wird abgebrochen.
    Gruppeneinschluss ohne Kollision
    1. Fügen Sie einen Benutzer ohne Rolle der Gruppe „Testgruppe 2“ (untergeordnete Gruppe von Testgruppe 1) hinzu.
    2. Fügen Sie die Rolle snc_external oder snc_internal der „Testgruppe 1“ (übergeordnete Gruppe der Testgruppe 2) hinzu.
    Die Rolle wird der übergeordneten Gruppe, der untergeordneten Gruppe und dem Benutzer hinzugefügt.
    Gruppeneinschluss plus Rolleneinschluss mit Kollision Fügen Sie contains_external der Testgruppe 1, der übergeordneten Gruppe von Testgruppe 2, hinzu. Testgruppe 1 und Testgruppe 2 erhalten beide contains_external, aber sie erhalten nicht explizit die Rolle snc_external.
    Fügen Sie die Rolle snc_internal der Testgruppe 2, der untergeordneten Gruppe von Testgruppe 1, hinzu. Die Aktion wird abgebrochen.
    Änderung der übergeordneten Gruppe plus Gruppeneinschluss
    1. Entfernen Sie Testgruppe 1 als übergeordnete Gruppe von Testgruppe 2.
    2. Fügen Sie der Testgruppe 1 die Rolle snc_internal hinzu.
    3. Fügen Sie Testgruppe 2 die Rolle snc_external hinzu.
    4. Legen Sie in Testgruppe 2 die Testgruppe 1 als übergeordnete Gruppe fest, und speichern Sie.
    Die Aktion wird abgebrochen.

    Wiederholen Sie diesen Vorgang für bereits geschachtelte Gruppen, erwarten Sie derselbe Ergebnis.

    Die Ursache einer abgebrochenen Aktion wird in der Fehlermeldung angezeigt und muss behoben werden, bevor ein erneuter Versuch erfolgreich verlaufen kann.

    Für direkte Fälle, z. B. Hinzufügen einer expliziten Rolle zu einem einzelnen Benutzer, überprüfen Sie, welche explizite Rolle der Benutzer haben soll. Wenn der Benutzer über die falsche explizite Rolle verfügt, muss diese zuerst entfernt und dann die richtige explizite Rolle hinzugefügt werden.

    Für indirekte Fälle, z. B. Hinzufügen einer expliziten Rolle zu einer Gruppe (sodass einem Gruppenmitglied beide expliziten Rollen zugewiesen werden), überlegen Sie, ob dieser Benutzer in der Gruppe sein soll. Bestimmen Sie auch, ob die explizite Rolle der Gruppe zugewiesen werden soll. Dies schließt auch Fälle ein, in denen die Rolle durch die Gruppenhierarchie und durch Rolleneinschluss geerbt wird.

    Beachten Sie, dass die ServiceNow AI Platform nur die erste mögliche Kollision meldet. Wenn nach Aufhebung der Kollision erneute Versuche wieder fehlschlagen, wobei eine andere Ursache vorliegt, sollten Sie die relevanten gegenseitigen Abhängigkeiten von Benutzern/Gruppen/Rollen umfassender analysieren. Dabei sollten Sie gegebenenfalls überdenken, wie Gruppen- und Rolleneinschlüsse aufgebaut sind.

    Fordern Sie Explizite Rollen An

    Aktivieren Sie explizite Rollen, indem Sie das Plugin Explicit Roles (com.Glide.Explicit_roles) über anfordern Now Support Servicekatalog.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Wichtig:
    Aktivieren Sie dieses Plugin während eines Wartungsfensters oder wenn nur wenige Benutzer angemeldet sind. Benutzern, die derzeit bei der Aktivierung des Plugins angemeldet sind, wird die Rolle snc_internal nicht dynamisch zugewiesen. Stattdessen müssen sich Benutzer abmelden und wieder anmelden, um die Rolle snc_internal zu erhalten. Sobald das Plugin aktiviert ist, können Sie die Rollen snc_internal und snc_external jederzeit hinzufügen oder entfernen, um Benutzerrechte zu ändern.

    Prozedur

    1. Navigieren zu Alle > Systemanwendungen > Alle verfügbaren Anwendungen > Alle.
    2. Wählen Sie Aus Plugin anfordern Um zu öffnen Aktivieren Sie Das Plugin Formular auf Now Support.
    3. Geben Sie im Formular Plugin aktivieren die folgenden Informationen an.
      Tabelle : 2. Formular „Plugin anfordern“
      Feld Beschreibung

      What is your target instance (Ihre Zielinstanz)

      Wählen Sie die Instanz aus, auf der Sie das Plugin aktivieren möchten.

      Which plugin would you like to activate (Welches Plugin möchten Sie aktivieren?)

      Wählen Sie den Namen des zu aktivierenden Plugins aus.

      Hinweis:
      Wenn das System das gewünschte Plugin nicht auflistet oder Sie das Plugin auf einer OEM- oder lokalen Instanz aktivieren, wählen Sie aus Plugin, nach dem ich suche, ist nicht aufgeführt Aktivieren Sie das Kontrollkästchen, und geben Sie dann den Namen des Plugins ein.

      Select Maintenance Date and Time (Datum und Uhrzeit der Wartung)

      Wählen Sie Datum und Uhrzeit aus, um das Plugin zu aktivieren.

      Sehen Sie sich beispielsweise das folgende Formular an, um das Ereignismanagement-Plugin für eine Instanz mit dem Namen SNC-Instanz zu aktivieren.

    4. Wählen Sie Absenden.
      Nach dem Wartungsfenster installiert das System das Plugin auf Ihrer Instanz. Um die Installation zu bestätigen, wechseln Sie im Anwendungsmanager zur Registerkarte installiert.