SlideShare a Scribd company logo
1 of 26
 i4M Lab
1
ΕΛΛΑΚ Μονάδες Αριστείας (ΜΑ. ΕΛΛΑΚ)
Σχολείο Ανοικτού Κώδικα ΕΛ / ΛΑΚ: e-Identity & e-Government
(Hλεκτρονική ταυτότητα στη Δημόσια Διοίκηση και Τοπική Αυτοδιοίκηση)
UAegean Center of Excellence (CoE) – Open Source Software in Transport
and Shipping
University of the Aegean
Dpt of Financial and Management Engineering & Dpt of Shipping and Transportation Services
Session: II
Stelios Lelis , i4M Lab, UAegean
Harris Papadakis, i4M Lab, UAegean
@ i-nformation M-anagement Lab
i4M Lab
 i4M Lab
Ταυτότητα Σεμιναρίου
 Το Πανεπιστήμιο Αιγαίου, στα πλαίσια του έργου Μονάδες Αριστείας
Ελεύθερου Λογισμικού / Λογισμικού Ανοικτού Κώδικα (ΕΛ/ΛΑΚ)1,
διοργανώνει Σχολείο Ανοικτού Κώδικα ΕΛ / ΛΑΚ με θέμα «e-Identity &
e-Government (Hλεκτρονική ταυτότητα στη Δημόσια Διοίκηση και
Τοπική Αυτοδιοίκηση)».
1 Το υποέργο Μονάδες Αριστείας ΕΛ/ΛΑΚ υλοποιείται στο πλαίσιο του έργου «Ηλεκτρονικές Υπηρεσίες για την Ανάπτυξη και
Διάδοση του Ανοιχτού Λογισμικού» του Προγράμματος «Ψηφιακή Σύγκλιση». Το έργο συγχρηματοδοτείται από το ΕΤΠΑ.
2
 i4M Lab
Σήμερα 03.11.2015
3
STORK2.0 Interconnection
Supporting Service Architecture,
Aplication Protocol Interfaces,
hands-on experienc
16:00 - 20:00 4 ώρες
Στέλιος Λέλης
Χαράλαμπος
Παπαδάκης
 i4M Lab
Online tools και άλλα
 Βασική αναφορά για την ύλη του μαθήματος
 https://openeclass.aegean.gr/courses/OPENSOURCE102/
 Επικοινωνία
 seminar e-mailing list: e-identity-iss-community@googlegroups.com
 Αποθετήριο κώδικα ISS
 https://github.com/adanar/SSS-2.0
 Ομάδα διδασκαλίας και συντονισμού
 Στέλιος Λέλης
 Χάρης Παπαδάκης
 Πέτρος Καβάσαλης
4
 i4M Lab
STORK2.0 INTERCONNECTION SUPPORTING
SERVICE ARCHITECTURE, APPLICATION
PROTOCOL INTERFACES, HANDS-ON
EXPERIENCE
Session II
5
 i4M Lab
Session II: agenda
 Security Assertion Markup Language (SAML)
 ISS Architecture - APIs
 ISS Hands-on Experience
6
 i4M Lab
Session II: agenda
 Security Assertion Markup Language (SAML)
 ISS Architecture - APIs
 ISS Hands-on Experience
7
 i4M Lab
SAML – Security Assertion Markup Language
 An XML-based, open-standard data format for
exchanging authentication and authorization data between parties.
 Parties (IdPs, SPs, PEPSes, etc.) exchange SAML documents that
contain SAML assertions
 A SAML assertion contains a packet of security information
“Assertion A was issued at time t by issuer R regarding
subject S provided conditions C are valid”
 On the basis of assertions, SPs make access control decisions – in other
words it can decide whether to provide access to the service to the user.
 SAML documents are signed and their origin cross-checked (circle of
trust)
8
 i4M Lab
SAML Assertion Statements
 Assertions contain three types of statements
 Authentication statements
o Assert to the SP that the principal did indeed authenticate with the identity provider
at a particular time using a particular method of authentication
 Attribute statements
o Asserts that a subject is associated with certain attributes.
 Authorization decision statements
o Asserts that a subject is permitted to perform action A on resource R given
evidence E (intentionally limited)
9
 i4M Lab
SAML Protocols
 A SAML protocol describes how certain SAML elements (including
assertions) are packaged within SAML request and response elements,
and gives the processing rules that SAML entities must follow when
producing or consuming these elements.
 SAML protocol is a simple request-response protocol
 Autehtncitation Query – Authentication Response
 Attribute Query – Attribute Response
 Authorization Decision Query - Authorization Decision Response
10
 i4M Lab
SAML Bindings
 A SAML binding is a mapping of a SAML protocol message onto
standard messaging formats and/or communications protocols.
 SAML SOAP Binding
o specifies how a SAML message is encapsulated in a SOAP envelope, which itself
is bound to an HTTP message
 Reverse SOAP (PAOS) Binding
 HTTP Redirect (GET) Binding
 HTTP POST Binding
o specifies how a SAML message is posted to the party, which itself is bound to an
HTTP message
 HTTP Artifact Binding
 SAML URI Binding
11
 i4M Lab
STORK2.0 SAML Protocol
 Extension of the standard SAML2.0 protocol
 Mandatory QAA Level (Quality Authentication Assurance)
 Optional eIDSectorShare, eIDCrossSectorShare, eIDCrossBorderShare
whether an eId can be shared
 Optional <RequestAttribtues> element to allow additional STORK attributes
to be rrequested
 Additional attributes necessary for processing the authentication
12
 i4M Lab
STORK
SAML
Example
Part I
13
 i4M Lab 14
STORK
SAML
Example
Part II
 i4M Lab 15
STORK
SAML
Example
Part III
 i4M Lab
STORK2.0 PAL – Personal Attribute List
 Simple object representation of the attributes information transferred
trough SAML documents
 Utilized internally at PEPS, Demo SP, Demo AP and ISS
 Methods for setting and getting attributes
 public PersonalAttribute put(final String key, final PersonalAttribute val)
 public void add(final PersonalAttribute value)
 public PersonalAttribute get(final Object key)
 IPersonalAttributeList getMandatoryAttributes() …
 PersonalAttribute: representation of an attribute
 Fields: name, value, complexValue, required, status, friendlyName
16
 i4M Lab
Session II: agenda
 Security Assertion Markup Language (SAML)
 ISS Architecture - APIs
 ISS Hands-on Experience
17
 i4M Lab
Struts 2.0 framework
 Supporting Service 2.0 is a Struts 2.0-based web application
 Struts 2.0 is a pull-MVC framework based on Actions. Actions are have
trigger points and results actions
 Example:
<action name="ValidateToken" class="eu.stork.ss.specific.json.RetrieveDummySP">
<result name="success" type="redirectAction">
<param name="actionName">CountrySelector</param>
</result>
<result name="error">/errorPage.jsp</result>
</action>
 action name : Name of the action. Part of the trigger URL (http://server/webapp/ValidateToken)
 Class: the corresponding class containing the execute method to be activated when the corresponding
action is triggered.
 Result name: what happened on success and failure
 Success: automatic struts redirection-to-action trigger
 Failure: display a JSP page
 i4M Lab
Supporting Service operation lifecycle
 <!-- Step1: Validate token, create session and set token -->
<action name="ValidateToken“ class="eu.stork.ss.specific.json.RetrieveDummySP">
<result name="success" type="redirectAction"><param name="actionName">CountrySelector</param>
</result>
<result name="error">/errorPage.jsp</result></action>
 <!-- Step3: Validate user selection and create SAML (session must contain TOKEN and PAL) -->
<action name="ValidateSelection" class="eu.stork.ss.ValidateSelection">
<result name="success">/samlRedirect.jsp</result>
<result name="error">/errorPage.jsp</result> </action>
 #Sp return url sp.return=https://stork2.atlantis-group.gr/SP/ServiceRedirect
 <!-- Step4: Validate SAML, save values to PAL (session must contain TOKEN and PAL) -->
<action name="ServiceRedirect" class="eu.stork.ss.ServiceRedirect">
<result name="success" type="chain"><param name="actionName">ReturnToken</param>
</result><result name="error">/redirect.jsp</result></action>
 <!-- Step5: Provided a PAL we save the values and redirect to the SP -->
<action name="ReturnToken" class="eu.stork.ss.specific.json.SaveDummySP">
<result name="success">/tokenRedirect.jsp</result>
<result name="error">/errorPage.jsp</result></action>
 i4M Lab
Step1:
Validate token, create session and set token
 Action Name: ValidateToken
 Abstract action class: eu.stork.ss.RetreivePersonalAttributeList
 Specific class: eu.stork.ss.specific.xx.RetrieveDummySP
 Method of interest: IPersonalAttributeList
retrievePersonalAttributeList(String token)
 Retrieve configuration information
 Perform SP communication and retrieve requested attributes
 Construct the corresponding PAL
 Let’s look into the code!
 i4M Lab
Step3:
Validate user selection and create SAML
 Action Name: ValidateSelection
 Action class: eu.stork.ss.ValidateSelection
 Constructs the Authentication Request (Main class to represent a request to
the STORK service)
 Uses the STORK SAML engine to encode the PAL into the SAML document
 Retrieves PEPS URL from configuration file
 Sends the request to PEPS (STORK) through user redirection
(samlRedirect.jsp)
 i4M Lab
Step4:
Validate SAML, save values to PAL
 Action Name: ServiceRedirect
 Action class: eu.stork.ss.ServiceRedirect
 Receives the SAML document which contains the reply from STORK
 Checks whether the response contains some error code
 Otherwise, decodes the document, retrieving all necessary information, esp.
the PAL
 PAL now also contains the requested attribute values
 i4M Lab
Step5:
Provided a PAL we save the values and
redirect to the SP
 Action Name: ReturnToken
 Abstract action class: eu.stork.ssSavePersonalAttributeList
 Specific class: eu.stork.ss.specific.xx.SaveDummySP
 Method of interest: String savePersonalAttributeList(String token,
IPersonalAttributeList pal)
 Constructs the SP request message from PAL
 Performs the necessary communication to the SP
 Retrieves the SP reply
 Redirects the user to the corresponding URL (success or failure)
 Let’s look into the code!
 i4M Lab
Session II: agenda
 Security Assertion Markup Language (SAML)
 ISS Architecture - APIs
 ISS Hands-on Experience
24
 i4M Lab
ISS Code…
25
 i4M Lab
Thank You
 Λέλης Στέλιος
 Χάρης Παπαδάκης
 Αύριο, 05 Νοεμβρίου 2015 @ 16:00
 «Assignments Presentation»
26

More Related Content

Similar to e-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_II

Simple Web service Offering Repository Deposit (SWORD)‏
Simple Web service Offering Repository Deposit (SWORD)‏Simple Web service Offering Repository Deposit (SWORD)‏
Simple Web service Offering Repository Deposit (SWORD)‏
Julie Allinson
 
Automated rock testing tracker
Automated rock testing trackerAutomated rock testing tracker
Automated rock testing tracker
Mir Mustafa Ali
 
Qtp Presentation
Qtp PresentationQtp Presentation
Qtp Presentation
techgajanan
 
Spring framework
Spring frameworkSpring framework
Spring framework
srmelody
 

Similar to e-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_II (20)

Railsplitter: Simplify Your CRUD
Railsplitter: Simplify Your CRUDRailsplitter: Simplify Your CRUD
Railsplitter: Simplify Your CRUD
 
Sword Crig 2007 12 06
Sword Crig 2007 12 06Sword Crig 2007 12 06
Sword Crig 2007 12 06
 
Simple Web service Offering Repository Deposit (SWORD)‏
Simple Web service Offering Repository Deposit (SWORD)‏Simple Web service Offering Repository Deposit (SWORD)‏
Simple Web service Offering Repository Deposit (SWORD)‏
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 
Icoper webinar
Icoper webinar Icoper webinar
Icoper webinar
 
Automated rock testing tracker
Automated rock testing trackerAutomated rock testing tracker
Automated rock testing tracker
 
Web Services Automated Testing via SoapUI Tool
Web Services Automated Testing via SoapUI ToolWeb Services Automated Testing via SoapUI Tool
Web Services Automated Testing via SoapUI Tool
 
Web Service
Web ServiceWeb Service
Web Service
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptxOWASP_Top_Ten_Proactive_Controls_v2.pptx
OWASP_Top_Ten_Proactive_Controls_v2.pptx
 
Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...
Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...
Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...
 
Oracle API Gateway
Oracle API GatewayOracle API Gateway
Oracle API Gateway
 
Sword Cetis 2007 06 29
Sword Cetis 2007 06 29Sword Cetis 2007 06 29
Sword Cetis 2007 06 29
 
Sword Cetis 2007 06 29
Sword Cetis 2007 06 29Sword Cetis 2007 06 29
Sword Cetis 2007 06 29
 
CamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF SecurityCamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF Security
 
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeOSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
 
audit_blog.ppt
audit_blog.pptaudit_blog.ppt
audit_blog.ppt
 
Qtp Presentation
Qtp PresentationQtp Presentation
Qtp Presentation
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Report
ReportReport
Report
 

More from Connected Islands (9)

e-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_III
e-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_IIIe-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_III
e-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_III
 
e-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_I
e-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_Ie-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_I
e-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_I
 
Blue Helix Community
Blue Helix CommunityBlue Helix Community
Blue Helix Community
 
Short Sea Shipping
Short Sea ShippingShort Sea Shipping
Short Sea Shipping
 
Island Hopping
Island HoppingIsland Hopping
Island Hopping
 
Blue Correlation
Blue Correlation  Blue Correlation
Blue Correlation
 
Blue Hacathon- Φ. Ρούτσης
Blue Hacathon- Φ. ΡούτσηςBlue Hacathon- Φ. Ρούτσης
Blue Hacathon- Φ. Ρούτσης
 
Blue Hacathon-Γ. Ρεμούνδος
Blue Hacathon-Γ. ΡεμούνδοςBlue Hacathon-Γ. Ρεμούνδος
Blue Hacathon-Γ. Ρεμούνδος
 
Blue Hacathon-Ι. Σπιλάνης
Blue Hacathon-Ι. ΣπιλάνηςBlue Hacathon-Ι. Σπιλάνης
Blue Hacathon-Ι. Σπιλάνης
 

Recently uploaded

Cara Gugurkan Pembuahan Secara Alami Dan Cepat ABORSI KANDUNGAN 087776558899
Cara Gugurkan Pembuahan Secara Alami Dan Cepat ABORSI KANDUNGAN 087776558899Cara Gugurkan Pembuahan Secara Alami Dan Cepat ABORSI KANDUNGAN 087776558899
Cara Gugurkan Pembuahan Secara Alami Dan Cepat ABORSI KANDUNGAN 087776558899
Cara Menggugurkan Kandungan 087776558899
 
Top profile Call Girls In Morena [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Morena [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Morena [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Morena [ 7014168258 ] Call Me For Genuine Models We...
gajnagarg
 
Top profile Call Girls In Haldia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Haldia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Haldia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Haldia [ 7014168258 ] Call Me For Genuine Models We...
gajnagarg
 
Competitive Advantage slide deck___.pptx
Competitive Advantage slide deck___.pptxCompetitive Advantage slide deck___.pptx
Competitive Advantage slide deck___.pptx
ScottMeyers35
 
Nagerbazar @ Independent Call Girls Kolkata - 450+ Call Girl Cash Payment 800...
Nagerbazar @ Independent Call Girls Kolkata - 450+ Call Girl Cash Payment 800...Nagerbazar @ Independent Call Girls Kolkata - 450+ Call Girl Cash Payment 800...
Nagerbazar @ Independent Call Girls Kolkata - 450+ Call Girl Cash Payment 800...
HyderabadDolls
 

Recently uploaded (20)

Cara Gugurkan Pembuahan Secara Alami Dan Cepat ABORSI KANDUNGAN 087776558899
Cara Gugurkan Pembuahan Secara Alami Dan Cepat ABORSI KANDUNGAN 087776558899Cara Gugurkan Pembuahan Secara Alami Dan Cepat ABORSI KANDUNGAN 087776558899
Cara Gugurkan Pembuahan Secara Alami Dan Cepat ABORSI KANDUNGAN 087776558899
 
Fun all Day Call Girls in Erode { 9332606886 } VVIP NISHA Call Girls Near 5 S...
Fun all Day Call Girls in Erode { 9332606886 } VVIP NISHA Call Girls Near 5 S...Fun all Day Call Girls in Erode { 9332606886 } VVIP NISHA Call Girls Near 5 S...
Fun all Day Call Girls in Erode { 9332606886 } VVIP NISHA Call Girls Near 5 S...
 
Women Call Girls in gaya 8250092165 Call Girls Advance Cash On Delivery Service
Women Call Girls in gaya  8250092165 Call Girls Advance Cash On Delivery ServiceWomen Call Girls in gaya  8250092165 Call Girls Advance Cash On Delivery Service
Women Call Girls in gaya 8250092165 Call Girls Advance Cash On Delivery Service
 
Call Girls Umbergaon / 8250092165 Genuine Call girls with real Photos and Number
Call Girls Umbergaon / 8250092165 Genuine Call girls with real Photos and NumberCall Girls Umbergaon / 8250092165 Genuine Call girls with real Photos and Number
Call Girls Umbergaon / 8250092165 Genuine Call girls with real Photos and Number
 
Erotic Meerut Call Girls 💯Call Us 🔝 6378878445 🔝 💃 Top Class Call Girl Servi...
Erotic  Meerut Call Girls 💯Call Us 🔝 6378878445 🔝 💃 Top Class Call Girl Servi...Erotic  Meerut Call Girls 💯Call Us 🔝 6378878445 🔝 💃 Top Class Call Girl Servi...
Erotic Meerut Call Girls 💯Call Us 🔝 6378878445 🔝 💃 Top Class Call Girl Servi...
 
Scaling up coastal adaptation in Maldives through the NAP process
Scaling up coastal adaptation in Maldives through the NAP processScaling up coastal adaptation in Maldives through the NAP process
Scaling up coastal adaptation in Maldives through the NAP process
 
Vasai Call Girls In 07506202331, Nalasopara Call Girls In Mumbai
Vasai Call Girls In 07506202331, Nalasopara Call Girls In MumbaiVasai Call Girls In 07506202331, Nalasopara Call Girls In Mumbai
Vasai Call Girls In 07506202331, Nalasopara Call Girls In Mumbai
 
Time, Stress & Work Life Balance for Clerks with Beckie Whitehouse
Time, Stress & Work Life Balance for Clerks with Beckie WhitehouseTime, Stress & Work Life Balance for Clerks with Beckie Whitehouse
Time, Stress & Work Life Balance for Clerks with Beckie Whitehouse
 
Top profile Call Girls In Morena [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Morena [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Morena [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Morena [ 7014168258 ] Call Me For Genuine Models We...
 
Spring 2024 Issue Punitive and Productive Suffering
Spring 2024 Issue Punitive and Productive SufferingSpring 2024 Issue Punitive and Productive Suffering
Spring 2024 Issue Punitive and Productive Suffering
 
Top profile Call Girls In Haldia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Haldia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Haldia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Haldia [ 7014168258 ] Call Me For Genuine Models We...
 
Premium Prayagraj ❤️🍑 6378878445 👄🫦Independent Escort Service
Premium  Prayagraj ❤️🍑 6378878445 👄🫦Independent Escort ServicePremium  Prayagraj ❤️🍑 6378878445 👄🫦Independent Escort Service
Premium Prayagraj ❤️🍑 6378878445 👄🫦Independent Escort Service
 
Competitive Advantage slide deck___.pptx
Competitive Advantage slide deck___.pptxCompetitive Advantage slide deck___.pptx
Competitive Advantage slide deck___.pptx
 
Tuvalu Coastal Adaptation Project (TCAP)
Tuvalu Coastal Adaptation Project (TCAP)Tuvalu Coastal Adaptation Project (TCAP)
Tuvalu Coastal Adaptation Project (TCAP)
 
2024 UN Civil Society Conference in Support of the Summit of the Future.
2024 UN Civil Society Conference in Support of the Summit of the Future.2024 UN Civil Society Conference in Support of the Summit of the Future.
2024 UN Civil Society Conference in Support of the Summit of the Future.
 
AHMR volume 10 number 1 January-April 2024
AHMR volume 10 number 1 January-April 2024AHMR volume 10 number 1 January-April 2024
AHMR volume 10 number 1 January-April 2024
 
NGO working for orphan children’s education
NGO working for orphan children’s educationNGO working for orphan children’s education
NGO working for orphan children’s education
 
Nagerbazar @ Independent Call Girls Kolkata - 450+ Call Girl Cash Payment 800...
Nagerbazar @ Independent Call Girls Kolkata - 450+ Call Girl Cash Payment 800...Nagerbazar @ Independent Call Girls Kolkata - 450+ Call Girl Cash Payment 800...
Nagerbazar @ Independent Call Girls Kolkata - 450+ Call Girl Cash Payment 800...
 
Call Girls AS Rao Nagar - 8250092165 Our call girls are sure to provide you w...
Call Girls AS Rao Nagar - 8250092165 Our call girls are sure to provide you w...Call Girls AS Rao Nagar - 8250092165 Our call girls are sure to provide you w...
Call Girls AS Rao Nagar - 8250092165 Our call girls are sure to provide you w...
 
Call Girl Service in West Tripura 9332606886Call Girls Advance Cash On Deliv...
Call Girl Service in West Tripura  9332606886Call Girls Advance Cash On Deliv...Call Girl Service in West Tripura  9332606886Call Girls Advance Cash On Deliv...
Call Girl Service in West Tripura 9332606886Call Girls Advance Cash On Deliv...
 

e-Idenity-and-e-Government_ELAK-Code-Camp-Lecture_II

  • 1.  i4M Lab 1 ΕΛΛΑΚ Μονάδες Αριστείας (ΜΑ. ΕΛΛΑΚ) Σχολείο Ανοικτού Κώδικα ΕΛ / ΛΑΚ: e-Identity & e-Government (Hλεκτρονική ταυτότητα στη Δημόσια Διοίκηση και Τοπική Αυτοδιοίκηση) UAegean Center of Excellence (CoE) – Open Source Software in Transport and Shipping University of the Aegean Dpt of Financial and Management Engineering & Dpt of Shipping and Transportation Services Session: II Stelios Lelis , i4M Lab, UAegean Harris Papadakis, i4M Lab, UAegean @ i-nformation M-anagement Lab i4M Lab
  • 2.  i4M Lab Ταυτότητα Σεμιναρίου  Το Πανεπιστήμιο Αιγαίου, στα πλαίσια του έργου Μονάδες Αριστείας Ελεύθερου Λογισμικού / Λογισμικού Ανοικτού Κώδικα (ΕΛ/ΛΑΚ)1, διοργανώνει Σχολείο Ανοικτού Κώδικα ΕΛ / ΛΑΚ με θέμα «e-Identity & e-Government (Hλεκτρονική ταυτότητα στη Δημόσια Διοίκηση και Τοπική Αυτοδιοίκηση)». 1 Το υποέργο Μονάδες Αριστείας ΕΛ/ΛΑΚ υλοποιείται στο πλαίσιο του έργου «Ηλεκτρονικές Υπηρεσίες για την Ανάπτυξη και Διάδοση του Ανοιχτού Λογισμικού» του Προγράμματος «Ψηφιακή Σύγκλιση». Το έργο συγχρηματοδοτείται από το ΕΤΠΑ. 2
  • 3.  i4M Lab Σήμερα 03.11.2015 3 STORK2.0 Interconnection Supporting Service Architecture, Aplication Protocol Interfaces, hands-on experienc 16:00 - 20:00 4 ώρες Στέλιος Λέλης Χαράλαμπος Παπαδάκης
  • 4.  i4M Lab Online tools και άλλα  Βασική αναφορά για την ύλη του μαθήματος  https://openeclass.aegean.gr/courses/OPENSOURCE102/  Επικοινωνία  seminar e-mailing list: e-identity-iss-community@googlegroups.com  Αποθετήριο κώδικα ISS  https://github.com/adanar/SSS-2.0  Ομάδα διδασκαλίας και συντονισμού  Στέλιος Λέλης  Χάρης Παπαδάκης  Πέτρος Καβάσαλης 4
  • 5.  i4M Lab STORK2.0 INTERCONNECTION SUPPORTING SERVICE ARCHITECTURE, APPLICATION PROTOCOL INTERFACES, HANDS-ON EXPERIENCE Session II 5
  • 6.  i4M Lab Session II: agenda  Security Assertion Markup Language (SAML)  ISS Architecture - APIs  ISS Hands-on Experience 6
  • 7.  i4M Lab Session II: agenda  Security Assertion Markup Language (SAML)  ISS Architecture - APIs  ISS Hands-on Experience 7
  • 8.  i4M Lab SAML – Security Assertion Markup Language  An XML-based, open-standard data format for exchanging authentication and authorization data between parties.  Parties (IdPs, SPs, PEPSes, etc.) exchange SAML documents that contain SAML assertions  A SAML assertion contains a packet of security information “Assertion A was issued at time t by issuer R regarding subject S provided conditions C are valid”  On the basis of assertions, SPs make access control decisions – in other words it can decide whether to provide access to the service to the user.  SAML documents are signed and their origin cross-checked (circle of trust) 8
  • 9.  i4M Lab SAML Assertion Statements  Assertions contain three types of statements  Authentication statements o Assert to the SP that the principal did indeed authenticate with the identity provider at a particular time using a particular method of authentication  Attribute statements o Asserts that a subject is associated with certain attributes.  Authorization decision statements o Asserts that a subject is permitted to perform action A on resource R given evidence E (intentionally limited) 9
  • 10.  i4M Lab SAML Protocols  A SAML protocol describes how certain SAML elements (including assertions) are packaged within SAML request and response elements, and gives the processing rules that SAML entities must follow when producing or consuming these elements.  SAML protocol is a simple request-response protocol  Autehtncitation Query – Authentication Response  Attribute Query – Attribute Response  Authorization Decision Query - Authorization Decision Response 10
  • 11.  i4M Lab SAML Bindings  A SAML binding is a mapping of a SAML protocol message onto standard messaging formats and/or communications protocols.  SAML SOAP Binding o specifies how a SAML message is encapsulated in a SOAP envelope, which itself is bound to an HTTP message  Reverse SOAP (PAOS) Binding  HTTP Redirect (GET) Binding  HTTP POST Binding o specifies how a SAML message is posted to the party, which itself is bound to an HTTP message  HTTP Artifact Binding  SAML URI Binding 11
  • 12.  i4M Lab STORK2.0 SAML Protocol  Extension of the standard SAML2.0 protocol  Mandatory QAA Level (Quality Authentication Assurance)  Optional eIDSectorShare, eIDCrossSectorShare, eIDCrossBorderShare whether an eId can be shared  Optional <RequestAttribtues> element to allow additional STORK attributes to be rrequested  Additional attributes necessary for processing the authentication 12
  • 14.  i4M Lab 14 STORK SAML Example Part II
  • 15.  i4M Lab 15 STORK SAML Example Part III
  • 16.  i4M Lab STORK2.0 PAL – Personal Attribute List  Simple object representation of the attributes information transferred trough SAML documents  Utilized internally at PEPS, Demo SP, Demo AP and ISS  Methods for setting and getting attributes  public PersonalAttribute put(final String key, final PersonalAttribute val)  public void add(final PersonalAttribute value)  public PersonalAttribute get(final Object key)  IPersonalAttributeList getMandatoryAttributes() …  PersonalAttribute: representation of an attribute  Fields: name, value, complexValue, required, status, friendlyName 16
  • 17.  i4M Lab Session II: agenda  Security Assertion Markup Language (SAML)  ISS Architecture - APIs  ISS Hands-on Experience 17
  • 18.  i4M Lab Struts 2.0 framework  Supporting Service 2.0 is a Struts 2.0-based web application  Struts 2.0 is a pull-MVC framework based on Actions. Actions are have trigger points and results actions  Example: <action name="ValidateToken" class="eu.stork.ss.specific.json.RetrieveDummySP"> <result name="success" type="redirectAction"> <param name="actionName">CountrySelector</param> </result> <result name="error">/errorPage.jsp</result> </action>  action name : Name of the action. Part of the trigger URL (http://server/webapp/ValidateToken)  Class: the corresponding class containing the execute method to be activated when the corresponding action is triggered.  Result name: what happened on success and failure  Success: automatic struts redirection-to-action trigger  Failure: display a JSP page
  • 19.  i4M Lab Supporting Service operation lifecycle  <!-- Step1: Validate token, create session and set token --> <action name="ValidateToken“ class="eu.stork.ss.specific.json.RetrieveDummySP"> <result name="success" type="redirectAction"><param name="actionName">CountrySelector</param> </result> <result name="error">/errorPage.jsp</result></action>  <!-- Step3: Validate user selection and create SAML (session must contain TOKEN and PAL) --> <action name="ValidateSelection" class="eu.stork.ss.ValidateSelection"> <result name="success">/samlRedirect.jsp</result> <result name="error">/errorPage.jsp</result> </action>  #Sp return url sp.return=https://stork2.atlantis-group.gr/SP/ServiceRedirect  <!-- Step4: Validate SAML, save values to PAL (session must contain TOKEN and PAL) --> <action name="ServiceRedirect" class="eu.stork.ss.ServiceRedirect"> <result name="success" type="chain"><param name="actionName">ReturnToken</param> </result><result name="error">/redirect.jsp</result></action>  <!-- Step5: Provided a PAL we save the values and redirect to the SP --> <action name="ReturnToken" class="eu.stork.ss.specific.json.SaveDummySP"> <result name="success">/tokenRedirect.jsp</result> <result name="error">/errorPage.jsp</result></action>
  • 20.  i4M Lab Step1: Validate token, create session and set token  Action Name: ValidateToken  Abstract action class: eu.stork.ss.RetreivePersonalAttributeList  Specific class: eu.stork.ss.specific.xx.RetrieveDummySP  Method of interest: IPersonalAttributeList retrievePersonalAttributeList(String token)  Retrieve configuration information  Perform SP communication and retrieve requested attributes  Construct the corresponding PAL  Let’s look into the code!
  • 21.  i4M Lab Step3: Validate user selection and create SAML  Action Name: ValidateSelection  Action class: eu.stork.ss.ValidateSelection  Constructs the Authentication Request (Main class to represent a request to the STORK service)  Uses the STORK SAML engine to encode the PAL into the SAML document  Retrieves PEPS URL from configuration file  Sends the request to PEPS (STORK) through user redirection (samlRedirect.jsp)
  • 22.  i4M Lab Step4: Validate SAML, save values to PAL  Action Name: ServiceRedirect  Action class: eu.stork.ss.ServiceRedirect  Receives the SAML document which contains the reply from STORK  Checks whether the response contains some error code  Otherwise, decodes the document, retrieving all necessary information, esp. the PAL  PAL now also contains the requested attribute values
  • 23.  i4M Lab Step5: Provided a PAL we save the values and redirect to the SP  Action Name: ReturnToken  Abstract action class: eu.stork.ssSavePersonalAttributeList  Specific class: eu.stork.ss.specific.xx.SaveDummySP  Method of interest: String savePersonalAttributeList(String token, IPersonalAttributeList pal)  Constructs the SP request message from PAL  Performs the necessary communication to the SP  Retrieves the SP reply  Redirects the user to the corresponding URL (success or failure)  Let’s look into the code!
  • 24.  i4M Lab Session II: agenda  Security Assertion Markup Language (SAML)  ISS Architecture - APIs  ISS Hands-on Experience 24
  • 25.  i4M Lab ISS Code… 25
  • 26.  i4M Lab Thank You  Λέλης Στέλιος  Χάρης Παπαδάκης  Αύριο, 05 Νοεμβρίου 2015 @ 16:00  «Assignments Presentation» 26