View
2
Download
0
Category
Preview:
Citation preview
Web servisi u sustavu e-Račun
Domagoj Tomljenović
male stvari puno znače
Domagoj TomljenovićSektor informatike
FINANCIJSKA AGENCIJA - FINA
• državno vlasništvo → tržišni principi poslovanja,
• razgranata mreža poslovnica:
> 180 lokacija,
> 3000 zaposlenih,
• primjer uspješnog restrukturiranja tvrtke,
male stvari puno znače 2
• tradicionalni poslovi platnog prometa se nakon reforme platnog prometa komercijaliziraju uz ponudu dodatnih servisa za poslovne subjekte,
• vodeća hrvatska tvrtka u infrastrukturnim servisima za financijsku industriju i državu, elektroničkom poslovanju, podrška državnim tijelima i javnoj upravi,
• razvoj umrežene uprave i servisa za građane i poslovne subjekte.
• FileNet ECM• Adobe Forms• Lombardi BPM• go!Jframework (Google Web Toolkit)• Web Services (Apache Rampart), JMS, EJB…
Tehnologije koje koristimo:Tehnologije koje koristimo:
male stvari puno znače 3
• Connect:Direct
• Oracle SQL Server• DB2
Sadržaj
1. O e-Računu
2. Projekt e-Račun
male stvari puno znače 4
2. Projekt e-Račun - e-Račun za poslovne subjekte
- e-Račun za građane
e-Račun i e-Uplatnica
e-Račun je strukturirani oblik računa u elektroničkom obliku koji je usklađen sa preporučenim standardima te e-Invoice direktivom, u smislu da je zajamčen integritet sadržaja elektroničkog računa i da se nedvojbeno može zagarantirati njegova autentičnost kao i autentičnost njegova pošiljatelja
male stvari puno znače 5
e-Uplatnica je podskup podataka preuzet sa e-Računa koji predstavlja elektronički nalog za plaćanje, a odgovara HUB standardu naziva e-HUB. e-Uplatnica služi isključivo u svrhu bržeg i jednostavnijeg plaćanja elektroničkim kanalom, odnosno, Internet bankarstvom.
Kompatibilno sa zakonskim zahtjevima
Zajamčena Zajamčena Zajamčena
Zašto pouzdan elektronički proces?Zašto pouzdan elektronički proces?Zašto pouzdan elektronički proces?Zašto pouzdan elektronički proces?
male stvari puno znače 6
Zajamčena autentikacija
Zaštićen integritet
Zajamčena potvrda o isporuci
Zajamčena verifikacija
potpisa
Zajamčena uporaba
vremenskog žiga
eeee----Račun: poslovni procesRačun: poslovni procesRačun: poslovni procesRačun: poslovni procesNASLOV
Potpisivanje
Kreiranje računa
Notifikacija
Preuzimanje
Slanje u sustav
Provjera i razvrstavanje
Preuzimanje
Likvidatura
Plaćanje
Povratna informacija
male stvari puno znače 7
Tvrtka ATvrtka A
e-Račun
Banka
Tvrtka BTvrtka B
• Kako korisnik – poslovni subjekt koristi servis?
male stvari puno znače 8
male stvari puno znače 9
male stvari puno znače 10
male stvari puno znače 11
Finae-Račun Primatelj
Pošiljatelj
Rad s datotekamaRad s datotekamaRad s datotekamaRad s datotekamaRad s datotekamaRad s datotekamaRad s datotekamaRad s datotekama
male stvari puno znače 12
male stvari puno znače 13
Web servisiWeb servisi
male stvari puno znače 14
WS - SecurityWS - SecurityAutentikacijaAutentikacijaAutentikacijaAutentikacija –––– Potpis Potpis Potpis Potpis –––– EnkripcijaEnkripcijaEnkripcijaEnkripcija
PitanjePitanjePitanjePitanje:• koga autoriziram ?• da li je poruka mijenjana ?• da li ju je poslao onaj za kojega mislim da ju je poslao ?• kako da nešto sakrijem ?
KakoKakoKakoKako:• potpisati = integritet
AutentikacijaAutentikacijaAutentikacijaAutentikacija –––– Potpis Potpis Potpis Potpis –––– EnkripcijaEnkripcijaEnkripcijaEnkripcijaPitanjePitanjePitanjePitanje:
• koga autoriziram ?• da li je poruka mijenjana ?• da li ju je poslao onaj za kojega mislim da ju je poslao ?• kako da nešto sakrijem ?
KakoKakoKakoKako:• potpisati = integritet
male stvari puno znače 15
• potpisati = integritet• enkriptirati = povjerljivost• dodati security tokene = potvrdi pošiljateljev identitet
OmogućiOmogućiOmogućiOmogući:• razne formate potpisivanja• razne algoritme enkripcije• „prelazak” preko više trust domena
Postavi u Postavi u Postavi u Postavi u :• zaglavlje poruke
• potpisati = integritet• enkriptirati = povjerljivost• dodati security tokene = potvrdi pošiljateljev identitet
OmogućiOmogućiOmogućiOmogući:• razne formate potpisivanja• razne algoritme enkripcije• „prelazak” preko više trust domena
Postavi u Postavi u Postavi u Postavi u :• zaglavlje poruke
WSS mehanizmi nisu WSS mehanizmi nisu WSS mehanizmi nisu WSS mehanizmi nisu dovoljnidovoljnidovoljnidovoljni:• povezivanje sa Web service ekstenzijama i drugim protokolima• ništa ne garantira, ovisi o implementatoru• ne definira key management, trust bootstrapping, federation…• u sprezi sa ostalim standardima i specifikacijama
Sa drugim specifikacijamaSa drugim specifikacijamaSa drugim specifikacijamaSa drugim specifikacijama:• podloga za ugnježđenje ostalih mehanizama
WSS mehanizmi nisu WSS mehanizmi nisu WSS mehanizmi nisu WSS mehanizmi nisu dovoljnidovoljnidovoljnidovoljni:• povezivanje sa Web service ekstenzijama i drugim protokolima• ništa ne garantira, ovisi o implementatoru• ne definira key management, trust bootstrapping, federation…• u sprezi sa ostalim standardima i specifikacijama
Sa drugim specifikacijamaSa drugim specifikacijamaSa drugim specifikacijamaSa drugim specifikacijama:• podloga za ugnježđenje ostalih mehanizama
WS - SecurityWS - Security
male stvari puno znače 16
• podloga za ugnježđenje ostalih mehanizama• „Transport-neutral”
Također definira mehanizmeTakođer definira mehanizmeTakođer definira mehanizmeTakođer definira mehanizme:• UsernameToken• BinarySecurityToken
• podloga za ugnježđenje ostalih mehanizama• „Transport-neutral”
Također definira mehanizmeTakođer definira mehanizmeTakođer definira mehanizmeTakođer definira mehanizme:• UsernameToken• BinarySecurityToken
WS - PolicyWS - PolicyZaštoZaštoZaštoZašto:
• da bi web services aplikacije mogle specificirati policy
Što specificiraŠto specificiraŠto specificiraŠto specificira:• XML-based strukturu• elemente policy gramatike
PolicyPolicyPolicyPolicy: • skup informacija izražen kroz policy assertione
Policy Policy Policy Policy AssertionAssertionAssertionAssertion: • pojedinačna preferenca, zahtjev, svojstvo, karakteristika itd.
ZaštoZaštoZaštoZašto: • da bi web services aplikacije mogle specificirati policy
Što specificiraŠto specificiraŠto specificiraŠto specificira:• XML-based strukturu• elemente policy gramatike
PolicyPolicyPolicyPolicy: • skup informacija izražen kroz policy assertione
Policy Policy Policy Policy AssertionAssertionAssertionAssertion: • pojedinačna preferenca, zahtjev, svojstvo, karakteristika itd.
male stvari puno znače 17
• pojedinačna preferenca, zahtjev, svojstvo, karakteristika itd.
Policy Policy Policy Policy ExpressionExpressionExpressionExpression:• Skup jednog ili više policy assertiona
Policy Policy Policy Policy SubjectSubjectSubjectSubject: • Entitet na koji policy expression primijenjen
Policy Policy Policy Policy AttachmentAttachmentAttachmentAttachment: • policy expression poveži sa subjektom
• pojedinačna preferenca, zahtjev, svojstvo, karakteristika itd.
Policy Policy Policy Policy ExpressionExpressionExpressionExpression:• Skup jednog ili više policy assertiona
Policy Policy Policy Policy SubjectSubjectSubjectSubject: • Entitet na koji policy expression primijenjen
Policy Policy Policy Policy AttachmentAttachmentAttachmentAttachment: • policy expression poveži sa subjektom
Policy Policy Policy Policy ReferenceReferenceReferenceReference:• mehanizam za dijeljenje policy assertiona kroz više policy izraza
Dva tipa Dva tipa Dva tipa Dva tipa assertionaassertionaassertionaassertiona:• zahtjevi i mogućnosti, izražene kod prijenosa• dodatne informacije, nije izraženo kod prijenosa
Policy Policy Policy Policy operatori:operatori:operatori:operatori:• kombiniraju assertione i ugnježđuju operatore:
Policy Policy Policy Policy ReferenceReferenceReferenceReference:• mehanizam za dijeljenje policy assertiona kroz više policy izraza
Dva tipa Dva tipa Dva tipa Dva tipa assertionaassertionaassertionaassertiona:• zahtjevi i mogućnosti, izražene kod prijenosa• dodatne informacije, nije izraženo kod prijenosa
Policy Policy Policy Policy operatori:operatori:operatori:operatori:• kombiniraju assertione i ugnježđuju operatore:
WS - PolicyWS - Policy
male stvari puno znače 18
• kombiniraju assertione i ugnježđuju operatore:wsp:Allwsp:Allwsp:Allwsp:All = svi zadovoljeniwsp:ExactlyOnewsp:ExactlyOnewsp:ExactlyOnewsp:ExactlyOne = = = = točno jedan zadovoljenwsp:OneOrMorewsp:OneOrMorewsp:OneOrMorewsp:OneOrMore ==== najmanje jedan zadovoljenwsp:Policywsp:Policywsp:Policywsp:Policy = wsp:Allwsp:Allwsp:Allwsp:All
WSWSWSWS----PolicyAttachmentPolicyAttachmentPolicyAttachmentPolicyAttachment:• definira mehanizme za povezivanje izraza i subjekata• i to za XML elemente, WSDL definicije, UDDI entries
• kombiniraju assertione i ugnježđuju operatore:wsp:Allwsp:Allwsp:Allwsp:All = svi zadovoljeniwsp:ExactlyOnewsp:ExactlyOnewsp:ExactlyOnewsp:ExactlyOne = = = = točno jedan zadovoljenwsp:OneOrMorewsp:OneOrMorewsp:OneOrMorewsp:OneOrMore ==== najmanje jedan zadovoljenwsp:Policywsp:Policywsp:Policywsp:Policy = wsp:Allwsp:Allwsp:Allwsp:All
WSWSWSWS----PolicyAttachmentPolicyAttachmentPolicyAttachmentPolicyAttachment:• definira mehanizme za povezivanje izraza i subjekata• i to za XML elemente, WSDL definicije, UDDI entries
Pošiljatelj Primatelj
Primateljev
enkripcijski
ključ
JavniPrimateljev
enkripcijski
ključ
Privatni
Pošiljateljev
potpisni
ključ
PrivatniPošiljateljev
potpisni
ključ
Javni
Enkripcija
Potpis
male stvari puno znače 19
Pošiljateljev
enkripcijski
ključ
Pošiljateljev
enkripcijski
ključ
Privatni
Primateljev
potpisni
ključ
Primateljev
potpisni
ključ
Javni
Javni Privatni
Enkripcija
Potpis
Axis2 moduli i handleriAxis2 moduli i handleri
male stvari puno znače 20
Potpisivanje i verifikacija porukePotpisivanje i verifikacija poruke
male stvari puno znače 21
Apache NeethiApache Neethi• framework koji olakšava korištenje WS policya• posebno prilagođen Apache Web servisima• PolicyBuilder
• kreiraPolicy objekt iz:• InputStream• DOM Element• XMLStreamReader• OMElement...
• framework koji olakšava korištenje WS policya• posebno prilagođen Apache Web servisima• PolicyBuilder
• kreiraPolicy objekt iz:• InputStream• DOM Element• XMLStreamReader• OMElement...
male stvari puno znače 22
• OMElement...• PolicyEngine
• statičke metode za kreiranje Policy objekata• PolicyBuilder wrapper
• PolicyReference• wrapper za PolicyReferences
• OMElement...• PolicyEngine
• statičke metode za kreiranje Policy objekata• PolicyBuilder wrapper
• PolicyReference• wrapper za PolicyReferences
B2B web servisiB2B web servisi
male stvari puno znače 23
Primjer porukePrimjer poruke
male stvari puno znače 24
Primjer sinkrone odgovorne porukePrimjer sinkrone odgovorne poruke
male stvari puno znače 25
<wsp:Policy wsu:Id="SignOnly" xmlns:wsu="http://docs.oasis...wssecurity-utility-1.0.xsd" xmlns:wsp="...policy"><wsp:ExactlyOne><wsp:All><sp:AsymmetricBinding xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">…<sp:RecipientToken><wsp:Policy><sp:X509Token sp:IncludeToken="http://docs.oa.../IncludeToken/AlwaysToInitiator"/></wsp:Policy>
…<sp:AlgorithmSuite><wsp:Policy>
<sp:TripleDesRsa15/>…
Primjer policy konfiguracijePrimjer policy konfiguracije
male stvari puno znače 26
<sp:TripleDesRsa15/>…<sp:Layout><wsp:Policy><sp:Strict/>
…<sp:IncludeTimestamp/><sp:OnlySignEntireHeadersAndBody/>
…<sp:MustSupportRefKeyIdentifier/>
…</sp:Wss11>
<sp:SignedParts xmlns:sp="http://doc..."><sp:Body/>
Primjer Rampart konfiguracije u policyuPrimjer Rampart konfiguracije u policyu
<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy"><ramp:user>aplikacijski_certifikat</ramp:user><ramp:passwordCallbackClass>fina…PWHandler</ramp:passwordCallbackClass><ramp:signatureCrypto>
<ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin"><ramp:property name="org…keystore.type">JKS</ramp:property><ramp:property name="org...crypto.merlin.file">TestServis.jks</ramp:property>
male stvari puno znače 27
<ramp:property name="org...crypto.merlin.file">TestServis.jks</ramp:property><ramp:property name="org....keystore.password">Inicijalni1</ramp:property>
</ramp:crypto></ramp:signatureCrypto>
</ramp:RampartConfig></wsp:All>
Tvrtka A
Tvrtka B
e-Račun
e-Arhiva
eeee----Račun za građaneRačun za građaneRačun za građaneRačun za građaneeeee----Račun za građaneRačun za građaneRačun za građaneRačun za građane
male stvari puno znače 28
Banka
Internet bankarstvo
e-Račun
male stvari puno znače 29
HUBHUB
male stvari puno znače 30
Sustav B2C sa vezom na B2BSustav B2C sa vezom na B2B
male stvari puno znače 31
• timer framework
• konfiguracija u deployment descriptoru
• pokreće TimerListenerTimerListenerTimerListenerTimerListener
• dohvat kroz JNDI lookup
• timer framework
• konfiguracija u deployment descriptoru
• pokreće TimerListenerTimerListenerTimerListenerTimerListener
• dohvat kroz JNDI lookup
Timer managerTimer manager
male stvari puno znače 32
• dohvat kroz JNDI lookup
• poziv JNDI vraća novu instancu managera
• thread safe
• suspend i stop
• dohvat kroz JNDI lookup
• poziv JNDI vraća novu instancu managera
• thread safe
• suspend i stop
• više jedinica rada paralelno• „container-managed” alternativa u odnosu na java.lang.Thread• definiraju ih system administratori na serveru• instanca se dohvaća preko JNDI-a• „managed environment” podržava više WorkManager instanci• konfigurirani kroz deployment decriptore (resource-refs)• u aplikaciji instanca WorkManagera vraća WorkItem
• WorkWorkWorkWork –––– jedna asinkrona jedinica rada, pokretanje: određeno vrijeme ili interval
• više jedinica rada paralelno• „container-managed” alternativa u odnosu na java.lang.Thread• definiraju ih system administratori na serveru• instanca se dohvaća preko JNDI-a• „managed environment” podržava više WorkManager instanci• konfigurirani kroz deployment decriptore (resource-refs)• u aplikaciji instanca WorkManagera vraća WorkItem
• WorkWorkWorkWork –––– jedna asinkrona jedinica rada, pokretanje: određeno vrijeme ili interval
Work managerWork manager
male stvari puno znače 33
• WorkItemWorkItemWorkItemWorkItem –––– uvid u status Work instance• WorkListenerWorkListenerWorkListenerWorkListener ---- callback, komunikacija između WorkManagera i asinkrone jedinice• WorkEventWorkEventWorkEventWorkEvent –––– događaj prema WorkListeneru kako se Work izvršava u WorkManageru• RemoteWorkItemRemoteWorkItemRemoteWorkItemRemoteWorkItem ---- proširenje WorkItem interfacea, jedinice rada u clusteru
• WorkItemWorkItemWorkItemWorkItem –––– uvid u status Work instance• WorkListenerWorkListenerWorkListenerWorkListener ---- callback, komunikacija između WorkManagera i asinkrone jedinice• WorkEventWorkEventWorkEventWorkEvent –––– događaj prema WorkListeneru kako se Work izvršava u WorkManageru• RemoteWorkItemRemoteWorkItemRemoteWorkItemRemoteWorkItem ---- proširenje WorkItem interfacea, jedinice rada u clusteru
IntegrationFacade (B2C)IntegrationFacade (B2C)
male stvari puno znače 34
BaseMessageIntegration (B2C)BaseMessageIntegration (B2C)
male stvari puno znače 35
<module ref="eracun" /><module ref="rampart" /><schema schemaNamespace="http://fina.hr/eracun/b2c/ws/gw/v0.1" /><!-- we are using original WSDL document (FinaGatewayBankWebService.wsdl) --><parameter name="useOriginalwsdl">true</parameter><!-- this web service is document/literal --><parameter name="doclitBare">true</parameter>
B2C policyB2C policy
male stvari puno znače 36
<parameter name="doclitBare">true</parameter><!-- policy that is applied to incoming (request) messages only --><message label="In">
<wsp:Policy><wsp:ExactlyOne>
…
<!-- client's certificate from SSL handshake must have specified roles to be allowed service invocation --><fsp:CertificateAuthentication>
<wsp:Policy><fsp:RequiredRoles>REGISTRACIJA</fsp:RequiredRoles>
…<!-- must be able to process Key Identifier token references, WS-Security 1.0 spec--><sp:MustSupportRefKeyIdentifier /><!-- must be able to process Issuer and Serial Number token references, as specified
B2C policyB2C policy
male stvari puno znače 37
<!-- must be able to process Issuer and Serial Number token references, as specifiedin the WS-Security 1.0 spec-->
<sp:MustSupportRefIssuerSerial /><!-- client's certificate from signature must have specified roles to be allowed service invocation --><fsp:SigningCertificateAuthentication>
<wsp:Policy><fsp:RequiredRoles>REGISTRACIJA</fsp:RequiredRoles>
…
<ramp:property name="org…keystore.alias.database">sql.soap.rampart.signature.keystore.alias</ramp…… ="org…keystore.password.database">sql.soap.rampart.signature.keystore.password…="org...keystore.provider.database">sql.soap.rampart.signature.keystore.provider……
B2C policyB2C policy
male stvari puno znače 38
="org...cert.provider.database">sql.soap.rampart.signature.certpath.provider……="org…crypto.merlin.load.cacerts">false...="org...merlin.cert.provider">IBMJCE</ramp:property>
Custom handler validation i exceptionCustom handler validation i exception
male stvari puno znače 39
Problemi i iskustvaProblemi i iskustva
Assertion builder:Assertion builder:
Deploy i engage:Deploy i engage:
male stvari puno znače 40
AAR <-> expanded:AAR <-> expanded:
Rampart ignores:Rampart ignores:
Problemi i iskustvaProblemi i iskustva
male stvari puno znače 41
Fault handler:Fault handler:
Tvrtka A
Banka
Tvrtka B
Datoteka - Izlazni računi
male stvari puno znače 42
Banka
Tvrtka B
Tvrtka C
Datoteka - Ulazni računi
HVALA NA PAŽNJIHVALA NA PAŽNJIHVALA NA PAŽNJIHVALA NA PAŽNJI
male stvari puno znače
Recommended