Web service import sets security requirements

  • Release version: Yokohama
  • Updated January 30, 2025
  • 2 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Web service import sets security requirements

    Web service import sets in ServiceNow leverage the same security mechanisms as SOAP Web Services, primarily using basic authentication and contextual security. A Web Service user must provide valid credentials and satisfy access control rules for the targeted table. In instances with high security settings, the user may also require thesoaprole to interact with the web service import set.

    Show full answer Show less

    Security Mechanisms

    • Basic Authentication: Requires a valid username and password for the Web Service user.
    • Contextual Security: Ensures the user meets access control rules of the queried table.
    • High Security Settings: May require assigning the soap role to the Web Service user.

    Related Links and Management

    When managing a mapped web service table, you can access related elements such as:

    • Import Sets: View import sets associated with the web service import set.
    • Transform Maps: Review transform maps tied to the import set for data transformation.
    • Transform History: Track the history of transformations applied.
    • Edit Web Service: Modify web service configurations directly.

    Practical Example

    The documentation includes an example demonstrating SOAP interaction with a web service import set named Notification. It shows:

    • Sample WSDL defining the structure and operations of the web service.
    • SOAP request and response envelopes illustrating the message format.
    • A Perl script example using the SOAP::Lite package to invoke the insert method, authenticating as the itil user, and creating an incident record.
    • Console output from the Perl script confirming the inserted incident details.
    • A resulting row created in the import set table Notification (impnotification) showing the integration outcome.

    What This Enables for ServiceNow Customers

    ServiceNow customers can securely integrate external systems via SOAP web services to import data into their ServiceNow instance using import sets. By applying proper authentication and access controls, customers ensure secure data ingestion. The provided sample artifacts and script can be adapted to implement and test SOAP-based data imports efficiently, enabling automated incident creation or other record updates based on external inputs.

    This capability is essential for customers requiring reliable, secure, and auditable data imports from external SOAP services into ServiceNow tables.

    Web Service Import Sets use the same security mechanisms as SOAP Web Services.

    • Basic authentication requires a Web Service user provide a valid user name and password.
    • Contextual security requires a Web Service user meet the access control rule of the queried table.

    If your instance uses high security settings, the Web Service user may also need the soap role.

    Web service import sets related links

    When displaying a mapped web service table, you have the following related links.

    • Import Sets — The import sets related to this web service import set.
    • Transform Maps — A list of transform maps related to this web service.
    • Transform History — The transformation history.
    • Edit Web Service — Edit the web service.
    The following image shows a record that was inserted into the web service import set Notification. The target record is the resulting creation or modification to the Incident table record as a result of the transform.
    Figure 1. Soap Notification

    Web service import sets example

    This example demonstrates the WSDL, SOAP envelope and response, Perl invocation, and result of a SOAP web service import.

    Sample WSDL

    <?xmlversion="1.0"encoding="UTF-8"?><wsdl:definitions targetNamespace="http://www.service-now.com"  xmlns:tns="http://www.service-now.com/imp_notification"  xmlns:sncns="http://www.service-now.com"  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"  xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><wsdl:types><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"      elementFormDefault="unqualified"      targetNamespace="http://www.service-now.com/imp_notification"><xsd:element name="insert"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="0" name="corrective_message" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="0" name="duration" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="0" name="expires_on" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="0" name="message" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="0" name="severity" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="0" name="source" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="0" name="timestamp" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="0" name="type" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="1" name="uuid" type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="insertResponse"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="sys_id" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="1" name="table" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="1" name="display_name" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="1" name="display_value" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="1" name="status" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="0" name="status_message" type="xsd:string"/><xsd:element maxOccurs="1" minOccurs="0" name="error_message" type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element></xsd:schema></wsdl:types><wsdl:message name="insertSoapOut"><wsdl:part name="imp_notification" element="tns:insertResponse"/></wsdl:message><wsdl:message name="insertSoapIn"><wsdl:part name="imp_notification" element="tns:insert"/></wsdl:message><wsdl:portType name="ServiceNowSoap"><wsdl:operation name="insert"><wsdl:input message="sncns:insertSoapIn"/><wsdl:output message="sncns:insertSoapOut"/></wsdl:operation></wsdl:portType><wsdl:binding name="ServiceNowSoap" type="sncns:ServiceNowSoap"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="insert"><soap:operation soapAction="http://www.service-now.com/imp_notification/insert" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="ServiceNow"><wsdl:port name="ServiceNowSoap" binding="sncns:ServiceNowSoap"><soap:address location="http://Macintosh-7.local:8080/glide/imp_notification.do?SOAP"/></wsdl:port></wsdl:service></wsdl:definitions>

    Sample SOAP Envelope

    <?xmlversion="1.0"encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><insert xmlns="http://www.service-now.com"><message xsi:type="xsd:string">Host 198.10.10.210 is down</message><uuid xsi:type="xsd:string">HGAF76251HGF1</uuid></insert></SOAP-ENV:Body></SOAP-ENV:Envelope>

    Sample SOAP Response

    <?xmlversion="1.0"encoding="UTF-8"?><SOAP-ENV:Envelope  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><insertResponse><sys_id>b54aafbfc0a8006f0058db95daa5b88d</sys_id><table>incident</table><display_name>number</display_name><display_value>INC10008</display_value><status>ignored</status><status_message>No field values changed</status_message></insertResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

    Example Invocation using Perl

    The following example script uses the Notification web service to create an Incident as the itil user. It uses the Perl language and the SOAP::Lite package.
    #!/usr/bin/perl -w
     
    #use SOAP::Lite ( +trace => all, maptype => {} );use SOAP::Lite;
     
    sub SOAP::Transport::HTTP::Client::get_basic_credentials{return'itil'=>'itil';// set basic auth credentials for the itil user
    }
     
    my$soap= SOAP::Lite->proxy('http://localhost:8080/glide/imp_notification.do?SOAP');
     
    my$method= SOAP::Data->name('insert')->;attr({xmlns =>'http://www.service-now.com/'});
     
    # insert into the web servicemy@params=( SOAP::Data->name(message =>'problem detected for database DB12DG'));push(@params, SOAP::Data->name(source =>'DB12DG'));push(@params, SOAP::Data->name(uuid =>'HGAF76251HGF2'));
     
    my$result=$soap->call($method=>@params);
     
    print_fault($result);//print any SOAP faults
    print_result($result);//print any results
     
    sub print_result {my($result)=@_;if($result->body&&$result->body->{'insertResponse'}){my%keyHash=%{$result->body->{'insertResponse'}};foreachmy$k(keys%keyHash){print"name=$k   value=$keyHash{$k}\n";}}}
     
    sub print_fault {my($result)=@_;if($result->fault){print"faultcode=".$result->fault->{'faultcode'}."\n";print"faultstring=".$result->fault->{'faultstring'}."\n";print"detail=".$result->fault->{'detail'}."\n";}}
    The following is the result printed by the Perl script on the console.
    name=display_value   value=INC10011
    name=status   value=inserted
    name=table   value=incident
    name=display_name   value=number
    name=sys_id   value=cd45649c0a0a0b2b00e6f27649d6bd2c
    The following image shows the resultant row created for the import set table Notification (imp_notification).
    Figure 2. WS Iset Perl