Explizite Rollen in CSM
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.
Empfohlene CSM-Rollen für interne und externe Anwender
Kunden (externe Anwender), die die Kundenservicemanagement-Anwendung verwenden, muss entweder die Rolle „sn_customerservice.Customer“ oder „sn_customerservice.Consumer“ zugewiesen werden. Kundenservice-Mitarbeitern (interne Anwender) muss entweder die Rolle „sn_customerservice_Agent“ oder „sn_customerservice_consumer_agent“ zugewiesen werden. Das System stellt sicher, dass demselben Anwender nicht sowohl eine Kunden-Rolle (extern) als auch eine Agenten-Rolle (intern) zugewiesen wird.
Plugin „explizite Rollen“
Das Kundenservice-Plugin (com.sn_customerservice) aktiviert das Plugin „explizite Rollen“ (com.Glide.explizit_roles), das die Rollen „snc_external“ und „snc_internal“ hinzufügt. Wenn das Plugin aktiviert ist:
- Alle Anwender müssen entweder über die Rolle „snc_internal“ verfügen, um auf interne Ressourcen zuzugreifen, oder über die Rolle „snc_external“, um auf externe Ressourcen zuzugreifen.
- 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.
- Allen vorhandenen ACLs, die keine Rollenanforderung haben, wird automatisch die Rolle „snc_internal“ zugewiesen. Da sowohl vorhandene ACLs als auch Rollen 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 wird automatisch externen Kontakten des Kundenserviceportals zugewiesen. Wenn das Kundenserviceportal nicht aktiviert ist, muss diese Rolle externen Anwendern manuell gewährt werden. Zugriff auf Datensätze wird über ACLs gewährt.Hinweis:Sie können verwenden
IsPublic()Funktion in Skripts für das Kundenserviceportal zum Ändern der Datenschutzeinstellung für eine einzelne vom Client aufrufbare Skripteinbindung. Weitere Informationen finden Sie unter Skripteinbindungen . - Inhaltsverwaltungssystem Der Websitezugriff ist ebenfalls betroffen. CMS ist mit Sites (content_Site), Seiten (content_page) und anderen Ressourcen eingerichtet. Einige der Sites haben möglicherweise Anmeldeseite Konfiguriert.
- Wenn CMS-Sites nicht über verfügen Anmeldeseite Konfiguriert wird die öffentliche Rolle automatisch zu hinzugefügt Leserollen Feld auf Seiten (content_page), wenn das Feld leer ist.
- Wenn CMS-Sites über verfügen Anmeldeseite Konfiguriert wird die Rolle „snc_internal“ automatisch zu hinzugefügt Leserollen Feld auf Seiten (content_page), wenn das Feld leer ist.
- Serviceportal Der Websitezugriff ist ebenfalls betroffen.
Die Rolle „snc_internal“ wird den Datensätzen „sp_page“, „sp_Widget“ oder „sp_instance“ nicht automatisch hinzugefügt. Bei Bedarf können Sie neuen Datensätzen die Rolle zuweisen, indem Sie „snc_internal“ als Standardwert in zuweisen Rollen Feld für diese Datensätze. Details zu diesem Prozess finden Sie unter Geben Sie einen Standardfeldwert an .
Nicht verschieben System-Update-Sätze Zwischen Instanzen mit und ohne aktiviertes Plugin „explizite Rollen“.
Die glide.security.explicit_roles.internal_user_blacklist-Eigenschaft
Das Plugin „explizite Rollen“ geht davon aus, dass alle vorhandenen Anwender in der Tabelle „sys_user“ zum Zeitpunkt der Installation des Plugins interne Kunden sind. Ein Korrekturskript weist allen vorhandenen Anwendern und allen ACL, die keine Rolle haben, die Rolle „snc_internal“ zu.
Das Korrekturskript kann für einen Anwender fehlschlagen oder nicht rechtzeitig enden, der nicht mit der Rolle aktualisiert wurde und versucht, auf eine Ressource zuzugreifen. Um diese potenzielle Lücke zu schließen, weist der kontextbezogene Sicherheitsmanager (CSM) die Rolle „snc_internal“ automatisch jedem Anwender zu, der sich anmeldet und keine explizite Rolle (intern oder extern) hat.
Darüber hinaus verfügt CSM über einen Business-Regelprozess, der die Rolle „snc_external“ einer Klassifizierung ihrer Anwender zuweist. Beim Importieren großer Sätze externer CSM-Kunden wird der Workflow jedoch auf „falsch“ festgelegt, sodass Business-Regeln nicht ausgeführt werden. Wenn diese Anwender versuchen, auf eine Ressource zuzugreifen, haben sie keine expliziten Rollen. Der kontextbezogene Sicherheitsmanager weist die Rolle „snc_internal“ über eine geplante Aufgabe zu, die alle 7 Tage als Bericht zu Rufbereitschaftslücken-Konflikten bezeichnet wird. Wenn das Plugin „explizite Rollen“ aktiv ist, weist dieser Auftrag dem externen CSM-Anwender die Rolle „snc_internal“ zu, da der Anwender weder über die Rolle „snc_internal“ noch „snc_external“ verfügt.
Um zu verhindern, dass externe Anwender versehentlich die Rolle „snc_internal“ bereitstellen, enthält das Plugin „explizite Rollen“ ein glide.security.explicit_roles.internal_user_blacklistEigenschaft, um auszuschließen, dass Anwendertypen jemals „snc_internal“ werden. Wenn die glide.security.explicit_roles.internal_user_blacklist-Tabelle keine Anwendertypen enthält, weist der kontextbezogene Sicherheitsmanager allen Anwendern standardmäßig die Rolle „snc_internal“ zu. Wenn die Tabelle der schwarzen Liste Klassennamen enthält und sich der Klassentyp „sys_user“ in der Tabelle der schwarzen Liste befindet, weist CSM die Rolle „snc_external“ zu. Andernfalls weist CSM wie gewohnt die standardmäßige Rolle „snc_internal“ zu.
Für Paris Release: Diese Eigenschaft ist standardmäßig für zBoot-Instanzen aktiviert und standardmäßig für Upgrades deaktiviert.
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 Gewähren Sie externen Anwendern Zugriff auf eine Tabelle.
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.