Requisitos de segurança de conjuntos de importação de serviços da Web

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 2 min. de leitura
  • Os Import Sets do Web Service usam os mesmos mecanismos de segurança que o SOAP Web Services.

    • A autenticação básica requer que um usuário do Serviço Web forneça um nome de usuário e uma 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 a conjuntos de importação de serviços da web

    Ao exibir uma tabela de serviço Web mapeada, você tem os seguintes links relacionados.

    • Conjuntos de importação — Os conjuntos de 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 no registro da tabela Incidente como resultado da transformação.
    Figura 1. Notificação SOAP

    Exemplo de conjuntos de importação de serviço da Web

    Este exemplo demonstra o WSDL, o envelope e a resposta SOAP, a invocação 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>

    Resposta SOAP de amostra

    <?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 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 Notificação (imp_notification).
    Figura 2. Iset Perl do WS