SSO Specifiche Funzionali oggetto... : SSO Siti Istituzionali Class abbonamenti data ultimo aggiornamento... : 29/01/2014 N Data Descrizione Approvato da: 1.0 11-03-2013 Versione 1.0 Roberto Santosuosso 1.1 20-03-2013 Versione 1.1 Roberto Santosuosso 1.2 16-05-2013 Versione 1.2 Roberto Santosuosso 1.3 17-05-2013 Versione 1.3 Roberto Santosuosso 1.4 20-05-2013 Versione 1.4 Roberto Santosuosso 1.5 21-05-2013 Versione 1.5 Roberto Santosuosso 1.6 21-05-2013 Versione 1.6 Roberto Santosuosso 1.7 20-12-2013 Versione 1.7 Roberto Santosuosso 1.8 16-01-2014 Versione 1.8 Roberto Santosuosso 1.9 29-01-2014 Versione 1.9, modificata la sezione Parametri di connessione ai Web Service. Rimosso il punto 4 della sezione nuova registrazione sui Siti Istituzionali Roberto Santosuosso Rev. 1.9 Aggiornato il 29/01/2014 Pagina 1 di 15
Sommario PREMESSA... 3 VANTAGGI RISPETTO ALLA PROCEDURA MANUALE... 3 ARCHITETTURA... 4 WORK FLOW... 5 NUOVA REGISTRAZIONE SUI SITI ISTITUZIONALI... 5 COSA FARE IN CASO DI ERRORE:... 5 DAI SITI ISTITUZIONALI A CLASS ABBONAMENTI... 8 COSA FARE IN CASO DI ERRORE:... 8 MODIFICA DATI UTENTE... 9 MODIFICA PASSWORD UTENTE... 9 WEB SERVICE... 10 WEB SERVICE NON RISPONDE (TIMEOUT, ECC ):... 10 WEB SERVICE DI COLLAUDO:... 10 WEB SERVICE DI PRODUZIONE:... 10 PARAMETRI PER LA CONNESSIONE AI WEB SERVICE (CASE SENSITIVE)... 10 DETTAGLIO DI ALCUNI METODI DEL WEB SERVICE... 11 MAIL DI RIFERIMENTO... 11 ESEMPIO DI CHIAMATA AI WEB SERVICE... 12 STIME LAVORI... 15 Rev. 1.9 Aggiornato il 29/01/2014 Pagina 2 di 15
Premessa Il presente documento definisce le specifiche e le linee guida da adottare per uniformare le anagrafiche dei Siti Istituzionali con le anagrafiche del sito Classabbonamenti presenti su Pivotal. Lo scopo è di ottenere le stesse anagrafiche in entrambi i sistemi ed evitare agli utenti (in caso di passaggio da un sito all altro) di dover accedere nuovamente digitando le credenziali. Di seguito sarà descritta l architettura generale del progetto e il work flow. NB: Prima di ogni chiamata ai metodi del Web Service, controllare la validità del token. Vantaggi rispetto alla procedura manuale La procedura attuale di allineamento anagrafiche prevede l estrazione giornaliera dai siti istituzionali degli account modificati negli ultimi 45 giorni. Questi vengono estratti in un sito ftp in formato csv: la procedura li scarica e li accoda ad un file che viene prima normalizzato con uno stradario e poi verificato con il db di Pivotal. Per i nominativi nuovi vengono creati dei file csv (anagrafica, indirizzi, telefoni, email, login) che poi vengono caricati in Pivotal tramite opportuni agenti, mentre per quelli che riesce ad abbinare, il programma verifica se hanno già le info di login: se non ci sono viene creato un solo file csv con queste informazioni che poi viene importato in Pivotal sempre tramite un agente. La procedura viene eseguita manualmente mentre con l SSO si eviterebbe l esecuzione della stessa. Rev. 1.9 Aggiornato il 29/01/2014 Pagina 3 di 15
Architettura Schema ambiente di Produzione Infogroup Classeditori PVTWS2 (Application Server Web2) Ip: 172.22.0.44 ESX 172.22.0.39 SITOABBPRO-WEB00 (Application Server Web) Ip: 10.123.131.72 PVTWS1 (Application Server Web1) Ip: 172.22.0.43 ESX 172.22.0.38 PVTAPP (Pivotal Service Server) Ip: 172.22.0.42 ESX 172.22.0.39 PVTDB (DataBase Server) Ip: 172.22.0.41 ESX 172.22.0.39 PVTWS3 IP: 10.123.131.73 SITOABBPRO-DB00 (Database Server) Ip: 10.123.131.90 Schema ambiente di Collaudo Infogroup Classeditori ESX 172.22.0.38 ESX 172.22.0.39 SITOABBCOL-WEB00 (Application Server Web Coll) Ip: 10.123.131.101 PVTAPP-T (Pivotal Services Server) + (Application Server WebColl) Ip: 172.22.0.23 PVTDB-T (DataBase Server) Ip: 172.22.0.48 SITOABBCOL-DB00 (Database Server Coll) Ip: 10.123.131.100 PVTWS3 IP: 10.123.131.73 Rev. 1.9 Aggiornato il 29/01/2014 Pagina 4 di 15
Work flow nuova registrazione sui Siti Istituzionali Registrazione Utente Siti Istituzionali Web Service Pivotal Quando un nuovo utente si registra sui siti istituzionali, i passi da seguire sono: 1) Sui Siti Istituzionali compilare i campi per la registrazione, 2) Validare tutti i campi necessari per la registrazione, 3) Check esistenza anagrafica sui Siti Istituzionali, 4) Check esistenza anagrafica in Pivotal (metodo Ricerca Contatto Utente punto 3 del documento di Pivotal), 5) Inserire anagrafica sui Siti Istituzionali, 6) Inserire anagrafica in Pivotal (metodo Registra punto 2 del documento di Pivotal), 7) Se specificato un numero di cellulare durante la registrazione, effettuare la login (metodo LoginUtente punto 4 del documento di Pivotal) così da ottenere il token da passare per l inserimento del numero di cellulare (metodo InserisciTelefono punto 16 del documento di Pivotal) con i parametri: Tipologia: Cellulare Tipo Numero: TEL 8) Segnalare eventuali errori all assistenza clienti ed in copia il team di sviluppo, passando User e Mail. NB: Il controllo sul nome utente viene eseguito dal metodo Registra, se già stato usato restituirà un errore. Cosa fare in caso di errore: L inserimento dell anagrafica in Pivotal non è andato a buon fine: Se l inserimento dell anagrafica tramite il web service dovesse restituire degli errori, inviare una mail al team di sviluppo, in modo tale da lanciare una procedura che allinei le anagrafiche. NB: la procedura per l allineamento delle anagrafiche attualmente viene lanciata manualmente all occorrenza. Rev. 1.9 Aggiornato il 29/01/2014 Pagina 5 di 15
Anagrafica presente in Pivotal ma non presente sui Siti Istituzionali: Se dovesse verificarsi la condizione indicata in figura: Una possibile causa potrebbe essere la registrazione avvenuta tramite modulo cartaceo, per risolvere il problema basta inviare una mail all assistenza clienti (ed in cc al team di sviluppo), specificando Username e Email dell utente che sta tentando la registrazione, in modo che loro possano effettuare il recupero dell utenza. Rev. 1.9 Aggiornato il 29/01/2014 Pagina 6 di 15
Di seguito il flow chart: START Inserimento dei dati nel form sui Siti Istituzionali NO Validazione campi avvenuta con successo SI NO Anagrafica presente sui Siti Istituzionali? SI Inserimento anagrafica nei Siti Istituzionali Inserimento anagrafica in Pivotal NO L inserimento in Pivotal ha restituito errori? SI Anagrafica già presente Invio mail all assistenza clienti e al team di sviluppo passando User e Mail, usare il batch per l allineamento FINE Rev. 1.9 Aggiornato il 29/01/2014 Pagina 7 di 15
Dai Siti Istituzionali a Class Abbonamenti Il passaggio dai Siti Istituzionali a www.classabbonamenti.com può avvenire in due modi differenti: dai Siti Istituzionali al sito Classabbonamenti senza aver eseguito l accesso: Senza autenticazione Link alla pagina Utente Siti Istituzionali 1) L utente naviga sui Siti Istituzionali senza aver eseguito l accesso 2) Clicca su un link che fa riferimento al sito www.classabbonamenti.com 3) L utente viene rimandato sul sito senza essere autenticato www.classabbonamenti.com dai Siti Istituzionali al sito Classabbonamenti effettuando l accesso: autenticazione Login (passaggio credenziali tramite POST) Utente Siti Istituzionali www.classabbonamenti.com 1) L utente naviga sui Siti Istituzionali ed esegue l accesso 2) Clicca su un link che fa riferimento al sito www.classabbonamenti.com 3) Tramite web service chiamando il metodo Login (punto 4 del documento di Pivotal) in output verrà restituito il parametro TokenSession 4) Chiamare la pagina http://www.classabbonamenti.com/loginsso passando tramite POST il parametro TokenSession precedentemente ottenuto 5) L utente verrà rimandato sul sito dove risulterà già loggato La chiamata al sito deve essere fatta all Url http://www.classabbonamenti.com/loginsso, e deve passare in POST i seguenti parametri: TokenSession Obbligatorio Token che viene rilasciato in caso di autenticazione avvenuta con successo. ReturnUrl Facoltativo Fa riferimento alla pagina di destinazione sul sito Classabbonamenti, se null ritorna sulla homepage del sito Classabbonamenti Cosa fare in caso di errore: In caso si verifichi un errore, il sistema dovrà reindirizzare indistintamente alla pagina di homepage del sito Classabbonamenti (http://www.classabbonamenti.com) e segnalare l anomalia tramite una mail al team di sviluppo. Rev. 1.9 Aggiornato il 29/01/2014 Pagina 8 di 15
START Siti Istituzionali Click su un link per www.classabbonamenti.com NO Utente Autenticato? SI Url: http://www.classabbonamenti.com NO WS:Login, return OK? SI User non loggato, inviare segnalazione all assistenza clienti e al team di sviluppo Chiamare l Url: http://www.classabbonamenti.com/loginsso passando in POST il parametro TokenSession Url: http://www.classabbonamenti.com FINE Modifica dati utente Tutti i metodi del WS hanno un parametro di input in comune: TokenSession, si ottiene chiamando il metodo Login (punto 4 del documento di Pivotal), per controllarne la validità, passo da eseguire prima di ogni chiamata ad un metodo, utilizzare il metodo AccessoUtente (punto 5 del documento di Pivotal). Modifica password utente Per modificare i dati anagrafici dell utente ci sono a disposizione i seguenti metodi: Metodo Descrizione Riferimento al documento di Pivotal Modifica password Cambio password di accesso Punto 7 Rev. 1.9 Aggiornato il 29/01/2014 Pagina 9 di 15
Web Service Web service non risponde (Timeout, ecc ): La configurazione della struttura di PRODUZIONE prevede un web service sulla macchina PVTWS1(172.22.0.43) da utilizzare come principale. Se questo web service dovesse andare in timeout, non rispondere, ecc, utilizzare il secondo web service di produzione sulla macchina PVTWS2(172.22.0.44). Nel caso entrambe le macchine dovessero presentare problemi, inviare una mail al team di sviluppo. Web service di Collaudo: Web Service realizzato da Pivotal http://172.22.0.23/crmws_class/crmws_class.asmx Web Service realizzato da Class per l interfacciamento con il DB di Pivotal http://10.123.131.73/pvtws3_collaudo/pvtws3.asmx Web service di Produzione: Web Service realizzato da Pivotal(primario) http://172.22.0.43/crmws_class/crmws_class.asmx Web Service realizzato da Pivotal in caso di errore sul primario: http://172.22.0.44/crmws_class/crmws_class.asmx Web Service realizzato da Class per l interfacciamento con il DB di Pivotal http://10.123.131.73/pvtws3/pvtws3.asmx Parametri per la connessione ai Web Service (case sensitive) Sito ConsumerCode ConsumerPassword CodiceGruppo CodiceEnte Classabbonamenti SITOMF passwordmf AB001 AB Italia Oggi SITOMF passwordmf DEFAULT IO Milano Finanza SITOMF passwordmf MFDEF MF Rev. 1.9 Aggiornato il 29/01/2014 Pagina 10 di 15
Dettaglio di alcuni metodi del Web Service Nome: Ricerca Contatto Utente Descrizione: Metodo per la verifica se già presente l Anagrafica Utente questo metodo va chiamato con i seguenti parametri di input: Nome Parametro Obbligatorio ConsumerCode Si ConsumerPassword Si Email Si CodiceFiscale No PartitaIva No CodiceCliente No In output il metodo restituisce: Nome Parametro errornumber errortext errordetails Valori possibili non tenere conto di questo parametro* Contatto già registrato Trovati più contatti Nessun contatto non tenere conto di questo parametro** *attualmente gli errori sono codificati con lo stesso codice ** Messaggio non uniforme Mail di riferimento Destinatario team di sviluppo Collaudo team di sviluppo Produzione assistenza clienti Email abbdevcoll@class.it abbdev@class.it servizioclienti@class.it Rev. 1.9 Aggiornato il 29/01/2014 Pagina 11 di 15
Esempio di chiamata ai Web Service Metodo Ricerca contatto utente Esempio chiamata al WS: <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mxs="http://mxs.crmws_class_pivotal.ita/"> <soap:header/> <soap:body> <mxs:ricercacontatto> <mxs:consumercode>sitomf</mxs:consumercode> <mxs:consumerpassword>passwordmf</mxs:consumerpassword> <mxs:email>nome.cognome@nomedominio.tld</mxs:email> <!--Optional:--> <mxs:codicecliente>?</mxs:codicecliente> <!--Optional:--> <mxs:codicefiscale>?</mxs:codicefiscale> <!--Optional:--> <mxs:partitaiva>?</mxs:partitaiva> </mxs:ricercacontatto> </soap:body> </soap:envelope> Rev. 1.9 Aggiornato il 29/01/2014 Pagina 12 di 15
Esempio di risposta dove viene trovata una corrispondenza: <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <soap:body> <RicercaContattoResponse xmlns="http://mxs.crmws_class_pivotal.ita/"> <RicercaContattoResult> <commandresult xmlns=""> <error> <errornumber>80043459</errornumber> <errortext>contatto già registrato</errortext> <errordetails>contatto già registrato ws_webinterface.registrazioneutente.addformdata ==================== Function = CRForm::AddFormData. Occurred in RForm.cpp on line 448. Compiled on Nov 29 2011, modified on Thu May 28 13:29:21 2009. ==================== Function = CRForm::AddFormDataAutoTransact. Occurred in RForm.cpp on line 2085. Compiled on Nov 29 2011, modified on Thu May 28 13:29:21 2009. =================== Function = CRXMLformUpdate::Update. Occurred in RXSaveFormData.cpp on line 731. Compiled on Nov 29 2011, modified on Wed Jan 10 12:14:21 2007. ==================== Function = CRSaveFormData::Execute. Occurred in RXSaveFormData.cpp on line 804. Compiled on Nov 29 2011, modified on Wed Jan 10 12:14:21 2007.</errorDetails> </error> </commandresult> </RicercaContattoResult> </RicercaContattoResponse> </soap:body> </soap:envelope> Rev. 1.9 Aggiornato il 29/01/2014 Pagina 13 di 15
Esempio di risposta dove non viene trovata nessuna corrispondenza: <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <soap:body> <RicercaContattoResponse xmlns="http://mxs.crmws_class_pivotal.ita/"> <RicercaContattoResult> <commandresult xmlns=""> <error> <errornumber>80043459</errornumber> <errortext>nessun contatto</errortext> <errordetails>nessun contatto ws_webinterface.registrazioneutente.addformdata ==================== Function = CRForm::AddFormData. Occurred in RForm.cpp on line 448. Compiled on Nov 29 2011, modified on Thu May 28 13:29:21 2009. ==================== Function = CRForm::AddFormDataAutoTransact. Occurred in RForm.cpp on line 2085. Compiled on Nov 29 2011, modified on Thu May 28 13:29:21 2009. ==================== Function = CRXMLformUpdate::Update. Occurred in RXSaveFormData.cpp on line 731. Compiled on Nov 29 2011, modified on Wed Jan 10 12:14:21 2007. ==================== Function = CRSaveFormData::Execute. Occurred in RXSaveFormData.cpp on line 804. Compiled on Nov 29 2011, modified on Wed Jan 10 12:14:21 2007.</errorDetails> </error> </commandresult> </RicercaContattoResult> </RicercaContattoResponse> </soap:body> </soap:envelope> Rev. 1.9 Aggiornato il 29/01/2014 Pagina 14 di 15
Esempio di risposta dove vengono trovate più corrispondenze:... <errornumber>80043459</errornumber> <errortext>trovati più contatti</errortext> <errordetails>trovati più contatti... Stime lavori Fase Aggiunte / modifiche / eliminazioni Tempistica gg Sviluppo Classabbonamenti Creazione metodo /loginsso 5 Classabbonamenti Implementazione risposta WS 1 Siti Istituzionali Creazione metodo registrazione utente? Siti Istituzionali Creazione metodo autenticazione? Siti Istituzionali Creazione metodo modifica password? Siti Istituzionali Creazione metodo modifica dati anagrafici? Siti Istituzionali Creazione metodo modifica indirizzo esistente? Siti Istituzionali Creazione metodo modifica numero di telefono? Test Classabbonamenti Creazione metodo /loginsso 3 Classabbonamenti Implementazione risposta WS 1 Siti Istituzionali Creazione metodo registrazione utente? Siti Istituzionali Creazione metodo autenticazione? Siti Istituzionali Creazione metodo modifica password? Siti Istituzionali Creazione metodo modifica dati anagrafici? Siti Istituzionali Creazione metodo modifica indirizzo esistente? Siti Istituzionali Creazione metodo modifica numero di telefono? Rev. 1.9 Aggiornato il 29/01/2014 Pagina 15 di 15