Post on 24-May-2015
DHO Technische Architectuur
Ricky Nuyens – EDS-Telindus
p. 2
AHOVOS
p.2
AgendaAgenda
• DHO Concept en Objectieven
• Technische Architectuur
• Structuur van de berichten
• Gegarandeerde aflevering
• CRUD Patronen
• Proof of Concept – bevindingen
• Volgende stappen
DHO Concept en ObjectievenDHO Concept en Objectieven
p. 4
AHOVOS
DHO ConceptDHO Concept
• Lees web services worden synchroon opgeroepen
• Aanmaak, wijzig en verwijder web services worden uitgesteld synchroon opgeroepen
• Instelling beheert data, O&V leest data
Biedt Webservice aanRoept Webservice op
Unix Mainframe
Instellingen
Q
WS
internet
Onderwijs & Vorming
PEP
B
3270
p. 5
AHOVOS
DHO ObjectievenDHO Objectieven
• Maximale Gegevenskwaliteit :
– De gegevens die O&V aggregeert van alle instellingen zijn correct, volledig en actueel.
• Gegarandeerde Confidentialiteit :
– De confidentialiteit van de gegevensuitwisseling tussen de instellingen en het beleidsdomein O&V moet gegarandeerd worden
• Authenticiteit, integriteit en niet weerlegbaarheid :
– De oplossing garandeert dat de data aangereikt vanuit de instelling niet kan gewijzigd worden. Verder moet er op een onweerlegbare manier kunnen aangetoond worden dat data aangeleverd door een instelling, enkel van die instelling afkomstig kan zijn.
• Losse koppeling :
– De dagdagelijkse werking van de instelling mag niet verhinderd worden door de oplossing. Er wordt gestreefd naar een zo los mogelijke koppeling tussen de systemen van de instelling en die van O&V
• Interoperabiliteit :
– De oplossing is (zoveel mogelijk) gebaseerd op industrie standaarden om een maximale interoperabiliteit met de instellingen te kunnen garanderen.
Technische ArchitectuurTechnische Architectuur
p. 7
AHOVOS
Technische ArchitectuurTechnische Architectuur
Biedt Webservice aanRoept Webservice op
Instellingen Onderwijs & Vorming
Unix Mainframe
Q
WS
internet
SSL
Certificaat voor digitale
handtekening
CertCert
PEP
Cert
SSL client certificaat
Web serviceConsumer
SSL server certificaat
External Web service Provider met WS Security
Internal Web service Consumer
Internal Web service Provider
HTTPS
SOAP
3270
JavaProxy
Web ServiceImplementatie
Toepassing
Two-factorauthentication
p. 8
AHOVOS
Sterke Authenticatie binnen Toepassing InstellingSterke Authenticatie binnen Toepassing Instelling
• Web service Consumer zit ingebed in een toepassing binnen de instelling
• Gebruik van web services moet beperkt blijven tot geautoriseerde medewerkers omdat het privacy gevoelige gegevens betreft two-factor authentication
• Elk bericht dat de instelling verstuurt bevat de correcte identificatie (RRN of Bis of …) van de betrokken eindgebruiker
Instellingen Onderwijs & Vorming
Unix Mainframe
Q
WS
internet
PEP
Web serviceConsumer
3270
Toepassing
BevatRRN of Bis
Two-factorauthentication
p. 9
AHOVOS
Connectie AuthenticatieConnectie Authenticatie
• Publieke web services maar enkel instellingen mogen deze aanroepen
• Implementatie op basis van X.509 SSL client-certificate authenticatie
• 1 SSL certificaat per instelling (of per ICT provider)
Instellingen Onderwijs & Vorming
Unix Mainframe
Q
WS
internet
SSLCert
Cert
PEP
SSL client certificaat
SSL server certificaat
3270
p. 10
AHOVOS
Digitale HandtekeningDigitale Handtekening
• Elke instelling mag enkel toegang hebben tot eigen gegevens
• Implementatie op basis van X.509 Certificaat voor digitale handtekening
• 1 X.509 certificaat per toepassing binnen instelling
• Elk bericht bevat het instellingsnummer, een identificatie van de toepassing
• Elk bericht wordt voorzien van een digitale handtekening
Instellingen Onderwijs & Vorming
Unix Mainframe
Q
WS
internet
SSLCert
Cert
PEP
Cert
3270
Bevat instellingsnummer en
toepassingsidentificatie
Certificaat voor digitale
handtekening
Toepassing
Bevat digitalehandtekening
p. 11
AHOVOS
Policy Enforcement Point (PEP)Policy Enforcement Point (PEP)
• Interne web services worden beschikbaar gemaakt via een beveiligde toegangspoort die de toegangscontrole beheert : PEP
• Authenticatie en autorisatie stappen :
– SSL Client Certificate
– Digitale handtekening : instellingsnummer EN toepassingsidentificatie
Instellingen Onderwijs & Vorming
Unix Mainframe
Q
WS
internet
SSLCert
Cert
PEP
Cert
External Web service Provider met WS Security
Internal Web service Provider
HTTPS
SOAP
3270
JavaProxy
Web ServiceImplementatie
Internal Web service Consumer
p. 12
AHOVOS
BerichtenBerichten
• Robuust– Het veranderen van een web service vergt heel wat inspanning. Daarom wordt
verwacht dat de berichten minstens even robuust zullen zijn als de EDISON record layouts
• Instelling agnostisch– Er worden geen berichten gespecificeerd per instelling of voor een bepaalde set
van instellingen. Alle web services kunnen door alle instellingen aangeroepen worden
• Toepassing agnostisch– In de berichten wordt niet aangegeven voor welke toepassing ze bestemd zijn.
• Gestandaardiseerd– SOAP 1.1
– Uniforme structuur
Instellingen Onderwijs & Vorming
Unix Mainframe
Q
WS
internet
SSLCert
Cert
PEP
Cert
SOAP
3270
Repliek
Verzoek
p. 13
AHOVOS
Gebeurtenis georiënteerd, atomair en bulkGebeurtenis georiënteerd, atomair en bulk
• Web services hebben zowel ondersteunende (lees) functie als “data vergarende” functie.
• Bij doorgeven van veel gegevens is bulk efficiënter (digitale handtekening, netwerk, …) structurele oplossing in structuur van de berichten
• Bulk is niet hetzelfde als “’s nachts in batch”
• Correcte, volledige en actuele data aangereikt door de instellingen is noodzakelijk voor een correcte stand van het leerkrediet
• Gebeurtenis georiënteerd is DÉ manier
Instellingen Onderwijs & Vorming
Unix Mainframe
Q
WS
internet
SSLCert
Cert
PEP
Cert
SOAP
3270
Verzoek
Vraag 1
Vraag 2
Repliek
Antwoord 1
Antwoord 2
Structuur van de berichtenStructuur van de berichten
p. 15
AHOVOS
SOAP 1.1 StructuurSOAP 1.1 Structuur
Instellingen Onderwijs & Vorming
Unix Mainframe
Q
WS
internet
SSLCert
Cert
PEP
Cert
SOAP
3270
SOAP Envelope
SOAP Header• Digitale Handtekening (verzoek)
SOAP Body•Instellingsnummer•Identificatie van de toepassing •Gebruikers identificatie•Bericht referte •Vraag/Antwoord referte
Any
p. 16
AHOVOS
SOAP HeaderSOAP Header
• WS-Security 1.0
• Boodschap-encryptie is niet noodzakelijk wegens connectie-encryptie (SSL)
• De digitale handtekening omvat de hele SOAP body.
• Het certificaat gebruikt om de tekenen wordt meegegeven in elke boodschap, met formaat “oasis-200401-wss-x509-token-profile-1.0#X509v3”
• De canonicalization method die gebruikt moet worden is Exclusive Canonicalization “http://www.w3.org/2001/10/xml-exc-c14n#”.
– Dit is de standaard methode binnen WS-Security. De originele methode zonder “exclusive” bleek validatieproblemen te veroorzaken in situaties waarbij gehandtekende XML documenten bijgesloten werden in andere XML documenten.
• De digest en handtekening protocols zijn SHA1 en RSA
p. 17
AHOVOS
SOAP Body : Verzoek of Repliek / SOAP Body : Verzoek of Repliek / OperatieMetaDataOperatieMetaData
• Het OperatieMetaData element bevat de Versie en de Naam van de operatie
• De inhoud van deze elementen staat vast door de beschrijving van het XML Schema en kan NIET veranderd worden
• Zowel in Verzoek als Repliek
• Operationele Ondersteuning
p. 18
AHOVOS
SOAP Body : VerzoekSOAP Body : Verzoek
• Alle “verzoeken” volgen dezelfde structuur
– OperatieMetaData: Informatie over de operatie (dezelfde structuur voor alle operaties)
– Context: Informatie voor autorisatiedoeleinden (dezelfde structuur voor alle operaties)
– Vragen: Informatie over de invoer van de operatie (specifieke structuur voor iedere operatie)
Bevat de invoer van de operatie
Context informatie omtrent de operatie: Wie, waar, wanneer?
Informatie over de operatie: Versie & Naam
p. 19
AHOVOS
SOAP Body : Verzoek / Context (Afzender)SOAP Body : Verzoek / Context (Afzender)
Tijdstip waarop bericht werd aangemaakt
Unieke identificatie van het verzoek bericht
Instellingsnummer
Verplicht voor de instelling
Security op basis van rollen (Optioneel)
Naam van de gebruiker
Naam van de organisatie-eenheid
(Optioneel) INSZ-nummer van de gebruiker
Type van het verzoek bericht = VRAAG
p. 20
AHOVOS
SOAP Body : Verzoek / Context (Ontvanger)SOAP Body : Verzoek / Context (Ontvanger)
Optionele elementen voor
verzoek
Vb: dho.vlaanderen.be
Optioneel voor de instelling
p. 21
AHOVOS
SOAP Body : Verzoek / VragenSOAP Body : Verzoek / Vragen
• Referte is verplicht en uniek voor een instelling
• VraagInhoud is specifiek voor elke operatie
• Meerdere vragen binnen een verzoek mogelijk, maar gelimiteerd in aantal (1..99)
p. 22
AHOVOS
SOAP Body : RepliekSOAP Body : Repliek
• Alle “replieken” volgen dezelfde structuur– OperatieMetaData: Informatie over de operatie (dezelfde structuur voor alle
operaties)
– RepliekContext: Informatie omtrent de afzender van het verzoek en de ontvanger van het verzoek (= degene die het verzoek beantwoordt)
– Antwoorden: Informatie omtrent het antwoord op de gestelde vraag (specifieke structuur voor iedere operatie)
– Uitzonderingen: Voor fouten op bericht-niveau
Bevat de uitvoer van de operatie
Context informatie omtrent de operatie: Wie, waar, wanneer?
Informatie over de operatie: Versie & Naam
Boodschap tgv fouten op bericht niveau
p. 23
AHOVOS
SOAP Body : Repliek / Context (Afzender)SOAP Body : Repliek / Context (Afzender)
Tijdstip waarop bericht werd aangemaakt
Vb: dho.vlaanderen.be
Identificatie van de toepassing binnen een
DHO
Security op basis van rollen (optioneel)
Naam van de gebruiker
Naam van de organisatie-eenheid
(optioneel)
INSZ-nummer van de gebruiker (optioneel)
Unieke identificatie van het repliek bericht
Type van het repliek bericht = ANTWOORD
p. 24
AHOVOS
SOAP Body : Repliek / Context (Ontvanger)SOAP Body : Repliek / Context (Ontvanger)
De context informatie van de afzender van het verzoek bericht wordt hierin
gekopieerd (hierbij ook de referte van het verzoek bericht)
p. 25
AHOVOS
SOAP Body : Repliek / AntwoordenSOAP Body : Repliek / Antwoorden
• Referte komt overeen met de Referte van de overeenstemmende Vraag
• AntwoordInhoud is specifiek voor elke operatie
• Als er een fout wordt opgemerkt in de vraag, wordt er minstens 1 uitzondering teruggestuurd
p. 26
AHOVOS
SOAP Body : Repliek / UitzonderingenSOAP Body : Repliek / Uitzonderingen
• Identificatie: Unieke identificatie van de uitzondering
• Type: 3 uitzonderingstypes (Fout, Waarschuwing & Informatie)
• Tijdstip: wanneer de uitzondering zich heeft voorgedaan
• Diagnose: beschrijving van de uitzondering (boodschap)
• Omstandigheid: bijkomende informatie omtrent de uitzondering
p. 27
AHOVOS
SOAP FaultSOAP Fault
• Enkel wanneer het bericht niet “applicatief verwerkt” wordt– Foute XML structuur, niet conform het schema
– Foute Digitale Handtekening
– Encoding
– Version Mismatch
• Een SOAP fault bevat de elementen – faultcode voor het type fout,
– faultstring met een beschrijving van de fout,
– faultactor voor de bron van de fout
– detail met de detailuitleg van de foutmelding.
Unix Mainframe
Instellingen
Q
WS
internet
Onderwijs & Vorming
PEP
3270
SOAP Fault SOAP Fault
Uitzondering
Uitzondering
Gegarandeerde AfleveringGegarandeerde Aflevering
p. 29
AHOVOS
Gegarandeerde AfleveringGegarandeerde Aflevering
• Referte : unieke identificatie van berichten, vragen en antwoorden
– Vraag / Antwoord : De afzender dient voor elke vraag een unieke referte te versturen. Deze wordt bij het antwoord terug gegeven opdat het mogelijk is vraag en antwoord te correleren.
• HTTP(S) is geen gegarandeerd protocol dus …
– Het bericht werd verwerkt, de gevraagde acties werden uitgevoerd, maar er loopt iets mis bij het versturen van het antwoord
– Het bericht is niet correct aangekomen bij de ontvanger en werd niet verwerkt
… voor de afzender is er geen zekerheid of de berichten werden verwerkt
– Vraagrefertes die bij de originele vragen werden gebruikt, MOETEN opnieuw als vraagreferte opgegeven worden
– Het is niet noodzakelijk om de vragen in een identiek bericht te sturen
p. 30
AHOVOS
Nie
t G
espl
itst
Gegarandeerde afleveringGegarandeerde aflevering
Verzoek V1Vraag a
Vraag bRepliek R1 op V1
Vraag a
Vraag b
Verzoek V1Vraag a
Vraag bRepliek R2 op V1
Vraag a
Vraag b
Verzoek V1Vraag a
Vraag bRepliek R1 op V1
Vraag a
Vraag b
Verzoek V2Vraag a
Repliek R2 op V2Vraag a
Verzoek V3Vraag b
Repliek R3 op V3Vraag b
Verzoek V1Vraag a
Vraag b
Verzoek V1Vraag a
Vraag bRepliek R2 op V1
Vraag a
Vraag b
Verzoek V2Vraag a
Repliek R2 op V2Vraag a
Verzoek V3Vraag b
Repliek R3 op V3Vraag b
Verzoek V1Vraag a
Vraag b
Ges
plits
t
Verwerkt Niet Verwerkt
CRUD PatronenCRUD Patronen
p. 32
AHOVOS
CRUD TerminologieCRUD Terminologie
• Object: Een object bestaat steeds uit volgende elementen.
– ObjectID: Deze referentie is uniek voor elk object en wordt aangemaakt door DHO.
– Objectelementen: Dit zijn de elementen die een bepaald object beschrijven.
– Referenties: Referenties die naar andere objecten verwijzen
p. 33
AHOVOS
CRUD Patronen : AanmaakCRUD Patronen : Aanmaak
• Het aanmaken van een object bij DHO vereist steeds het versturen van het aan te maken object:
– Verplicht op te nemen: Objectelementen, Referenties
– Mag niet opgenomen worden: ObjectID
• Het antwoord bevat de referentie (ObjectID) die werd aangemaakt voor het object.
• De instelling dient deze referentie te bewaren zodat bij latere vragen in verband met dit object deze referentie kunnen gebruiken.
• Indien de aanmaak niet kon verwerkt worden, wordt dit aangegeven door een Uitzondering en zal er geen Inhoudelement zijn.
VRAAGReferte
Inhoud
Object
1
1
ANTWOORDReferte
Inhoud
ObjectID
1
0..1
Uitzonderingen0..1
Uitzondering1..*
1
1
p. 34
AHOVOS
CRUD Patronen : RaadpleegCRUD Patronen : Raadpleeg
VRAAGReferte
Inhoud
ObjectID
1
1
ANTWOORDReferte
Inhoud
Object
1
0..1
Uitzonderingen0..1
Uitzondering1..*
1
1
• Als een instelling een object, dat eerder werd aangemaakt, wil raadplegen, dient het de door DHO aangemaakte referentie (ObjectID) te versturen via het vraagelement.
• DHO stuurt de volledige inhoud van het object via het antwoord terug.
• Indien het object niet gevonden wordt, zal enkel een uitzondering worden meegegeven
p. 35
AHOVOS
CRUD Patronen : WijzigCRUD Patronen : Wijzig
VRAAGReferte
Inhoud
Object
1
1
ANTWOORD
Referte1
Uitzonderingen0..1
Uitzondering1..*
1
Inhoud
ObjectID
0..1
1
• Bijna identiek met Aanmaken, op ObjectID na
• Voor het wijzigen van een object dient men het object dat men wil wijzigen in zijn volledigheid te versturen: de ObjectID, alle objectelementen (zowel de gewijzigde als de niet gewijzigde) en alle referenties.
• In het antwoord staat het ObjectID, puur ter bevestiging van de succesvolle verwerking.
• Indien de wijziging niet kon verwerkt worden, wordt dit aangegeven door een Uitzondering en zal er geen Inhoudelement zijn.
p. 36
AHOVOS
CRUD Patronen : VerwijderCRUD Patronen : Verwijder
VRAAGReferte
Inhoud
ObjectID
1
1
ANTWOORDReferte1
Uitzonderingen0..1
Uitzondering1..*
1
Inhoud
ObjectID
0..1
1
• Voor het verwijderen dient enkel het ObjectID meegegeven te worden.
• Het antwoord bevat het ObjectID ter bevestiging van de verwerking terug.
• Ook hier zal bij een fout een uitzondering verstuurd worden in plaats van de inhoud.
Proof of ConceptProof of Concept
p. 38
AHOVOS
POC 2 : CA Gen OplossingPOC 2 : CA Gen Oplossing
Biedt Webservice aanRoept Webservice op
Instellingen Onderwijs & Vorming
Unix Mainframe
Q
WS
internet
SSLCert
Cert
PEP
Cert
SSL server certificaat
External Web service Provider met WS Security
Internal Web service Consumer
Internal Web service Provider
HTTPS
SOAP
3270
JavaProxy
Web ServiceImplementatie
• 32K Limiet
• Codepage 37/500
p. 39
AHOVOS
CP 500CP 500
p. 40
AHOVOS
page 40
DHO ArchitectuurDHO Architectuur
Mainframe
Biedt Webservice aanRoept Webservice op
Instellingen
Q
WS
internet
Onderwijs & Vorming
CertCert
PEP
Cert Studie Toelagen
Unix
VIP
BB
BT
Business Web ServiceTechnische Web Service
T
T
p. 41
AHOVOS
page 41
DHO Architectuur - ToekomstDHO Architectuur - Toekomst
Mainframe
Instellingen
Q
WS
internet
Onderwijs & Vorming
CertCert
Cert Studie Toelagen
Unix
VIP
Java
CA
PS
Biedt Webservice aanRoept Webservice op
BT
Business Web ServiceTechnische Web Service
B
B
T
T
T
WSM
Verdere stappenVerdere stappen
p. 43
AHOVOS
Verdere stappenVerdere stappen
• O&V en ET zijn verantwoordelijk voor de WSDL’s
– O&V en ET zorgen voor eerste voorstel : 15 Januari 2007
– Instellingen geven opmerkingen op voorstel
– WSDL’s gefinaliseerd : einde Januari 2008
• Procedure “sterke authenticatie” uitwerken
• Procedure “aanvraag certificaat (SSL of Digitale Handtekening) uitwerken
• SLA beheer
Vragen
DHO Technische Architectuur
Ricky Nuyens – EDS-Telindus