Gestione dei servizi Web

Questo articolo contiene i seguenti argomenti:
casm173
Questo articolo contiene i seguenti argomenti:
I
servizi Web
corrispondono a un set di standard per lo scambio dei dati che abilita la comunicazione tra più prodotti, anche se installati in ambienti operativi diversi. Il funzionamento dei servizi Web è analogo alla navigazione Web con un PC, in quanto consente di accedere a tutti i siti Web remoti indipendentemente dalla piattaforma utilizzata, ad esempio Solaris, AIX, Windows e così via. Allo stesso modo, i servizi Web consentono la comunicazione tra le applicazioni sui vari server tramite il protocollo HTTP, indipendentemente dall'ambiente operativo. Ad esempio, un prodotto Microsoft Office può comunicare con un programma presente su un server UNIX e una JSP (Java Server Page) può accedere a un server di Windows. Si tratta di comunicazioni a piattaforma neutra che consentono di eseguire integrazioni estremamente efficaci.
I servizi Web sfruttano questa tecnologia, permettendo a quasi tutti i prodotti di accedere a CA SDM e alla Gestione della conoscenza. I client dei servizi Web possono creare ticket, aggiornare gli asset, eseguire ricerche nell'archivio della conoscenza e altro ancora.
Per ulteriori informazioni sui servizi Web, consultare la sezione Riferimenti di CA SDM.
Componenti di CA SDM
CA SDM fornisce i file di installazione per questa versione dei servizi Web J2EE nella directory seguente:
<NX_ROOT>/sdk/websvc/R11
<NX_ROOT> specifica il percorso di installazione principale per CA SDM.
Opzioni dei servizi Web
Queste opzioni controllano le sessioni dei servizi Web:
  • rest_webservice_access_duration
    Specifica la durata (in ore) della validità della chiave di accesso del servizio Web REST prima della scadenza. Il timeout della chiave di accesso non si basa sul tempo di inattività, ma sulla durata dalla creazione della chiave di accesso. Una volta raggiunta la durata specificata, la chiave di accesso non sarà più attiva, indipendentemente dal fatto che sia in uso.
    Facoltativamente, il client REST può fornire la durata della chiave di accesso per la chiave di accesso specifica durante la richiesta di chiave di accesso. Per fornire il valore della durata, impostarla direttamente nell'attributo expiration_date della risorsa rest_access, come parte del payload della richiesta POST.
    Intervallo valido:
    1 - 8760 ore
    Impostazione predefinita:
    168
  • rest_webservice_disable_basic_auth
    Disabilita l'autenticazione di base nei servizi Web REST.
    Impostazione predefinita
    : No
  • rest_webservice_list_max_length
    Specifica il numero massimo di righe restituite da una query del servizio Web REST.
    Valore predefinito
    : 500
  • rest_webservice_list_page_length
    Specifica il numero predefinito di righe restituite per pagina da una query del servizio Web REST.
    Intervallo valido:
    1-500
    Impostazione predefinita:
    25
  • rest_webservice_resources_to_expose
    Specifica l'elenco di factory Majic (risorse) visualizzate da CA SDM attraverso i servizi Web REST. Questa opzione sostituisce il comportamento predefinito. CA SDM espone tutte le factory Majic attraverso i servizi Web di REST per impostazione predefinita.
    Se non viene immesso alcun valore per questa opzione, il comportamento predefinito visualizza tutte le factory Majic in cui la proprietà REST_OPERATIONS non è impostata su NESSUNO. Per impostazione predefinita, nessuna proprietà factory Majic è impostata su NESSUNO.
    Utilizzare la proprietà REST_OPERATIONS per impostare i metodi HTTP CRUD (CREATE, READ, UPDATE e DELETE) specifici di CA SDM per la visualizzazione in una determinata factory Majic.
    Impostazione predefinita:
    rest_access
    Esempio:
    rest_access, cnt, grp, cr, crs, pri, alg, urg, imp, pcat, org
  • hmac_algorithm
    Specifica l'algoritmo utilizzato per calcolare la firma per l'autenticazione della chiave privata/personalizzata nei servizi Web REST.
    Impostazione predefinita
    : HmacSHA1
  • string_to_sign_fields
    Specifica i campi utilizzati per calcolare la firma per l'autenticazione della chiave privata/personalizzata nei servizi Web REST, oltre ai campi REQUEST_METHOD, REQUEST_URI e QUERY_STRING.
    Impostazione predefinita:
    nessun testo
  • webservice_domsrvr
    Specifica il nome del motore oggetti utilizzato dai servizi Web SOAP. Se non è installato, i servizi Web SOAP utilizzano "domsrvr".
    Il valore di questa opzione deve essere una stringa che inizia con i caratteri "domsrvr:".
  • webservice_session_timeout
    Imposta il valore di timeout (in minuti) per le sessioni dei servizi Web SOAP. Se la durata tra le chiamate successive ai metodi Web è superiore rispetto al valore specificato qui, l'ID sessione viene contrassegnato come scaduto. La sessione quindi non è più valida.
    Per evitare che le sessioni scadano a causa dell'attività, impostare il valore di questa opzione su 0. Le sessioni possono essere comunque invalidate dagli altri metodi, ad esempio le routine di disconnessione.
Se si utilizzano queste opzioni, è necessario riavviare il server di CA SDM.
Installazione dei servizi Web
A seconda del tipo di configurazione, CA SDM consente di installare i servizi Web per i server seguenti:
  • Convenzionale: server primario e secondario. Affinché i client dei servizi Web possano utilizzare un URL su un server secondario, aggiungere un motore Web al server secondario
  • Disponibilità avanzata: server applicazioni
I servizi Web utilizzano la gestione oggetto predefinita installata sul server di CA SDM. Per utilizzare una gestione oggetto diversa, installare e impostare l'opzione
webservice_domsrvr
in Gestione opzioni.
Per informazioni sull'aggiunta e la configurazione della Gestione oggetti, Web Director e dei motori Web, consultare la sezione Gestione delle opzioni.
Attivazione di Design-Time
I servizi Web di CA SDM mettono a disposizione degli sviluppatori una funzionalità di configurazione degli stub dei metodi nella versione Java. Quando questa funzione viene attivata, i servizi Web ignorano il server di CA SDM e restituiscono i dati simulati per le chiamate dei metodi, quindi le chiamate ai servizi Web possono essere effettuate senza che il server di CA SDM sia in esecuzione.
Attenersi alla seguente procedura:
  1. Modificare deploy.wsdd per rimuovere i commenti delle sezioni di “design_mode_stubs”.
  2. Invertire la distribuzione e ridistribuire il server.
  3. Riavviare il server applicazioni.
    La funzione Design-Time è attivata.
La funzionalità Design-time è valida solo per i metodi dei servizi Web di CA SDM.
Sicurezza dei servizi Web
Durante la distribuzione dei servizi Web, è necessario tenere in considerazione importanti fattori di protezione . Quando si utilizza il protocollo HTTP, la configurazione predefinita non è protetta. Se la rete utilizza questo protocollo, tutte le informazioni in formato di testo semplice trasmesse nelle chiamate dei servizi Web tra i client e i server non sono protette. Tali informazioni includono i dati delle applicazioni, ad esempio le descrizioni dei ticket e i nomi dei contatti, e i SID (Service Session Identifier) delle sessioni dei servizi Web. A seconda dei metodi di accesso all'applicazione del servizio Web utilizzati, tali informazioni possono includere le password.
Si consiglia che gli amministratori incaricati della distribuzione dei servizi Web consultino attentamente queste informazioni ed eseguano le procedure di configurazione aggiuntive ai livelli di applicazione e di rete al fine di proteggere l'ambiente dei servizi Web.
La configurazione dei servizi Web con HTTP non è protetta e pertanto è vulnerabile alle minacce esterne. Tali minacce possono includere tentativi di lettura delle password, session-fixation, spionaggio dei dati e altro ancora.
È necessario tenere in considerazione i tre seguenti fattori principali relativi alla protezione durante la distribuzione dei servizi Web:
  • Quali schemi di autenticazione per l'accesso (a livello di applicazione) deve supportare la distribuzione?
  • Quali funzionalità aggiuntive di protezione a livello di rete richiede la distribuzione?
  • In che modo devono essere applicati questi requisiti tramite le opzioni di configurazione dei servizi Web?
Le risposte a queste domande sono descritte di seguito.
  • Schemi di autenticazione a livello di applicazione del servizio Web
    : per accedere ai servizi Web, è necessario eseguire l'autenticazione di un'applicazione client dei servizi Web con l'applicazione servizi Web. I servizi Web offrono due schemi di autenticazione per l'accesso. È possibile utilizzare la combinazione nome utente/password oppure la tecnologia PKI (Public Key Infrastructure, infrastruttura a chiave pubblica). Entrambi gli schemi utilizzano il componente di gestione e controllo dell'accesso dei servizi Web e le policy di accesso. L'autenticazione e la gestione dell'accesso costituiscono le funzionalità di protezione più importanti per i servizi Web.
    È possibile disabilitare l'autenticazione basata sui metodi nome utente/password utilizzando il seguente comando di configurazione della protezione:
    disable_user_logon
    Prima di abilitare questa opzione, l'amministratore deve determinare se ciascun client dei servizi Web per cui l'organizzazione richiede l'accesso ai servizi Web, può effettivamente fornire il supporto per il metodo di autenticazione alternativo, ovvero il metodo di accesso basato su PKI. Il vantaggio principale della tecnologia PKI sta nel fatto che le applicazioni client dei servizi Web non richiedono la
    gestione
    degli account degli utenti di sistema, ovvero la gestione, la custodia e la trasmissione delle password.
  • Configurazione della protezione a livello di rete
    : in entrambi gli schemi di autenticazione, quello basato su nome utente/password e quello basato sulla tecnologia PKI, gli ID di sessione restituiti dal metodo di accesso specifico (e tutte le altre informazioni correlate) vengono trasmessi in formato di testo semplice se si utilizza il protocollo HTTP. Inoltre, se si utilizza lo schema di autenticazione basato sul nome utente/password, la password inviata dall'applicazione client ai servizi Web non è protetta (formato di testo semplice). Durante lo sviluppo del prodotto non è stato stabilito alcun standard per la protezione dei servizi Web da parte di W3C (World Wide Web Consortium). Di conseguenza, la protezione dei servizi Web non è una funzionalità utilizzata in queste implementazioni dei servizi Web per garantire un ambiente protetto. Si consiglia invece l'uso di protocolli di protezione al livello di trasporto punto a punto (SSL/TLS) e altri meccanismi di protezione al livello di rete (ad esempio, IPSec) per proteggere le trasmissioni di dati in formato di testo semplice per lo scambio delle informazioni sull'autenticazione al livello di applicazione e le trasmissioni degli ID di sessione e dei dati correlati.
    Durante la distribuzione dei servizi Web, si consiglia l'uso del protocollo SSL (o HTTPS) per proteggere lo scambio delle informazioni di autenticazione e le trasmissioni degli ID di sessione e dei dati correlati a livello dell'applicazione.
  • Configurazione dei servizi Web
    : per applicare la protezione delle comunicazioni (basate su protocollo) a livello dell'applicazione dei servizi Web, sono disponibili i due comandi di configurazione della protezione seguenti:
    require_secure_logon
    Questa funzionalità di protezione richiede l'uso del protocollo SSL (o HTTPS) per il richiamo dei metodi Login() e LoginService(). Questa funzionalità fornisce un metodo pratico per la protezione del nome utente e della password, evitando allo stesso tempo il sovraccarico del protocollo SSL per gli altri servizi Web.
    Se si utilizza il comando require_secure_logon, l'applicazione dei servizi Web non conferma se la protezione a livello di protocollo delle comunicazioni è applicata con metodi diversi da Login() e LoginService(). A meno che non vengano implementate altre precauzioni, è possibile che altri metodi per i servizi Web vengano richiamati senza misure di protezione, rendendo i sistemi più vulnerabili e quindi più esposti alle minacce del mondo esterno.
    require_secure_connection
    Questa funzionalità di protezione richiede l'utilizzo del protocollo SSL per accedere a qualsiasi parte del servizio Web. Se è richiesto il protocollo https ma non viene utilizzato, viene restituito un errore SOAP con codice UDS_SECURE_CHANNEL_REQUIRED.
    Per ulteriori informazioni sulle modalità di configurazione del protocollo SSL, consultare la documentazione del contenitore servlet J2EE.
Utilizzo dei servizi Web
Le informazioni contenute in questa sezione forniscono i concetti di base per l'utilizzo dei servizi Web di CA SDM. Nella directory di installazione di CA SDM è presente un codice di esempio che utilizza i servizi Web:
<NX_ROOT>/samples/sdk/websvc/java
Il codice di esempio è scritto in Java utilizzando Apache Axis per la messaggistica SOAP.
Accessi
Per poter utilizzare un metodo per i servizi Web, è necessario ottenere un SID (ID sessione) da uno dei metodi seguenti: login(), loginService() e loginServiceManaged(). I primi due metodi richiedono l'utilizzo di un nome utente e di una password che vengono convalidati esattamente come avviene per l'interfaccia Web di CA SDM. L'oggetto Tipo di accesso del contatto specifica il metodo di convalida. Il terzo metodo richiede una coppia di chiavi pubblica/privata, in cui la richiesta di accesso crittografata con la chiave privata può essere decifrata solo con la chiave pubblica e viceversa.
Esecuzione delle attività comuni
I servizi Web forniscono un'API flessibile e potente in CA SDM, ma richiedono una conoscenza della struttura a oggetti utilizzata dal prodotto. A tale scopo:
  1. Acquisire familiarità con le informazioni sugli oggetti e gli attributi nella sezione Comandi di riferimento di CA Service Desk Manager.
    In questa guida sono elencati gli attributi di ciascun oggetto del sistema, che sono essenziali poiché molti metodi dei servizi Web richiedono l'utilizzo dei nomi degli attributi.
  2. Esaminare i metodi dei servizi Web, soprattutto quelli generici. Se, ad esempio, l'applicazione deve visualizzare tutti i registri attività per una richiesta, identificare innanzitutto in che modo i registri sono correlati alla richiesta.
    La sezione Comandi di riferimento di CA Service Desk Manager
    mostra che l'oggetto Richiesta dispone di due elenchi di registri attività: l'elenco act_log (che mostra solo i registri non interni) e l'elenco act_log_all (che elenca tutti i registri attività).
  3. Identificare i metodi dei servizi Web necessari. Per associare gli elenchi a un oggetto, utilizzare i metodi getRelatedList() o getRelatedListValues().
Handle predefiniti
Alcuni dati predefiniti forniti dal prodotto vengono utilizzati di frequente. Per non dover cercare gli handle per tali oggetti, quelli più utilizzati sono elencati nelle tabelle seguenti.
Sebbene dagli handle non possano essere modificati, è possibile modificare i simboli leggibili.
Tipo di contatto (Nome oggetto: ctp)
Handle
Nota
ctp:2307
Il tipo di "Analista"
ctp:2310
Il tipo di "Cliente"
ctp:2305
Il tipo di "Dipendente"
ctp:2308
Il tipo di "Gruppo"
Impatto (Nome oggetto: imp)
Handle
Nota
imp:1605
Impatto 'Nessuno'
imp:1600
Impatto basso '5'
imp:1601
Impatto medio-alto'4'
imp:1602
Impatto medio '3'
imp 1603
Impatto medio-alto '2'
imp:1604
Impatto alto '1'
Priorità (Nome oggetto: pri)
Handle
Nota
pri:505
Priorità non assegnata 'Nessuna'
pri:500
Priorità bassa '5'
pri:501
Priorità medio-bassa '4'
pri:502
Priorità media '3'
pri:503
Priorità medio-alta '2'
pri:504
Priorità alta '1'
Gravità (Nome oggetto: sev)
Handle
Nota
sev:800
Gravità bassa '1'
sev:801
Gravità medio-alta '2'
sev:802
Gravità media '3'
sev:803
Gravità medio-alta '4'`
sev:804
Gravità alta '5'
Tipo richiesta chiamata (Nome oggetto: crt)
Handle
Nota
crt:180
Richiesta
crt:181
Problema
crt:182
Incidente
Query per gli oggetti Richiesta, Issue o Ordini di cambiamento assegnati a un contatto
Una delle operazioni più comuni è il recupero delle richieste attive assegnate a un analista (assegnatario). È possibile utilizzare uno dei metodi disponibili, ad esempio doQuery() (per ottenere un riferimento all'elenco) oppure doSelect() (per ottenere immediatamente i valori). Supponendo che l'handle dell'assegnatario sia già noto, la clausola Where da utilizzare è la seguente:
assignee.id = U'<assigneeID>' AND active = 1
In questa clausola Where, corrisponde all'ID dell'handle di un contatto, un valore come ad esempio "555A043EDDB36D4F97524F2496B35E75".
Questa clausola Where è valida per le Richieste, gli Ordini di cambiamento e le Issue in quanto tutti dispongono degli attributi 'assignee' e 'active' con lo stesso significato per tutti e tre i tipi di oggetto. La parte 'active = 1' della clausola Where limita la ricerca alle Richieste attive.
Flag Attivo
La maggior parte degli oggetti di CA SDM dispone di un campo denominato 'active' o 'delete_flag'. Si tratta di un puntatore SREL all'oggetto Active_Boolean_Table o all'oggetto Boolean_Table. Valutare la possibilità di aggiungere questi campi alle query per filtrare gli oggetti contrassegnati come non attivi dall'amministratore di sistema. Per l'esecuzione delle query, cercare 'delete_flag = 0' per individuare i record attivi e 'delete_flag = 1' per trovare quelli non attivi. Ad esempio, lo pseudo-codice seguente dimostra l'utilizzo del metodo doSelect() per recuperare i valori per tutti gli oggetti Stato Richiesta attivi:
doSelect(SID, "crs", "delete_flag = 0", -1, new String[0]);
Per impostare un oggetto sullo stato attivo o non attivo, è necessario passare l'handle dell'oggetto Boolean che rappresenta i valori True o False. Questi handle rimangono invariati affinché sia possibile codificarli in modo sicuro. Di seguito sono riportati gli handle:
Active_Boolean_Table
Boolean_Table
actbool:4551 = 'Active'
bool:200 = 'False'
actbool:4552 = 'Inactive'
bool:201 = 'True'
Recupero della lunghezza degli elenchi correlati
Se si richiedono i valori di attributo da un oggetto, ad esempio utilizzando il metodo getObjectValues(), è possibile ottenere la lunghezza di un elenco correlato utilizzando l'attributo seguente:
"<listName>.length"
Ad esempio, per ottenere il numero di registri attività per una Richiesta specifica, passare al metodo getObjectValues() quanto riportato di seguito:
"act_log_all.length"
Si tratta dell'unico modo per utilizzare i nomi degli elenchi in questi tipi di metodo
.