Explizite Rollen
Sie können sowohl internen Anwendern als auch externen Anwendern Zugriff auf Ihre Instanz gewähren. Möglicherweise möchten Sie jedoch nicht, dass beide Anwendertypen dieselbe Zugriffsebene haben. Um zusätzliche Sicherheit zu bieten, muss jeder Anwender über mindestens eine Rolle verfügen, damit die Instanz zwischen internen und externen Anwendern unterscheiden kann.
Ab Paris Release, kein Anwender kann beide explizite Rollen (snc_internal und snc_external) haben. Gruppen- und Rolleneindämmung können nicht beide Rollen enthalten, da dies dazu führen würde, dass jedes Gruppenmitglied oder Anwender, das einer solchen Gruppe oder einer solchen Rolle zugewiesen ist, automatisch beide Rollen hat. Die ServiceNow AI Platform Bricht jeden Vorgang ab, der ein solches Szenario erstellen würde.
- Tabellen ohne die Rolle, die die Rolle snc_external oder public erbt
- Ressourcen vom Typ „nicht“, 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 erhöht. Andernfalls können interne Anwender nicht auf die Instanz zugreifen.
Plugin „explizite Rollen“
Wenn das Plugin „explizite Rollen“ aktiviert ist:
- 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. Anwender ohne explizite Rolle können nur auf öffentliche Ressourcen zugreifen.
- Allen vorhandenen Anwendern wird automatisch die Rolle „snc_internal“ zugewiesen. Diese Rolle ändert keine vorhandenen Zugriffsebenen oder das Systemverhalten. Stattdessen bietet es eine Kategorie, um interne Anwender von externen Anwendern zu unterscheiden. Alle internen Anwender haben die gleiche Zugriffsebene wie vor der Aktivierung des Plugins.Tipp:Um zu verhindern, dass vorhandene Funktionen für Anwender geändert werden, wird durch die Aktivierung des Plugins „explizite Rollen“ allen vorhandenen Anwendern in der Instanz die Anwenderrolle „snc_internal“ zugewiesen. Dies schließt alle externen Anwender ein, die hinzugefügt wurden, bevor das Plugin „explizite Rollen“ aktiviert wurde. Nachdem das Plugin „explizite Rollen“ aktiviert wurde, führen Sie Folgendes für alle externen Anwender aus, die hinzugefügt wurden, bevor das Plugin „explizite Rollen“ aktiviert wurde:
- Entfernen Sie die Rolle „snc_internal“.
- Fügen Sie die Rolle „snc_external“ hinzu.
- Neu erstellte Anwender werden automatisch die Rolle „snc_internal“ zugewiesen, wenn sie 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 Anwender hinzufügen, bevor er sich zum ersten Mal bei der Instanz anmeldet, um externe Anwenderrechte bereitzustellen. Wichtig:
Aktivieren Sie dieses Plugin während eines Wartungsfensters oder wenn wenige Anwender angemeldet sind. Anwendern, die sich derzeit anmelden, wenn das Plugin aktiviert ist, wird die Rolle „snc_internal“ nicht dynamisch zugewiesen. Anwender müssen sich vielmehr abmelden und erneut anmelden, um die Rolle „snc_internal“ zugewiesen zu bekommen. Sobald das Plugin aktiviert ist, können Sie die Rollen „snc_internal“ und „snc_external“ jederzeit hinzufügen oder entfernen, um Anwenderrechte zu ändern.
Nachdem das Plugin aktiviert wurde, erhält der Anwender jedes Mal, wenn sich ein Anwender anmeldet, die Rolle „snc_internal“, wenn der Account noch nicht über diese Rolle verfügt, oder die Rolle „snc_external“. Dies schließt Anwender ein, die sich per Identitätswechsel angemeldet haben.
- Allen vorhandenen ACLs, die keine Rollenanforderung haben, wird automatisch die Rolle „snc_internal“ zugewiesen. Da sowohl vorhandene ACLs als auch Anwender die Rolle „snc_internal“ zugewiesen sind, ändern sich vorhandene Zugriffsebenen nicht.
- Neu erstellte ACLs, die keine Rollenanforderung haben, werden automatisch die Rolle „snc_internal“ zugewiesen. Diese Rollenzuweisung gilt nicht für eine neu erstellte ACL mit einer zugewiesenen Rolle.
- Für alle vorhandenen Prozessordatensätze [sys_processor] oder neu erstellten Prozessordatensätze [sys_processor] mit Type=script , Die Rolle „snc_internal“ wird automatisch zu hinzugefügt Rollen Feld, wenn das Feld leer ist.
- Um den Zugriff auf UI-Seiten auf interne Anwender zu beschränken, weist das Plugin automatisch die Rolle „snc_internal“ zu * ACL mit Typ Von ui_page .
- Um den Zugriff auf Prozessoren auf interne Anwender zu beschränken, weist das Plugin automatisch die Rolle „snc_internal“ zu * ACL mit Typ Von Prozessor .
- Externe Anwender müssen mindestens die Rolle „snc_external“ erhalten, um auf die Instanz zuzugreifen. Diese Rolle muss externen Anwendern manuell gewährt werden. Zugriff auf Datensätze wird über ACLs gewährt.
Verschieben Sie keine System-Update-Sätze zwischen Instanzen, wenn und ohne das Plugin „explizite Rollen“ aktiviert ist. Weitere Informationen finden Sie unter System-Update-Sätze .
glide.security.explicit_roles.do_not_fix Verhalten
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:| Wert | Ergebnis |
|---|---|
| Falsch | Fügen Sie die Rolle „snc_internal“ sowohl im Arbeitsspeicher als auch in sys_user_has_role hinzu |
| Wahr | Fügen Sie die Rolle „snc_internal“ nicht im Arbeitsspeicher oder sys_user_has_role hinzu |
glide.security.explicit_roles.ignore.snc_internal.exclude_role_list Eigenschaft. glide.security.explicit_roles.do_not_fix Verhalten verwenden glide.security.explicit_roles.do_not_fix_in_memory Eigenschaft.Bereitstellung von Tabellenzugriff für externe Anwender
Sie können externen Anwendern 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 HasRoles() Die Methode ist weiterhin verfügbar, ist jedoch in veraltet Geneva Release. Verwenden Sie HasRole(Rollenname) Stattdessen Methode.
HasRoles() Methode, beachten Sie diese Änderungen:- Diese Methode schließt automatisch die standardmäßige Rolle „snc_internal“ aus, wenn sie nach Rollen sucht. Dies bedeutet, dass, wenn ein Anwender nur über die Rolle „snc_internal“ verfügt, die
HasRoles()Methode gibt noch zurück Falsch . - Wenn der Anwender über die Rolle „snc_external“ verfügt, gibt die Methode zurück Falsch Da die Instanz berücksichtigt, dass externe Anwender ohne Rolle sind.
Gegenseitiger Ausschluss: snc_external vs. Snc_internal
- Weisen Sie dem Anwender Abel Tuter die Rolle „snc_internal“ zu.
- Weisen Sie dem Anwender Abel Tuter die Rolle „snc_external“ zu.
Ergebnis: Das Hinzufügen der Rolle „snc_external“ schlägt fehl, da Abel Tuter über die Rolle „snc_internal“ verfügt.
Beispiel: Hinzufügen beider expliziten Rollen zu einer Gruppe (direkte Kollision):
- Betrachten Sie eine Gruppe mit dem Namen „Testgruppe“, der der Gruppe derzeit keine expliziten Rollen zugewiesen sind.
- Fügen Sie der Testgruppe Abel Tuter hinzu.
- Fügen Sie der Testgruppe die Rolle „snc_external“ hinzu.
Ergebnis: Das Hinzufügen der Rolle „snc_external“ schlägt fehl, da Abel Tuter bereits über die Rolle „snc_internal“ verfügt und nicht beide Rollen haben kann.
- Weisen Sie dem Anwender Abel Tuter die Rolle „snc_internal“ zu.
- Betrachten Sie eine Gruppe mit dem Namen „Testgruppe“, der der Gruppe derzeit keine expliziten Rollen zugewiesen sind.
- Fügen Sie der Testgruppe Abel Tuter hinzu.
- Fügen Sie der Testgruppe die Rolle „snc_external“ hinzu.
Ergebnis: Das Hinzufügen der Rolle „snc_external“ zur Gruppe schlägt fehl, da Abel Tuter die Rolle „snc_external“ über die Gruppenmitgliedschaft erben würde. Beide expliziten Rollen werden demselben Anwender zugewiesen, was nicht zulässig ist.
Weitere Beispiele finden Sie in der folgenden Tabelle:
| Rolle | Versuchte Aktion | Ergebnis |
|---|---|---|
| Direkte Kollision | ||
| Der Anwender hat die Rolle „snc_internal“. | Fügen Sie die Rolle „snc_external“ hinzu. | Die Aktion wird abgebrochen. |
| Der Anwender hat die Rolle „snc_external“. | Fügen Sie die Rolle „snc_internal“ hinzu. | Die Aktion wird abgebrochen. |
| Der Anwender hat keine explizite Rolle. | Fügen Sie die Rolle „snc_internal“ oder „snc_external“ hinzu. | Die Rolle wird hinzugefügt. |
| Der Anwender hat beide explizite Rollen (vorhandene Kollision). | Fügen Sie den Anwender einer Gruppe ohne Rollen hinzu. | Die Aktion wird abgebrochen. |
| Eine Rolle, die keinem Anwender zugeordnet ist, enthält die Rolle „snc_internal“. | Fügen Sie die Rolle „snc_external“ hinzu. | Die Aktion wird abgebrochen. |
| Eine Rolle, die keinem Anwender zugeordnet ist, enthält die Rolle „snc_external“. | Fügen Sie die Rolle „snc_internal“ hinzu. | Die Aktion wird abgebrochen. |
| Eine Rolle enthält beide expliziten Rollen (vorhandene Kollision). | Fügen Sie die Rolle einem Anwender, 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ügen Sie die Rolle „snc_internal“ oder „snc_external“ hinzu. | Die Rolle wird hinzugefügt. |
| Indirekte Kollision | ||
| Rolleneindämmung mit Kollision |
|
Die Aktion wird abgebrochen. |
| Rolleneindämmung ohne Kollision |
|
Die Rolle wird sowohl dem Anwender als auch der Testrolle hinzugefügt. |
| Gruppeneindämmung mit Kollision |
|
Die Aktion wird abgebrochen. |
| Gruppeneindämmung ohne Kollision |
|
Die Rolle wird der übergeordneten Gruppe, der untergeordneten Gruppe und dem Anwender hinzugefügt. |
| Gruppeneindämmung plus Rolleneindämmung mit Kollision | Fügen Sie „contains_external“ zu Testgruppe 1 hinzu, dem übergeordneten Element von Testgruppe 2. | Testgruppe 1 und Testgruppe 2 erhalten beide „contains_external“, aber nicht explizit die Rolle „snc_external“. |
| Fügen Sie die Rolle „snc_internal“ zu Testgruppe 2 hinzu, das untergeordnete Element von Testgruppe 1. | Die Aktion wird abgebrochen. | |
| Übergeordneten Change der Gruppe plus Gruppeneindämmung |
|
Die Aktion wird abgebrochen. Wiederholen Sie den Vorgang für bereits geschachtelte Gruppen mit derselben Erwartung. |
Die Ursache einer abgebrochenen Aktion wird in der Fehlermeldung angezeigt und muss behoben werden, bevor ein weiterer Versuch erfolgreich ist.
Überprüfen Sie für direkte Fälle, z. B. das Hinzufügen einer expliziten Rolle zu einem einzelnen Anwender, welche explizite Rolle der Anwender haben soll. Wenn der Anwender die falsche explizite Rolle hat, muss sie zuerst entfernt und dann die richtige explizite Rolle hinzugefügt werden.
Bewerten Sie für indirekte Fälle, z. B. das Hinzufügen einer expliziten Rolle zu einer Gruppe (damit einem Gruppenmitglied beide expliziten Rollen zugewiesen werden), ob dieser Anwender in der Gruppe sein soll. Legen Sie auch fest, ob der Gruppe die explizite Rolle zugewiesen werden soll, einschließlich der Übernahme durch Gruppenhierarchie und Rolleneindämmung.
Beachten Sie, dass ServiceNow AI Platform Meldet nur die erste potenzielle Kollision, die aufgetreten ist. Wenn wiederholte Versuche nach der Korrektur weiterhin fehlschlagen, wobei jedes Mal eine neue Ursache vorliegt, bewerten Sie die relevante Interdependenz von Anwender/Gruppe/Rolle breiter. Möglicherweise möchten Sie überdenken, wie Gruppen und Rolleneinschränkungen strukturiert sind.
Fordern Sie Explizite Rollen An
Aktivieren Sie explizite Rollen, indem Sie das Plugin „explizite Rollen“ (com.Glide.explizit_roles) über anfordern Now Support Servicekatalog.
Vorbereitungen
Erforderliche Rolle: Administrator