Gerenciamento de serviços web

Este artigo contém os seguintes tópicos:
casm173
Este artigo contém os seguintes tópicos:
Os
serviços web
são um conjunto de padrões de troca de dados que permite a comunicação entre aplicativos, mesmo que estejam em ambientes operacionais diferentes. Isso é semelhante a navegar na web em um computador pessoal — todos os sites remotos da web são acessíveis independentemente de estarem hospedados no Solaris, AIX, Windows e assim por diante. Da mesma maneira, os serviços web permitem aos produtos se comunicarem por HTTP com vários servidores, independentemente do ambiente operacional. Por exemplo, um aplicativo do Microsoft Office pode se comunicar com um programa em um servidor UNIX, e uma Java Server Page pode acessar um servidor hospedado em um servidor Windows. Esta comunicação independente de plataforma permite integrações poderosas.
Os serviços da web tiram proveito dessa tecnologia, permitindo que praticamente qualquer produto acesse o CA SDM e o gerenciamento de conhecimento. Os clientes dos serviços web podem criar tickets, atualizar ativos, pesquisar a base de conhecimento e muito mais.
Para obter mais informações sobre serviços web, consulte a seção Referência do CA SDM.
Componentes do CA SDM
O CA SDM fornece os arquivos de instalação para esta versão dos serviços web J2EE no seguinte diretório:
<NX_ROOT>/sdk/websvc/R11
<NX_ROOT> especifica o caminho de instalação raiz do CA SDM.
Opções de serviços web
Estas opções controlam a sessão de serviços web:
  • rest_webservice_access_duration
    Especifica o número de horas que a chave de acesso de serviços web do REST permanece ativa antes de expirar. O tempo limite de chave de acesso não tem por base o tempo de inatividade, mas o período de tempo desde sua criação. Após que a chave de acesso atende a duração especificada, a chave de acesso termina, independentemente de estar ou não sendo usada.
    Opcionalmente, o cliente REST também pode fornecer o tempo de duração da chave de acesso para a chave de acesso específica durante a solicitação de chave de acesso. Para fornecer o valor de duração, defina-o no atributo expiration_date do recurso rest_access, como parte da carga de implantação da solicitação POST.
    Intervalo válido:
    1-8760 horas
    Padrão:
    168
  • rest_webservice_disable_basic_auth
    Desativa a autenticação básica em serviços web do REST.
    Padrão:
    Não
  • rest_webservice_list_max_length
    Especifica o número máximo de linhas que uma consulta de serviço web do REST retorna.
    Padrão:
    500
  • rest_webservice_list_page_length
    Especifica o número máximo de linhas que uma consulta de serviço web do REST retorna por página.
    Intervalo válido
    : 1-500 horas
    Padrão:
    25
  • rest_webservice_resources_to_expose
    Especifica a lista de fábricas Majic (recursos) que o CA SDM exibe por meio dos serviços web do REST. Esta opção substitui o comportamento padrão. Por padrão, o CA SDM exibirá todas as fábricas por meio dos serviços web do REST.
    Se você não inserir os valores dessa opção, o comportamento padrão exporá qualquer fábrica Majic que não a tenha propriedade REST_OPERATIONS definida como NONE. Por padrão, nenhuma fábrica Majic tem essa propriedade definida como NONE.
    Use a propriedade REST_OPERATIONS para definir os métodos HTTP CRUD (CREATE, READ, UPDATE, DELETE) específicos para o CA SDM expor em uma determinada fábrica Majic.
    Padrão:
    rest_access
    Exemplo:
    rest_access, cnt, grp, cr, crs, pri, alg, urg, imp, pcat, org
  • hmac_algorithm
    Especifica o algoritmo usado para calcular a assinatura para Custom/Secret Key Auhentication em Serviços web do REST.
    Padrão
    HmacSHA1
  • string_to_sign_fields
    Especifica os campos que você usa para calcular a assinatura para Custom/Secret Key Authentication nos Serviços web do REST, além dos campos padrão juntamente com o padrão REQUEST_METHOD, REQUEST_URI, and QUERY_STRING.
    Padrão
    : em branco
  • webservice_domsrvr
    Especifica o nome do mecanismo de objeto usado pelos serviços web SOAP. Se não estiver instalado, os serviços web SOAP usarão "domsrvr".
    O valor dessa opção deve ser uma sequência de caracteres iniciada com os caracteres "domsrvr:".
  • webservice_session_timeout
    Define o valor de tempo limite (em minutos) para sessões de serviços web SOAP. Se o tempo entre chamadas sucessivas de método da web for maior do que o valor especificado, a ID de sessão será marcada como expirada. Em seguida, a sessão não será mais válida.
    Para evitar que as sessões expirem por atividade, defina o valor dessa opção como 0. Outros métodos, como rotinas de logoff, ainda poderão invalidar as sessões.
Essas opções exigem que o servidor do CA SDM seja reiniciado
.
Instalação de serviços web
Dependendo de seu tipo de configuração, o CA SDM instala os serviços web para os servidores a seguir:
  • Convencional: os servidores principal e secundário. Para que os clientes do serviço web usem um URL em um servidor secundário, um mecanismo da web deve ser adicionado ao servidor secundário.
  • Disponibilidade avançada: servidor de aplicativos
Serviços web usam o gerenciador de objetos padrão instalado no servidor do CA SDM. Para usar qualquer outro gerenciador de objetos, instale e defina a opção
webservice_domsrvr
no Gerenciador de opções.
Para obter informações sobre como adicionar e configurar gerenciadores de objetos, web directors e web engines, consulte a seção Gerenciador de opções.
Como ativar o tempo de criação
Os serviços web do CA SDM incluem um recurso de configuração do método stub para desenvolvedores na versão Java. Quando ativados, os serviços web ignoram o servidor CA SDM e retornam os dados simulados para chamadas de método, para que as chamadas dos serviços web possam ser feitas sem executar um servidor CA SDM.
Siga estas etapas:
  1. Edite deploy.wsdd para excluir o comentário das seções de “design_mode_stubs”.
  2. É preciso reverter a implantação e reimplantar o servidor.
  3. Reinicie o servidor de aplicativos.
    O recurso de tempo de design é ativado.
O recurso de tempo de design se aplica apenas aos métodos de serviços web do CA SDM
.
Segurança em serviços web
Ao implementar serviços web, entender as considerações de segurança importantes. A configuração padrão quando o HTTP é usado não é segura; todas as informações sem formatação enviadas entre o cliente e o servidor em chamadas de serviços web pela rede com o protocolo HTTP não estão protegidas. Isso inclui não somente dados de aplicativos, como descrições de ticket e nomes de contatos, mas também identificadores de sessão de serviço web (SID). Dependendo dos métodos de logon do aplicativo do serviço web usado, ele pode incluir senhas.
É recomendável que os administradores que implementam serviços web releiam atentamente essas informações e sigam etapas adicionais de configuração em nível de aplicativo e de rede para proteger o ambiente de seus serviços web.
A configuração padrão do serviço web usada com HTTP é desprotegida e vulnerável a ameaças à segurança, que podem incluir detecção de senha, ataques de fixação de sessão, espionagem de dados, entre outros.
Há três importantes configurações de segurança inter-relacionadas na implantação de serviços web:
  • Que esquemas de autenticação de acesso (nível de aplicativo) esta implantação deve suportar?
  • Que recursos adicionais de segurança de nível de rede esta implementação exige?
  • Como estes requisitos serão impostos por meio das opções de configuração de serviços web?
A seguir está a descrição de cada recurso de segurança:
  • Esquemas de autenticação em nível de aplicativo de serviço web
    —Para acessar os serviços web, um aplicativo cliente de serviço web deve ser autenticado com o aplicativo de serviço web. Os serviços web fornecem dois esquemas de autenticação de acesso. O primeiro é por nome do usuário/senha enquanto o outro é pela tecnologia PKI (Infra-estrutura de chave pública). Ambos trabalham com o componente de controle e gerenciamento de acesso nos serviços web, usando a política de acesso. A autenticação de acesso e o gerenciamento de acesso são os recursos de segurança mais importantes dos serviços web.
    A autenticação com métodos de nome do usuário/senha pode ser desativada usando-se o seguinte comando de configuração de segurança:
    disable_user_logon
    Antes de ativar esta opção, o administrador precisa verificar se todos os clientes de serviço web para os quais uma empresa está solicitando acesso a serviços web podem realmente suportar o método alternativo de autenticação, que é o método de logon com base em PKI. A principal vantagem da tecnologia PKI é que os aplicativos clientes de serviços web não exigem contas de usuário no sistema
    mantidas
    , isto é, a manutenção, o armazenamento e a transmissão de suas senhas.
  • Configuração de segurança em nível de rede
    —Nos dois esquemas de autenticação, nome do usuário/senha e PKI (Infraestrutura de chave pública), observe que o identificador de sessão retornado do método de logon específico (assim como todas as informações subsequentes) é transmitido como texto sem formatação quando o HTTP é usado. Além disso, se o esquema de autenticação de nome do usuário/senha for usado, a senha será enviada desprotegida (em texto sem formatação) do aplicativo cliente de serviço web para os serviços web. Durante o desenvolvimento de produto, o W3C não tinha os padrões recomendados para segurança de serviços web. Após essa fase, o WS-Security não é usado por essas implementações de serviços web para fornecer um contexto de segurança. Em vez disso, o SSL/TLS (Transport Layer Security) ponto a ponto e outros mecanismos de segurança em nível de rede (por exemplo, IPSec) são recomendados para proteger a transmissão de texto sem formatação das trocas de autenticação em nível de aplicativo, a subsequente identificação de sessão e os dados.
    É recomendável usar SSL (ou HTTPS) ao implantar os serviços web para proteger as trocas de autenticação no nível do aplicativo, as transmissões subsequentes de identificação de sessão e os dados.
  • Configuração de serviço web
    —Para permitir que os administradores imponham segurança em nível de protocolos de comunicações no nível do aplicativo de serviços web, os dois seguintes comandos de configuração de segurança são aceitos:
    require_secure_logon
    Esse recurso de segurança requer que você use o SSL (ou https) para chamar os métodos Login() e LoginService(). Esse recurso também fornece um método prático para proteger o nome do usuário e a senha enquanto evita a sobrecarga de SSL no restante dos serviços web.
    Se você usar o comando require_secure_logon, o aplicativo de serviços web não confirmará que a segurança no nível do protocolo de comunicações foi imposta aos métodos diferentes de Login() e LoginService(). A menos que outras precauções sejam tomadas, outros métodos de serviços web podem ser chamados sem segurança, causando uma maior vulnerabilidade a ameaças à segurança.
    require_secure_connection
    Esse recurso de segurança exige que você use o SSL para acessar qualquer parte do serviço web. Se o https for necessário, mas não for usado, então será retornada uma SOAP Fault com código UDS_SECURE_CHANNEL_REQUIRED.
    Para obter mais informações sobre como configurar o SSL, consulte a documentação do recipiente de servlet do J2EE
    .
Usar os serviços web
As informações desta seção fornecem os fundamentos para usar os serviços web do CA SDM. O código de exemplo que usa os serviços web existe no seguinte diretório de instalação do CA SDM:
<NX_ROOT>/samples/sdk/websvc/java
O código de exemplo é escrito em Java usando-se o Apache Axis para sistema de mensagens SOAP.
logons
Antes que qualquer método de serviços web possa ser usado, uma SID (ID de sessão) deve ser obtida de um destes métodos: login(), loginService() e loginServiceManaged(). Os dois primeiros métodos exigem um nome de usuário e senha que são validados exatamente da mesma forma que a interface da web do CA SDM; o tipo de acesso do contato especifica o método de validação. O terceiro método exige um par de chaves pública/privada, em que a solicitação de logon criptografada com a chave privada pode ser descriptografada apenas pela chave pública e vice-versa.
Como realizar tarefas comuns
Os serviços web fornecem uma API flexível e poderosa no CA SDM, mas requerem algum conhecimento da estrutura de objetos usada pelo produto, conforme segue:
  1. Familiarize-se com as informações sobre objetos e atributos na seção Comandos de referência do CA Service Desk Manager.
    Ele lista os atributos de cada objeto no sistema, que é essencial porque muitos dos métodos de serviços web exigem nomes de atributo.
  2. Verifique os métodos de serviços web, especialmente os genéricos. Por exemplo, se seu aplicativo precisar exibir todos os logs de atividade para uma solicitação, identifique primeiro como os logs de atividades estão relacionados à solicitação.
    A seção Comandos de referência do CA Service Desk Manager
    mostra que o objeto da solicitação tem duas listas de Logs de atividades: act_log (que mostra somente os logs externos) e act_log_all (que relaciona todos os logs de atividades).
  3. Identifique quais métodos de serviços web são necessários. Para obter as listas vinculadas a um objeto, utilize getRelatedList() ou getRelatedListValues().
Tratamentos padrão
Alguns dados padrão fornecidos pelo produto são usados com frequência. Em vez de consultar os identificadores para esses objetos, alguns dos normalmente usados estão listados nas seguintes tabelas.
Enquanto os identificadores não forem alterados, os símbolos legíveis poderão ser editados.
Tipo de contato (Nome do objeto: ctp)
Identificador
Observação
ctp:2307
O tipo “Analista”
ctp:2310
O tipo “Cliente”
ctp:2305
O tipo “Funcionário”
ctp:2308
O tipo “Grupo”
Impacto (Nome do objeto: imp)
Identificador
Observação
imp:1605
Impacto "Nenhum'
imp:1600
Baixo impacto "5’
imp:1601
Impacto médio-baixo "4’
imp:1602
Impacto médio "3’
imp 1603
Impacto médio-alto "2’
imp:1604
Impacto alto "1’
Prioridade (nome do objeto: pri)
Identificador
Observação
pri:505
Prioridade "Nenhuma"não atribuída
pri:500
Prioridade baixa "5’
pri:501
Prioridade média-baixa "4’
pri:502
Prioridade média "3’
pri:503
Prioridade média-alta "2’
pri:504
Prioridade alta "1’
Gravidade (nome do objeto: sev)
Identificador
Observação
sev:800
Gravidade baixa "1’
sev:801
Gravidade média-baixa "2’
sev:802
Gravidade média "3’
sev:803
Gravidade média-alta "4’
sev:804
Gravidade alta "5’
Tipo de solicitação de chamada (nome do objeto: crt)
Identificador
Observação
crt:180
Solicitação
crt:181
Problema
crt:182
Incidente
Consulta de Solicitações, Ocorrências ou Requisições de mudança atribuídas a um contato
Uma das operações mais comuns é recuperar as solicitações ativas atribuídas a um analista (destinatário). Você pode usar um dos vários métodos, tal como doQuery() (para obter uma referência de lista) ou doSelect() (para obter os valores imediatamente). Assumindo que o identificador do destinatário já seja conhecido, a cláusula where a ser usada é a seguinte:
assignee.id = U'<assigneeID>' AND active = 1
Nesta cláusula where, <assigneeID> é a parte da ID de um identificador de contato, valor, como “555A043EDDB36D4F97524F2496B35E75”.
Essa cláusula where funciona para solicitações, requisições de mudança e ocorrências porque todos têm os atributos "destinatário"e "ativo’, e eles querem dizer a mesma coisa para os três tipos de objeto. A parte "ativo = 1"da cláusula where restringe a pesquisa para solicitações ativas.
Sinalizador ativo
A maioria dos objetos do CA SDM tem um campo denominado active ou delete_flag'. Na verdade, isso é um ponteiro SREL para o objeto Active_Boolean_Table ou objeto Boolean_Table. Considere adicionar esses campos a suas consultas para filtrar os objetos marcados como Inativos pelo administrador do sistema. Para consultar os propósitos, procure por "delete_flag = 0"para localizar os registros ativos e "delete_flag = 1"para registros inativos. Por exemplo, o seguinte pseudocódigo demonstra o uso de doSelect() para recuperar os valores de todos os objetos ativos de Status de solicitação:
doSelect(SID, "crs", "delete_flag = 0", -1, new String[0]);
Para definir um objeto como ativo ou inativo, você precisa transmitir o identificador do objeto Boolean que representa true ou false. Esses identificadores não são alterados, portanto, você pode codificá-los com segurança. Eles são listados da seguinte maneira:
Active_Boolean_Table
Boolean_Table
actbool:4551 = "Active’
bool:200 = "False’
actbool:4552 = "Inactive’
bool:201 = "True’
Recuperar comprimento da lista relacionada
Ao solicitar valores de atributo de um objeto, tal como com getObjectValues(), você pode receber o comprimento de uma lista relacionada solicitando o seguinte atributo:
"<listName>.length"
Por exemplo, para receber o número de Logs de atividades para uma determinada solicitação, transmita o seguinte para getObjectValues():
"act_log_all.length"
Essa é a única maneira de você usar os nomes de lista nesses tipos de métodos.