Web service import sets security requirements
Summarize
Summary of Web service import sets security requirements
Web Service Import Sets in ServiceNow leverage the same security mechanisms as SOAP Web Services to securely import data. They support basic authentication, requiring valid user credentials, and contextual security, enforcing access control rules on the target tables. For instances with high security settings, the Web Service user must also have thesoaprole.
Show less
Security Requirements
- Basic Authentication: Web Service users must provide a valid username and password.
- Contextual Security: Access control rules on the queried table must be met by the Web Service user.
- High Security Settings: Users may need the
soaprole to access the service.
Practical Usage and Related Links
When working with a mapped web service table, ServiceNow provides related links to facilitate management:
- Import Sets: Lists import sets related to the web service import set.
- Transform Maps: Provides access to transform maps for data mapping.
- Transform History: Shows the history of data transformations.
- Edit Web Service: Allows editing the web service configuration.
Example: SOAP Web Service Import
The documentation includes a detailed example demonstrating the components of a SOAP web service import set:
- WSDL: Defines the web service contract for the import set.
- SOAP Envelope and Response: Illustrates request and response message structures.
- Perl Invocation Script: Shows how to invoke the web service using Perl and the
SOAP::Litepackage with basic authentication. - Result: Displays the console output after a successful insert into the Incident table and the corresponding import set record.
What ServiceNow Customers Can Expect
By understanding and applying these security requirements and example configurations, customers can:
- Securely import data into ServiceNow tables using SOAP web service import sets.
- Ensure proper authentication and authorization aligned with their instance’s security policies.
- Leverage transform maps and import set management tools to control data processing and transformation.
- Integrate external systems effectively by using standard SOAP messages and scripts.
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.
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
#!/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";}}name=display_value value=INC10011
name=status value=inserted
name=table value=incident
name=display_name value=number
name=sys_id value=cd45649c0a0a0b2b00e6f27649d6bd2c