Requisitos de segurança dos conjuntos de importação de serviço web

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 2 min. de leitura
  • Os conjuntos para importação de serviços web usam os mesmos mecanismos de segurança que os serviços web SOAP.

    • A autenticação básica requer que um usuário do serviço web forneça um nome de usuário e senha válidos.
    • A segurança contextual requer que um usuário do serviço Web atenda à regra de controle de acesso da tabela consultada.

    Se sua instância usa configurações de alta segurança, o usuário do serviço Web também pode precisar da função soap.

    Links relacionados aos conjuntos para importação de serviço web

    Ao exibir uma tabela de serviço web mapeada, você tem os links relacionados a seguir.

    • Conjuntos para importação — Os conjuntos para importação relacionados a este conjunto de importação de serviço web.
    • Mapas de transformação — Uma lista de mapas de transformação relacionados a este serviço web.
    • Histórico de transformação — O histórico de transformação.
    • Editar serviço web — Edite o serviço web.
    A imagem a seguir mostra um registro que foi inserido na notificação do conjunto de importação de serviço web. O registro de destino é a criação ou modificação resultante do registro da tabela Incidente como resultado da transformação.
    Figura 1. Notificação SOAP

    Exemplo de conjuntos para importação de serviço web

    Este exemplo demonstra o WSDL, o envelope e a resposta SOAP, a invocação de Perl e o resultado de uma importação de serviço web SOAP.

    WSDL de amostra

    <?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>

    Amostra de envelope SOAP

    <?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>

    Exemplo de resposta SOAP

    <?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>

    Exemplo de invocação usando Perl

    O script de exemplo a seguir usa o serviço Web de notificação para criar um incidente como o usuário itil. Ele usa a linguagem Perl e o pacote SOAP::Lite.
    #!/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";}}
    A seguir está o resultado impresso pelo script Perl no console.
    name=display_value   value=INC10011
    name=status   value=inserted
    name=table   value=incident
    name=display_name   value=number
    name=sys_id   value=cd45649c0a0a0b2b00e6f27649d6bd2c
    A imagem a seguir mostra a linha resultante criada para a tabela de conjunto de importação Notification (imp_notification).
    Figura 2. WS Iset Perl