SOAP Web Service
Simple Object Access Protocol (SOAP) ist ein XML-basiertes Protokoll für den Zugriff auf Webservices über HTTP.
Webservice-Provider
- Direkte Webservices : Verwenden Sie eine URL-Abfrage, um die WSDL einer Tabelle anzufordern.
- Importsätze des SOAP-Webservice : Verwenden Sie Importtabellen und Transformationszuordnungen, um Webserviceanforderungen für Tabellen zu automatisieren.
- Geskriptete SOAP-Webservices : Verwenden Sie anwenderdefiniertes JavaScript, um SOAP-Webserviceanforderungen auszuführen.
WSDL
Alle Tabellen und Importsätze generieren dynamisch WSDL-XML-Dokumente (Web Service Definition Language), die das Tabellenschema und die verfügbaren Vorgänge beschreiben.
https://myinstance.service-now.com/incident.do?WSDL
Alle dynamisch generiert und bedient ServiceNow WSDLs, auf die über HTTP zugegriffen werden kann, können unter den Bedingungen verwendet werden, die in der Open Source-Initiative OSI – Apache-Lizenz, Version 2,0-Lizenzvereinbarung definiert sind.
Unterstützung für lange SOAP-Anforderungen
ServiceNow AI Platform unterstützt lange SOAP-Anforderungen, indem Socket-Zeitüberschreitungen aufgrund von Inaktivität der Netzwerkverbindung verhindert werden, während die Anforderungen verarbeitet werden.
Diese Funktionalität verbessert die Effizienz des ODBC-Treibers, wenn eine große Anzahl von Datensätzen angefordert wird, Abfragen zusammengefasst werden, oder Ausdrücke sortiert werden müssen.
Standardmäßig bietet das System einen Zeitüberschreitungsschutz für Webservices-Clients, die von bereitgestellt werden ServiceNow Z. B. der ODBC-Treiber und der MID-Server. Sie können Ihren anwenderdefinierten Webservices mit Systemeigenschaften einen Zeitüberschreitungsschutz hinzufügen.
Zeitüberschreitungsschutz
Webservices-Clients erhalten eine temporäre 307-Weiterleitung, um lange Sitzungen aufrecht zu erhalten, und ein Timeout aufgrund von Socket-Inaktivität zu verhindern. Eine temporäre 307-Weiterleitung bewirkt, dass Websservices-Clients, die den Statuscode unterstützen, ihre letzte Anforderung an die in der HTTP-Standortkopfzeile angegebene Position wiederholen. Der Wert des Standortheaders ist dieselbe URL, die der Webservices-Client ursprünglich angegeben hat. Die Verwendung von temporäre 307-Weiterleitungen ist WS-I-kompatibel.
- Der Wert von glide.soapprocessor.allow_long_running_threadsIst „wahr“.
- Die Anforderung enthält einen redirectSupported=trueURL-Parameter.
- Die Anforderung ist sitzungsfähig (unterstützt HTTP-Cookies).
- Die Anzahl der Umleitungen hat den von festgelegten Wert nicht überschritten glide.soap.max_redirects.
SOAP Web Services-Sicherheit
Eine Instanz erzwingt die Webservicesicherheit mithilfe einer Kombination aus Standardauthentifizierungsabfrage/-Antwort über das HTTPS-Protokoll und Zugriffssteuerungslisten (ACLs) auf Systemebene mithilfe kontextbezogener Sicherheit. Administratoren können steuern, auf welche Systemressourcen Webservices-Benutzer zugreifen können, indem sie ihnen eine der SOAP-Rollen zuweisen.
SOAP-Rollen
Um SOAP Web Services verwenden zu können, müssen Sie über die entsprechende Rolle für den Vorgang verfügen, den Sie ausführen möchten. Außerdem müssen Sie über alle anderen Rollen verfügen, die für den Zugriff auf die Zieltabellen erforderlich sind.
| Rolle | Beschreibung |
|---|---|
| soap | Kann alle SOAP-Vorgänge ausführen. |
| soap_create | Kann neue Datensätze einfügen. |
| soap_delete | Kann vorhandene Datensätze löschen. |
| soap_ecc | Kann Datensätze in der Warteschlangen-Tabelle [ecc_queue] abfragen, einfügen und löschen. |
| soap_query | Kann Datensatzinformationen abfragen. |
| soap_query_update | Kann Datensatzinformationen abfragen und Datensätze aktualisieren. |
| soap_script | Kann Skripts ausführen, die einen .do-Endpunkt angeben. Diese Rolle ist erforderlich, um geskriptete Webservices auszuführen. |
| soap_update | Kann Datensätze aktualisieren. |
| import_admin | Kann alle Aspekte von Importsätzen und Importen verwalten. Erforderlich für den Zugriff auf die Tabelle „Importsatzzeile“ [sys_Import_Set_row]. |
| import_transformer | Kann Transformationszuordnungen für Importsätze verwalten und Transformationen ausführen. Erforderlich für den Zugriff auf die Tabelle „Importsatzzeile“ [sys_Import_Set_row]. |
Standardanforderungen für Webservices-Rollen
Standardmäßig erfordert eine Reihe von Prozessor-ACL-Regeln, dass Anwender über die Rolle SOAP_query verfügen müssen, um WSDL-, XSD- und XML-Schemaanforderungen zu stellen.
Wenn Sie diese Rollenanforderungen ändern möchten, können Sie die ACL-Regeln deaktivieren.
Standardauthentifizierung
Um die Basic Authentication für den mit der Instanz verknüpften Benutzer für jede WSDL- oder SOAP-Nachrichtenanforderung durchzusetzen, können Administratoren die Eigenschaft glide.basicauth.required auf true setzen.
Wenn diese Option aktiviert ist, muss jede WSDL- und SOAP-Anforderung eine Autorisierungskopfzeile enthalten, wie im Protokoll Basic Authentication angegeben.
Da Webserviceanforderungen nicht interaktiv sind, wird die Autorisierung Header ist während einer Anforderung immer erforderlich.
Die Bereitstellung von Informationen zur Standardauthentifizierung bei jeder Anforderung (unabhängig davon, ob sie erforderlich ist oder nicht) hat den zusätzlichen Vorteil, dass dem Anwender, der in den Anmeldeinformationen für die Standardauthentifizierung angegeben wird, der Webservice-Aufruf zugeordnet werden kann. Wenn Sie beispielsweise einen Incident-Datensatz erstellen, listet das Journalfeld die Anwender-ID auf, die im Header der Standardauthentifizierung anstelle des standardmäßigen Gastanwenders enthalten ist.
SOAP-Sicherheitsrichtlinien
- Signieren von SOAP-Anforderungen aktivieren oder deaktivieren, wenn ein externer Webservice verwendet wird
- Geben Sie die Authentifizierungsanforderungen an, die SOAP-Anforderungen erfüllen müssen, wenn Sie über WS-Security kommunizieren.
Weitere Informationen zur SOAP-Zugriffsrichtlinie finden Sie unter Zugriffsrichtlinien für SOAP-API .
Für signierte SOAP-Anforderungen erforderliche Zertifikate
Zum Signieren von SOAP-Anforderungen für WS-Security-Kommunikation sind die folgenden Zertifikate erforderlich:
- X.509-Zertifikat der anfordernden Person
- X.509-CA-Zertifikat der Zertifizierungsstelle, die das Zertifikat der anfordernden Person signiert hat
SOAP-Standardsicherheitsrichtlinie
Administratoren können die SOAP-Sicherheitsrichtlinie angeben, die eine Instanz mit der Systemeigenschaft glide.soap.default_security_policy verwendet. Die Systemeigenschaft glide.soap.default_security_policy gibt den Namen der SOAP-Sicherheitsrichtlinie an, die die Instanz beim Erzwingen von Webservices-Security (WSS) für eingehende Anforderungen verwendet.
| Feld | Beschreibung |
|---|---|
| Typ | Zeichenfolge |
| Standardwert | Standardsicherheitsrichtlinie |
| Standort | Fügen Sie eine Systemeigenschaft hinzu Zur Tabelle „Systemeigenschaften“ [sys_properties] |
WS-Sicherheit verwenden
- Überprüfen Sie, ob SOAP-Nachrichten von einem bekannten Absender stammen
- Stellen Sie sicher, dass SOAP-Nachrichten während der Übertragung nicht geändert wurden
WS-Security ist für die Verwendung mit der Standardauthentifizierung vorgesehen. Wenn eine Instanz eine SOAP-Nachricht empfängt, überprüft sie den Header der Standardauthentifizierung, um festzustellen, ob der SOAP-Anwender Rechte für die Instanz hat. Es überprüft den WS-Security-Header, um die Gültigkeit der eingehenden Nachricht zu ermitteln. Anforderungen, die von Angriffen betroffen sind, z. B. einem man-in-the-Middle-Angriff, haben einen ungültigen WS-Security-Header und werden blockiert.
WS-Security-Profile
Ein WS-Sicherheitsprofil bestimmt, wie eine Webservicenachricht authentifiziert wird, wenn WS-Security aktiviert ist. Die folgenden Mechanismen können zur Authentifizierung von Webserviceanforderungen verwendet werden:
| Authentifizierungsmechanismus | Beschreibung |
|---|---|
| Zertifikatverifizierung | Überprüft das Zertifikat, das der Anforderung zugeordnet ist. Um das Zertifikat der Anforderung zu verifizieren, müssen das Zertifikat und die Zertifizierungsstelle der anfordernden Person hochgeladen werden. |
| Benutzeranmeldeinformationen | Authentifiziert die Webserviceanforderung, indem die Anwenderanmeldeinformationen überprüft werden, die der Anforderung zugeordnet sind. Mit dieser Authentifizierungstyp kann entweder überprüft werden, ob die Anmeldeinformationen der Anforderung mit den Anmeldeinformationen eines vorhandenen Anwenders übereinstimmen oder ob die Anmeldeinformationen der Anforderung mit einem im Profildatensatz angegebenen Anwendernamen und Passwort übereinstimmen. |
Das Modul „WS-Sicherheitsprofile“ listet die WS-Sicherheitsprofile auf, die derzeit in Kraft sind.
Fehlerprotokollierung für WS-Security
Die Systemeigenschaft glide.processor.debug.SOAPProcessor ermöglicht die Anzeige von Fehlermeldungen zu WS-Security im Transaktionsprotokoll.
Die Systemeigenschaft glide.processor.debug.SOAPProcessor aktiviert (true) oder deaktiviert (false) Debugging-Nachrichten für die SOAP-Verarbeitung, wie z. B. Zertifikat- und Keystore-Prüfungen.
| Feld | Beschreibung |
|---|---|
| Typ | true | false |
| Standardwert | false |
| Standort | Fügen Sie eine Systemeigenschaft hinzu Zur Tabelle „Systemeigenschaften“ [sys_properties] |
WSS X.509-Token-Profil
- Name des Antragstellers
- Name des Ausstellers
- Seriennummer
- Gültigkeitsintervall
Verwenden Sie das X.509-Authentifizierungs-Framework, wie durch Webservices-Sicherheit: Spezifikation für die SOAP-Nachrichtensicherheit definiert.
Laden Sie das Zertifikat hoch, und referenzieren Sie es im Feld X509-Zertifikat. Wählen Sie bei einer gebundenen Sitzung den Anwender aus, der die Identität annehmen soll, wenn die WS-Security-Authentifizierung erfolgreich ist.
WSS UsernameToken-Profil
Bei der Angabe des X.509-Token-Profils können Sie auch einen UsernameToken in der SOAP-Anforderung angeben.
Ein UsernameToken wird verwendet, um die anfordernde Person anhand des „Anwendernamens“ zu identifizieren und optional mithilfe eines Passworts, eines gemeinsamen Geheimnisses oder eines Passworts zu authentifizieren.
Es gibt zwei Möglichkeiten, ein UsernameToken zu authentifizieren.
- Authentifizieren Sie sich mit vorhandenen Anwenderanmeldeinformationen.
Abbildung : 5. Authentifizieren Sie sich mit vorhandenen Anwenderanmeldeinformationen Verwenden Sie den Anwendernamen der eingehenden SOAP-Anforderung, um einen Anwender nach dem angegebenen zu suchen Anwender Feld, das abgeglichen werden soll Anwendername Wert. Das System verwendet den Passwortwert im eingehenden UsernameToken, um die Anforderung zu authentifizieren. Wenn Sitzung binden Die Option ist ausgewählt. Der Anwender, der sich erfolgreich authentifiziert hat, wird für die Sitzung verwendet.
- Authentifizieren Sie mit den angegebenen Benutzeranmeldeinformationen.
Abbildung : 6. Mit angegebenen Benutzeranmeldeinformationen authentifizieren Authentifizieren Sie mit Anmeldeinformationen, die sich nicht auf Benutzer in der Tabelle „Benutzer“ beziehen. Wenn Sitzung binden Die Option ist ausgewählt, der Anwender, der in angegeben ist Als Anwender ausführen Feld wird für die Sitzung verwendet.
Strikte Sicherheit für Webservices
Standardmäßig bestimmt die Basic Authentication für Webservices nur, ob ein Benutzer über eine SOAP-Verbindung zum Zugriff auf die Instanz berechtigt ist. Nach der Autorisierung kann jeder Benutzer auf jede als Webservice veröffentlichte Tabelle zugreifen.
Die Systemeigenschaft Erzwingen Sie strikte Sicherheit für eingehende SOAP-Anforderungen Ändert dieses Verhalten und erfordert, dass Anwender die Anforderungen erfüllen Kontextbezogener Sicherheitsmanager Anforderungen für den Zugriff auf Instanzressourcen über Webservices.
Wenn diese Eigenschaft aktiviert ist, können nur Anwender, die über die richtige SOAP-Rolle verfügen und auch die ACL-Bedingungen erfüllen, die die Tabelle und der Vorgang ausführen, diesen Vorgang über eine SOAP-Verbindung ausführen.
Gegenseitige Authentifizierung für Webservices
Die gegenseitige Authentifizierung wird für ausgehende Webservices unterstützt.
SOAP-Sitzungsverwaltung und -Berichterstellung
Eine SOAP-Sitzung ist eine Glide-Sitzung, die von einer Instanz von einem externen SOAP-Client wie z. B. einer Webservice-Client-Anwendung, einem ServiceNow-MID-Server oder einen ServiceNow-ODBC-Treiber eingerichtet wird. SOAP-Sitzungen sind in der Liste der Anwendersitzungen unter enthalten an. Die ?SOAP URLs identifizieren SOAP-Sitzungen.
SOAP-Sitzungseigenschaften
Bestimmte Eigenschaften steuern, wie SOAP-Sitzungen verwaltet werden.
| Eigenschaft | Beschreibung |
|---|---|
| glide.soap.invalidate_session_timeout | Dauer in Sekunden, die eine aktive Sitzung offen bleibt. Nachdem diese Zeit verstrichen ist, deaktiviert die Instanz die Sitzung und stellt Systemressourcen in Anspruch. Wenn der Client eine weitere Anforderung sendet, nachdem die Zeitüberschreitungsdauer erreicht ist, richtet die Instanz eine neue Sitzung ein. Diese Eigenschaft akzeptiert Werte zwischen 5 und 1200 Sekunden (20 Minuten).
|