Tesi
Tesi
Tesi
Supervisors
prof. Antonio Lioy
ing. Diana Berbecaru
Candidate
Muhammad Ali Anjum
December 2019
To my family, who helped
me during this journey
Summary
There is a significant increase of devices with wireless LAN (Local Area Network) capabilities
from the start of 21st century and the use of these devices has become a requirement in every
profession. This increases the need for wireless connectivity and at the same time security of
wireless LAN has become more important. Which led to many national and international initia-
tives for secure WLAN connectivity. That includes eduroam and govroam, that provides roaming
services for educational and government sectors respectively. But there are some limitations to
these projects, they don’t support complex authorisation mechanism and are based on RADIUS
servers infrastructure, which needs to be maintained in the entire federated hierarchy.
In this thesis we provide a solution to access WiFi connectivity for citizens of European
countries with eIDAS (electronic identification and trust services) infrastructure. eIDAS is EU
Regulation (EU)910/2014 on electronic identification and trusted services for cross border elec-
tronic transaction, which is adopted by all European countries. It provides mutual recognition
of electronic identification between member states by establishing interoperability between ex-
isting national eID infrastructures for cross border authentication using their own national eID
credentials. We developed and tested two solutions, first one using software based approach and
second one using eIDAS code and hardware (wireless) infrastructure deployed in Politecnico di
Torino university. In first solution we used Zeroshell, which is a Linux based distribution, specifi-
cally designed to provide routers and firewall services. We created a Captive Portal and modified
Shibboleth authentication to send and receive messages in eIDAS compatible format to provide
authentication. The eIDAS framework for authentication is consists of eIDAS Nodes (specific for
each country) and Identity Providers (IdP). In second solution we integrated eIDAS-SP code with
Politecnico di Torino wireless infrastructure. Authentication is provided by Wifi-Auth eIDAS-
SP application with eIDAS framework. Whereas wireless infrastructure includes Cisco WLC
(Wireless LAN Controller), Cisco AP (Access Point) and Fortigate-60D firewall, which is respon-
sible for providing Captive Portal, management of authenticated users and network management.
We have tested our solution successfully using Italy-SPID (Public System for Digital Identity),
Portugal-Chave Mòvel Digital and Spain-DNIe (Documento Nacional de Identidad electrónico).
4
Acknowledgements
I would like to thank my supervisor, prof. Antonio Lioy, whose extensive knowledge was invalu-
able. I would also like to thank my supervisor, ing. Diana Berbecaru, the completion of my
thesis would not have been possible without her unparalleled knowledge of the field, continuous
guidance and advice, specially during the writing phase.
A special thank goes to my father, who has always supported me. I also want to thank my
brother and sisters for their support, which helped me to get through the ups and downs of my
research.
My deepest appreciation goes to Cesare Cameroni, who has always been tolerant and support-
ive throughout the thesis. I would also like to thank Ignazio Pedone and Marco De Benedictis,
PhD students inside the TORSEC research group. A general thanks goes to all the members of
the TORSEC research group, which were always available to help me when needed.
Finally, I would like to thank the Higher Education Commission of Pakistan and Politecnico
di Torino for providing the funding and resources to undertake this research opportunity.
5
Contents
List of Figures 10
1 Introduction 12
2 Background 14
2.1 User authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Identity management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1 Digital identity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 Identity Management System . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 SAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 Drivers of SAML adoption . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.4 SAML participants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.5 Basic concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.6 SAML components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.7 Privacy in SAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.8 Security in SAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Shibboleth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5 eIDAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5.1 Main problems addressed by eIDAS . . . . . . . . . . . . . . . . . . . . . . 24
2.5.2 eIDAS specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.3 eIDAS cryptography requirements for trust between eIDAS entities . . . . . 25
2.5.4 eIDAS protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.5 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6 Related work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.1 eduroam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.2 govroam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.7 Review of possible networking tools for implementing Captive Portal with SAML . 34
2.7.1 PacketFence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.7.2 NoDogSplash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.7.3 Zeroshell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6
3 Design and implementation of WiFi access with eIDAS through Zeroshell 37
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Authentication flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 Zeroshell setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.1 Virtual Box initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.2 Accessing web interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.3 Profile creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.4 Network configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.5 Captive Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.6 Shibboleth authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.7 Shibboleth configuration files . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4 Configuring Shibboleth authentication with eIDAS . . . . . . . . . . . . . . . . . . 44
3.4.1 EntityID of the SP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.2 ApplicationDefaults element . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.3 MetadataProvider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.4 Cryptography certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.5 Node-Country selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4.6 SessionInitiator AuthnRequest element . . . . . . . . . . . . . . . . . . . . . 47
3.4.7 Attributes configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.8 White-listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.9 Problems encountered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.5 Authentication cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4 Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito
wireless infrastructure 53
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 Authentication process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.1 Wifi-Auth eIDAS-SP set-up . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3 Authentication flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.1 Authentication flow Italian scenario . . . . . . . . . . . . . . . . . . . . . . 55
4.3.2 Authentication flow detail: request part . . . . . . . . . . . . . . . . . . . . 57
4.3.3 Authentication flow detail: response part . . . . . . . . . . . . . . . . . . . 60
4.4 Wifi-Auth eIDAS-SP implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4.1 SSH library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4.2 Guest user properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4.3 Function createUser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.4.4 Function createCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.4.5 Functions randomString and randomPassword . . . . . . . . . . . . . . . . 64
4.4.6 Login form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.4.7 Cryptography certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7
4.5 Configuration of network elements . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.5.1 Fortigate-60D introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.5.2 Cisco WLC 2504 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.6 Script for creating ACL rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.7 Testing authentication cycle using TestCafe . . . . . . . . . . . . . . . . . . . . . . 70
4.8 Authentication cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5 Installation and configuration of WiFi access with eIDAS-SP and Polito wire-
less infrastructure 77
5.1 Installation of Wifi-Auth eIDAS-SP application . . . . . . . . . . . . . . . . . . . . 77
5.1.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1.2 Docker and Docker-compose installation . . . . . . . . . . . . . . . . . . . . 78
5.1.3 Source code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.2 Fortigate-60D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.1 Firewall interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.2 Firewall policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.3 Virtual IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3 Cisco WLC 2504 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.1 WLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.3.2 Creating WLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.3 ACL (Access Control List) . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.4 WebAuth SecureWeb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6 Results 85
7 Conclusion 88
Bibliography 89
9
List of Figures
Introduction
Wireless LANs (WLAN) provides network communication to devices within a limited area such
as home, restaurant, organisation etc. WLAN also referred as WiFi networks have become a
basic requirement for it’s enhanced mobility and increased number of devices supporting wireless
connectivity. To provide a seamless connectivity within a large area such as in a university using
multiple Access Points (AP) is called roaming. It is a common practice to provide roaming
between different campuses of university or offices of an organisation.
Demand for secure wireless roaming between organisation have increased due to partnerships
between different organisations. As well as programs like Erasmus, which provide students the
facility to study or gain experience in a different European country. Therefore various initiates
have been stated to provide national and international roaming services including eduroam and
govroam.
eduroam [1] is an international roaming services which provides WiFi access connectivity to
users in educational sector. It provides secure network connectivity to students, teachers and re-
searchers in institutions other than their own. govroam is an other roaming service which provides
roaming services to users from different professions. It provides secure network authentication
to individuals from different organisations. These services are widely used but are specific to an
individual sector e.g education, government.
eIDAS-
User eIDAS-SP eIDAS-Service IDP
Connector
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
In this thesis we provide a WiFi access service for network connectivity. This service is a part of
European eID4U [2] project, which aims to use national electronic identities to provide advanced
cross border services for European environment by integrating new attributes [3] in the eIDAS
network. eIDAS provides a framework for secure cross border electronic identification between
12
1 – Introduction
member states using interoperability between existing national eID infrastructure. eIDAS frame-
work is composed of eIDAS-Nodes, Service Provider (SP) and IdP (Identity Provider). Member
states are responsible for implementing eIDAS nodes to securely exchange identity information
between IdP and SP present in another state using eIDAS protocol. eIDAS-Connector node and
eIDAS-Service node are responsible for cross border identification in the eIDAS framework. A
part from these it can also include proxy nodes (specific to a country ) such as SP-Proxy which
will create a bridge between SP and eIDAS-Connector or IdP-Proxy which will create a bridge
between eIDAS-Service and IdP. Member states have to implement an eIDAS-Connector node
which will be responsible for the communication between SP/SP-Proxy and eIDAS-Service node.
Whereas eIDAS-Service node is responsible for communication between eIDAS-Connector node
and IdP/IdP-Proxy.
An overview of authentication for SP in Italy using Spanish eID is shown in Figure 1.1. The
authentication cycle starts with a user connecting to a eIDAS-SP. In the first step user will select
Spain in the citizen country and start authentication (step 1). eIDAS-SP will generate an eIDAS
AuthnRequest and send it to Italian eIDAS-Connector using user’s browser (step 2). eIDAS-
Connector will create an eIDAS AuthnRequest and send it to Spanish eIDAS-Service using user’s
browser (step 3). eIDAS-Service will create an eIDAS AuthnRequest for Spanish IdP and send
it using user’s browser (step 4). IdP will authenticate user using its authentication mechanism
(credential-based/mobile-based/certificate-based) (step 5-6). IdP will then create an eIDAS Re-
sponse for Spanish eIDAS-SP and send it using user’s browser (step 7). eIDAS-SP will create an
eIDAS Response for Italian eIDAS-Connector and send it using user’s browser (step 8). eIDAS-
Connector will create an eIDAS Response for eIDAS-SP and send it using user’s browser (step 9).
eIDAS-SP will get the identification of the user and will allow access to the internet (step 10).
Our goal was to create a solution for WiFi access for European environment using eIDAS
framework. For which we created wireless network and setup a captive portal to only allow
network access to authenticated users. We will provide two solutions, a software based and a
hardware based solution for the development of eIDAS SP. First we discuss the software based
solution using Zeroshell Linux distribution, which provides router and firewall services. It has
the ability to create a captive portal using SAML 2.0, a service provider (SP) for authentication
using Shibboleth, a DHCP server for dynamic allocation of IP address and an access control list
(ACL) for allowing to access eIDAS-Nodes/IdP during authentication. Secondly we discuss the
hardware based solution by using the eIDAS code and the wireless infrastructure of Politecnico
di Torino for wireless access. We created a eIDAS-SP service which provides authentication using
eIDAS framework for the Captive Portal. Wireless infrastructure is consisted of Cisco WLC,
Cisco AP (Access Point) and Fortigate-60D, that are responsible for implementation of Captive
Portal, management of users, ACL and network management.
13
Chapter 2
Background
This chapter contains concepts and underlying technologies important for the understanding Fed-
erated Identity Management.
Certification Authority. The digital certificate provides trust by a chain of ordered list of certifi-
cates from user certificate to the root certificate. By trusting the root certificate means to trust in
all certificates issued by the root and also by intermediate certification authorities. A part from
this, Diffie and Hellman cryptography algorithm can be used to negotiate a shared session key
between two parties without inclusion of a third party. Both parties shares a secret key by means
of Diffie-Hellman and use it to create a private key to encrypt the communication. This private
key allow them to communicate using symmetric cryptography algorithms, which by its nature
can be made computationally fast by using hardware accelerator and by encrypting whole blocks.
In each Identity Management System there are three entities involved in the authentication cycle:
user, Identity Provider and Service Provider. A user is the entity which wants to consume a service
and is registered in one or more Identity Provider. Identity Provider is the entity which manages
identities of a user and their respective credentials. It provides authentication and authorisation
services for the user to access various services. The Service Provider is the entity which relies on
Identity Provider for authentication of the user and provide services to the authenticated user.
An Identity Management System on the basis of data storage and entity roles can be classified
into Isolated, Centralised and Federated Model [14].
Isolated model
In this model Service Provider and Identity Provider are combined together on the same server.
This is the most simple approach in which both authentication and authorisation are carried
out at the same point but there are several problems with this approach. For each service user
wants to use, it requires to create a separate identity. If identities are created properly (separate
credentials for each service), with the increase of online services it will not be possible for user to
remember all those credentials and If identities are not created properly (same credentials for all
services), there will be a lack of security.
Centralised model
In this model there is a single central Identity Provider, which provides authentication to users of
multiple Service Providers. Identity Provider store identifiers/information of the user and Service
Provider authenticate user using Identity Provider. A most common use of Centralised Model is
single sign-on, which allows user to use multiple web services using single identification instance.
In model user only need to manage one credential to use all the service but this is also a problem:
as there is a single point of failure.
15
2 – Background
Federated model
This model is a improvement of centralised model and solves the problem of single point of
failure. In this entities involved in Identity Management System has established an agreement
on how the entities are going to be refereed and on configuration parameters of the entities
involved in authentication. Using this model a user can authenticate in multiple service within an
organisation or services across other organisations. Service Provider in one enterprise can allow
access to its services by exchanging identity, attribute, authorisation and authentication with an
Identity Provider in another domain. In this way a group of Service Providers can identify users
from other Service Providers within a federated domain using a common federated Identity [22].
Entities in the Federated Model defines Federated Identity Architecture (FIA), in which Iden-
tity Providers and Service Provides exchange digital identities/information of the user preserving
their privacy. The IdP and SP across enterprises in the federated domain exchange agreements
and configuration in the form metadata. Metadata provides agreement between the system enti-
ties, bindings, endpoints, certificates, keys, cryptography algorithms, security and privacy policies.
Discovery and exchange of metadata make it easy to establish trust and determine policies for
obtaining services.
The federated approach makes it easy to map identities across organisations and reduces the
need to handle many credentials from the user perspective.
2.3 SAML
2.3.1 Introduction
The Security Assertion Markup Language (SAML) standard defines a framework for exchanging
security information between online business partners. It was developed by the Security Services
Technical Committee (SSTC) of the standards organisation OASIS (the Organisation for the Ad-
vancement of Structured Information Standards). This document provides a technical description
of SAML V2.0.
2.3.2 Overview
SAML defines a XML framework for describing and exchanging cross domain authentication and
authorisation information about users, usually between a Service Provider and Identity Provider.
It exchanges messages in the form of SAML assertions for which the standard precisely defines
the syntax and rules to be followed for requesting, creating and using these assertions.
SAML 2.0 was developed on the basis of already existing standards such as:
• eXtensible Markup Language (XML) [17] Defines the syntax for exchanging messages
between entities
• XML Signature [18] Specifies the rules and syntax for calculation of signature. Which
provides integrity, message authentication and signer authentication of the SAML messages.
• XML Encryption [19] Specifies the process for encryption and representation of the result
in XML. The result of encryption data is an encryption element, which contains or references
the cipher data.
• Simple Object Access Protocol (SOAP) [21] A protocol used for the exchange of
structured information in web services.
16
2 – Background
SAML 2.0 is able to solve problem related to cross domain single sign-on by providing a protocol
standard that allows to transfer information of a user from a web server to another without
using the cookies. Previously most of the products claiming to provide web-based SSO use
cookies to maintain user session and doesn’t require to authenticate again to access the system.
However, browser cookies are only accessible through the same DNS (Domain Name Service),
therefore session’s information is never available to other domain. Therefore they used proprietary
mechanism for multi-domain SSO, which is specific to the single enterprise. This type of specific
mechanism is viable in products from same enterprise but is not practical for products of business
partners. Because of heterogeneous environments which make the use of proprietary protocol
impossible. SAML solves this problem by providing a vendor-independent protocol for transferring
session information between one web server to another independent of the DNS domains.
Federated identity
When different services creates a collaborative environment for mutual users, they don’t only need
to understand the syntax and protocol of the exchange information; they must have a common
understanding of the user. Usually each provider maintains a local identifier for a user to interact
with the service. In a federated identity a common shared identifier is used for identifying a user
across organisational boundaries. This kind of common identity used between partners to refer
a user is called federated identity. This will also decrease the management cost of individually
maintaining user identity by each service. This kind of identity can reside with the user rather
than on the service side.
SAML can be used to provide security assertion format to be used for non native SAML-based
protocol. This allows it to be useful for other authorisation services (IETF, OASIS), identity
frameworks, web services, etc. It provides a standard based approach for exchanging information,
which is not easily conveyed using other WS-Security token formats. The OASIS WS-Security
Technical Committee has defined a profile to provide SAML’s rich assertion constructs within a
WS-Security token for the transmission of SOAP messages.
In every SAML exchange there is a SAML asserting party and a relying party. SAML asserting
party is the one which creates statement about a subject and issued in the form of statements,
which are consumed by the relying party. When a asserting party or a relying party make a
request to another entity, the one making the request is called requester and the one to whom the
request is made is called the responder.
SAML entities can take variety of SAML roles. In the case of multi-domain Single Sign-On
scenario, the entity providing the assertions is called the IdP and the one consuming the assertions
is called SP. SP makes the decisions relating to the access control after authentication depending
on the assertions.
At the heart of each SAML exchange there is a subject, which is trying to authenticate. A sub-
ject is a principal, which can be a human, computer or a company that needs to be authenticated
to access service resources.
A typical assertion from a IdP provides the information about the subject. It can provide
information about the identity of the subject and status of the authentication. SP can use the
information and depending on the access policies can deny or allow access to the service resources.
17
2 – Background
SAML is composed of smaller components which when combined together can be used for various
use cases. These can be used for the transfer for identity, authorisation, authentication and
attribute information between services from different organisation. Structure of both assertion
and protocol messages for transfer of information are provided by SAML core.
• Assertions SAML assertions contain statement about the subject, which are consumed by
Service Provider to make decisions relating to access control after authentication. SAML
assertions structure and contents are defined by SAML-defined assertion XML schema.
These are created and digitally signed by the authentication authority (IdP), which also
handles the authentication process.
• Protocols SAML protocols are used to for making SAML-defined request and return re-
spective responses. SAML protocols structure and contents are defined by SAML-defined
protocol XML schema.
• Bindings SAML bindings are the lover layer of the communication network with which
SAML protocols are transferred between entities such as SOAP or HTTP.
• Profiles SAML profiles defines how SAML assertions, bindings and protocol must be com-
bined for a specific use case such as multiple domain SSO. It defines constraints on the
contents of these components to solve a use case in an appropriate way.
• Metadata Metadata is a XML document which is used to define and share configuration
between SAML entities. It provides information about supported bindings, identity infor-
mation, supporting identity attribute, cryptography algorithms and certificates. It is defined
by it’s own XML schema.
• Authentication context Authentication Context is used to provide details about the
authentication at identity provider such as type and strength of authentication. An assertion
authentication statement is used to carry this information. In some cases Service Provider
can also ask Identity Provider to use specific type of authentication such as multi-factor
authentication for resources that are critical. Authentication context is defined by XML
schema and a set of SAML-defined Authentication Context Classes, which provide commonly
used authentication methods.
This will provide detail about each of the components that represent the assertion, protocol,
binding, and profile concepts in a SAML environment.
18
2 – Background
Assertions
SAML Assertions provide information about the principal in the form of statements. These are
created and digitally signed by the authentication authority. For example when a user invokes
the login operation on a Service Provider, that Service Provider redirect to the Identity Provider.
Identity Provider validates the credentials and issues the SAML assertion with user information
stating that the authentication was successful. Because it is digitally signed by the Identity
Provider, the respective Service Provider on receiving the information can validate that it was
created and issued by the user Identity Provider. SAML assertions has three kind of statements
• Authentication statement It provides information about the type of method used for
authentication and time of the authentication for a successful operation.
• Attribute statement It provides user specific information of the authenticated user. Ser-
vice Provider can use this information for allowing or denying access to the service resources.
SAML assertion is consist of one or more statements and information relating to all common
statement content. The first of these information is SAML:Assertion - that provide namespace of
the assertion, version of SAML used and time of the creation of message. A SAML:Assertion tag
has following syntax
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
Version="2.0" IssueInstant="2019-11-05T09:22:05Z">
SAML:Assertion tag contains the information of the issuer inside SAML:Issuer tag. A example
of SAML:Issuer tag is as follow
<saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://wifi-auth-eid4u.polito.it/SP/metadata
</saml2:Issuer>
It also contains information about the subject inside SAML:Subject tag. It contains the name
identity associated with it inside the SAML:NameID. The attribute Format is used to specify the
format for the name identifier of the subject. It can specify different types of formats, such as
email address, the value of the subject field of the X.509 certificate.
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
3f7b3dcf-1674-4ecd-92c8-1544f346baf8
</saml:NameID>
</saml:Subject>
SAML:Assertion tag also contains SAML:Conditions tag which provide the conditions which
are used to validate the assertions. For example in the example below it provides that the
assertions are valid only if the time is in-between the notBefore and NotOnOrAfter time period.
<saml:Conditions
NotBefore="20019-11-05T09:17:05Z"
NotOnOrAfter="2019-11-05T09:27:05Z">
<saml:AudienceRestriction>
It also provide SAML:AuthnStatement tag which contains information about when and with
which mechanism subject is authenticated. An example is as following
19
2 – Background
<saml:AuthnStatement
AuthnInstant="2019-11-05T09:22:00Z"
SessionIndex="104e3435542aad34">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
The above example shows that the user is authenticated using password that was sent to the
Identity Provider using secure communication channel. Other mechanism that can be used for
authentication are
In addition assertions also provide additional information about the user form Identity Provider
to Service Provide in SAML:AttributeStatement tag. This transfer of extra information is a
powerful SAML feature that can be used for allowing access to the resources. These can be use
to provide profile information of the user, which can be used to create a local account of the
user or if required to provide consent of the usage of the information. For example to apply for
driving license it requires the age of the user to verify that user is above 16 and is eligible for
driving. These information can also be used to provide access to service resources depending on
the attribute. The Service Provider and Identity Provider need to agree on the attribute name
and values in the assertions.
<saml:AttributeStatement>
<saml:Attribute Name="uid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic">
<saml:AttributeValue xsi:type="xs:string">test</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="mail" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname
-format:basic">
<saml:AttributeValue xsi:type="xs:string">[email protected]</saml:
AttributeValue>
</saml:Attribute>
<saml:Attribute Name="eduPersonAffiliation" NameFormat="urn:oasis:names:tc:
SAML:2.0:attrname-format:basic">
<saml:AttributeValue xsi:type="xs:string">users</saml:AttributeValue>
<saml:AttributeValue xsi:type="xs:string">examplerole1</saml:
AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
Protocols:
SAML Protocols defines request/response protocols for SAML elements including assertions. It
also provides rules that SAML entities must follow in order to exchange messages. The following
protocols are defined in SAML 2.0
20
2 – Background
• Authentication request protocol This protocol is used to support web Browser SSO
Profile to establish a security context for the user at Service Provider. In this a (AuthnRe-
quest) message is issued from Service Provider to Identity Provider to create a (Response)
message containing one or more assertions pertaining to a principal.
• Single logout protocol This protocol is used to logout principal from all authenticated
sessions. The logout can be initiated by the principal or because of a session time-out from
Service Provider or Identity Provider.
• Assertion query and request protocol This provides a set of queries by which assertion
may be obtained. The Request form of this protocol defines how a relying party (SP) can
ask for an assertion to an asserting party (IdP) providing its assertion ID. The Query form
of this request provides how a relying party can ask for assertion on the basis of a reference,
subject or the statement type.
• Name identifier management protocol This provides the mechanism to change the
value or format of the the name identifier of the principal. It can be issued by a Service
Provider or a Identity Provider. This protocol can also be used to terminate an already
existing association of a name identifier between Service Provider and Identity Provider.
• Name identifier mapping protocol This provide the mechanism to map SAML name
identifier from one Service Provider to another Service Provider. This can be used to
provide interoperability between different Service Provider in an application integration
environment.
Bindings
SAML bindings provides in detail how the various SAML protocol messages can be transported
in the the lower network communication layer. These are the bindings provided by SAML 2.0
• HTTP redirect binding This provides a mechanism to transport SAML protocol messages
using HTTP redirect messages (302 status code response).
• HTTP POST binding This provides a mechanism to transport SAML protocol messages
using base64-encoded content in HTML form control.
• HTTP artefact binding This provides a mechanism to transport artefact using HTTP
protocol either using HTML form control or a query string in the URL from a sender to a
receiver.
• SAML SOAP binding This provides a mechanism to transport SAML protocol messages
using SOAP over HTTP.
• SAML URI binding This provides a mechanism to obtain a existing SAML assertion
resolving a URI.
21
2 – Background
Profiles
SAML Profiles define in details how the SAML assertion, protocol and bindings must be combined
for a particular scenario. The primary use case of SAML Profile is Web Browser SSO. These are
the Profiles provided in SAML 2.0
• Web browser SSO profile This Profile defines how Service Provider and Identity Provider
uses SAML protocol for authentication request, SAML response messages and assertions to
achieve single sign-on with standard web browser. It defines how these messages are used
in combination HTTP POST, HTTP Redirect and HTTP Artefact bindings.
• Enhanced Client and Proxy (ECP) profile This profile defines a specialised single
sign-on in which Reverse-SOAP (PAOS) and SOAP bindings are used by specialised clients
or gateway proxies.
• Identity provider discovery profile This Profile defines a way in which the Service
Provider can use the common domain cookies to check which of the Identity Providers are
already visited by a user. When a request is received from a user, Service Provider requests
the common domain cookie read service to check the Identity Providers previously visited.
• Single logout profile This Profile defines how Single Logout Protocol can be used using
HTTP Redirect, HTTP Post, SOAP and HTTP Artefact bindings.
• Assertion query/request profile This Profile defines how to use SAML Query and Re-
quest Protocol for SAML assertions over a synchronous binding, such as SOAP.
• Artefact resolution profile This Profile defines how Artefact Resolution Protocol can be
used to obtain a artefact over a synchronous binding, such as SOAP.
• Name identifier management profile This Profile defines how Name Identifier Map-
ping Protocol can be used with HTTP POST, HTTP Redirect, SOAP and HTTP Artefact
bindings.
• Name identifier mapping profile This Profile defines how Name Identifier Mapping
Protocol can be used over a synchronous binding, such as SOAP.
• SAML allows the claimed fact of a user consenting to certain operations (e.g. the act of
federation) to be expressed between providers. How, when or where such consent is obtained
is out of scope for SAML.
Just providing assertions from an asserting party to a relying party may not be adequate to ensure
a secure system. How does the relying party trust what is being asserted to it? In addition, what
prevents a “man-in-the-middle” attack that might grab assertions to be illicitly “replayed” at a
later date? A brief description of these mechanism are provided below.
SAML defines a number of security mechanisms to detect and protect against such attacks.
The primary mechanism is for the relying party and asserting party to have a pre-existing trust
relationship which typically relies on a Public Key Infrastructure (PKI). While use of a PKI is
not mandated by SAML, it is recommended.
Use of particular security mechanisms are described for each SAML binding. A general
overview of what is recommended is provided below:
• Where message integrity and message confidentiality are required, then HTTP over SSL 3.0
or TLS 1.0 is recommended.
• When a relying party requests an assertion from an asserting party, bi-lateral authentication
is required and the use of SSL 3.0 or TLS 1.0 using mutual authentication or authentication
via digital signatures is recommended.
• When a response message containing an assertion is delivered to a relying party via a user’s
web browser (for example using the HTTP POST binding), then to ensure message integrity,
it is mandated that the response message be digitally signed using XML Signature
2.4 Shibboleth
Shibboleth is a open source SAML implementation by Shibboleth Consortium. It provides the
development of a Shibboleth SP and IdP among others [23]. It provides authentication, authori-
sation and single sign-on services across a range of Identity Providers. It is composed of different
component: Identity Provider, Service Provider and Discovery Services (DS). These can be de-
ployed together or separately to provide specific functionality to an organisation. It supports
most of the profile defined by SAML 1.1 and SAML 2.0.
2.5 eIDAS
Since the start of XXI century European countries have developed digital identities for their
nationals such as Italian SPID [24], Portugal-Chave Mòvel Digital [25] and Spain-DNIe [26]. These
lead to a very diverse landscape of electronic identity management. Therefore to provide cross
border identification for European citizens, multiple initiative were stated to provide federated
identity management using existing electronic Identification (eID) systems.
STORK [27] and STORK 2.0 [28] projects showed that it is possible to create a electronic iden-
tity European infrastructure to provide electronic authentication and attribute management by
providing interoperability between existing national eID. The feasibility of these projects become
the base of the federated identity solution [29] in anticipation of the adoption of the Regulation
(EU)910/2014 [30], also called eIDAS Regulation. Which will be in force in all member states.
This regulation provides a framework to provides secure and trusted electronic identification across
European countries by providing interoperability between existing National eID. This creates a
European level trust network for electronic services across borders. This Regulation also ensures
that this electronic identification has the same legal status as traditional paper.
23
2 – Background
This federated identity solution was consisted of member states, each member state is respon-
sible to deploy a eIDAS Node to act as a Identity Provider for national eID scheme for any country.
To maintain the security and trustfulness of the network, a governmental institution is responsi-
ble for the implementation and deployment of the eIDAS Node. All the Service Provider in the
network are subscribed to the eIDAS Node of the country. Through this federated infrastructure
every citizen of a member state is able to consume services in another member state.
The key agenda of the eIDAS regulation was to provide a federated authentication system for
cross border authentication. This will allows the citizens of each member states to authenticate
themselves using their nation eID across all member states. Which will allow public and private
businesses to provide their services to all European citizens through a secure and trustworthy
network.
This will also provide a framework for legal authentication across borders of member states,
which has the same legal status as the traditional paper documentation. The eIDAS regulation
provide these three key elements:
• “It upgrades the legal framework of electronic signatures replacing, the existing eSignature
Directive. For instance, it allows you to “sig” with a mobile phone; it requires higher
accountability for security; and it provides clear and stronger rules for the supervision of
eSignature and related services.
• Through requiring mutual recognition between various national eID systems (different to
harmonisation or centralisation), the Regulation extends the capabilities - the opportunities
available with your existing eID - by making it functional across EU borders.
• Other trust services are included in the Regulation for the first time, meaning there will be a
clear legal framework and more safeguards through strong supervision services of electronic
seals, time stamping, electronic document acceptability, electronic delivery and website au-
thentication.” [31]
The eIDAS specification defines that eIDAS Node can act in two federated modes: eIDAS-
Connector and eIDAS-Service. All the Service Providers are subscribed to eIDAS-Connector
Node in the same country and all the Identity Providers are subscribed to eIDAS-Service Node of
that country. eIDAS-Connector Node will be responsible to request authentication across mem-
ber states and eIDAS-Service Node will be responsible to provide authentication across member
states. This interconnection of secure and trusted nodes across borders provides a trust network
for cross border authentication, which is shown in Figure 2.3.
24
2 – Background
Figure 2.3: eIDAS architecture for cross border authentication (source: IEEE access [32])
The infrastructure is based on SAML 2.0 and defines a set of profiles/bindings that must
be supported in order to implement network. Each Service Provider is subscribed to a Node-
Connector in that member state, each Node-Connector is connected to Node-Services of all mem-
ber state and each Node-Service is connected to Identity Providers in that member state. Iden-
tity Provider should support SAML profiles and bindings defined in the eIDAS specifications
to be compatible with other nodes present in the federated network. It can implement its own
mechanism for authentication and authorisation, but has to provide translation between SAML
assertions.
To enable interoperability between eID schemes of member states, a process known as “noti-
fication” is defined for formalising the approved eID schemes. Once the Member State meet all
the eIDAS security and quality requirement, it notifies its own eID scheme. Once the eID scheme
is officially added, the member states have to recognise it “no later than 12 months after the
publication to the Official Journal of the European Union” [33]. Figure 2.4 shows eID schemes
status of Member States.
Each entity involved in the eIDAS network publish a standardised signed SAML metadata file
to negotiate agreements between system entities about Identifiers, binding endpoints, certificates,
cryptography algorithms, security and privacy policies [35]. SAML metadata is part of the SAML
specification and it is closely related to eIDAS framework standard using SAML as format for
message exchange. It is supported by SAML implementation and libraries.
The communication between eIDAS entities is performed via user’s browser. To secure the com-
munication the SAML messages are protected with cryptography and transported using TLS [36]
on the transport layer.
If supported by user’s browser, eIDAS-Nodes must only use TLS version 1.2. Otherwise it can
use TLS version 1.1. It must use cipher suites that provide perfect forward secrecy. Recommending
cipher suites are provided in the Figure 2.5. eIDAS-Nodes also should not use TLS compression,
heartbeat extension [38], Session Renegotiation and truncated HMAC [39].
SAML is used for confidentiality, integrity of the information transferred and identification
of the communication endpoints. It uses authentication based on X.509 certificates for XML
Encryption and XML Signatures. In eIDAS, entities must sign the SAML request/response and
encrypt SAML assertion within the SAML response. For XML Encryption/Signature, SHA-2
algorithm must be used with minimum length of 256.
25
2 – Background
For XML Encryption a hybrid cryptography system is used. For each transmission a random
symmetric key (session key) is generated to encrypt SAML assertion via symmetric algorithm
and symmetric key is encrypted with the public key of the receiver entity. For Encryption of
SAML assertion entities must use one of the algorithm provided below
• http://www.w3.org/2009/xmlenc11#aes128-gcm
• http://www.w3.org/2009/xmlenc11#aes192-gcm
• http://www.w3.org/2009/xmlenc11#aes256-gcm
26
2 – Background
For key Encryption entities must use either key transport or key agreement mechanism. In
case of key agreement, the session key is encrypted using the public key of the receiver X.509
certificate. Otherwise a symmetric key pair is derived by means of a ECDH key agreement using
an ephemeral key pair and the public key of the receiver X.509 certificate. Then the derived key
is used to wrap the session key.
SAML messages and metadata are signed for verification of the entities involved in the communi-
cation. For the generation/verification of the signatures, one of the following algorithms provided
in the Table 2.1 must be used.
2.5.5 Attributes
eIDAS extended the SAML 2.0 format to hold the most common personal user attributes, e.g.
PersonIdentifier, CurrentFamilyName, CurrentGivenName, DateOfBirth, or even the marital
status, TaxReference and Nationality. Moreover, it also defined the authentication Level of
Assurance (LoA) level indicating the quality of authentication being requested. To establish
trust, the authentication methods used by the national eID systems were classified into three
LoA assurance classes (low, substantial, and high). The details of the LoA levels are provided
in Figure 2.6 [41]. To provide access to a service, an SP can request a certain LoA level in the
authentication request, which was sent to the IdP in charge of the actual authentication process
of the citizen. If the IdP authenticated the citizen with a method whose assurance level met the
requested LoA (or above), then the authentication response and the attributes were sent to the
SP, otherwise an error was generated and the transaction was stopped.
Note that most of these personal attributes had a simple structure, typically each attribute
had one value. A selection of some important attributes for natural persons used for cross-border
28
2 – Background
identification and authentication is presented in Table 2.2, while the complete set of attributes
defined in eIDAS is found at [40].
In the last couple of decades due to the rapid increase in the number of wireless devices, which lead
to many initiates to provide federated solution for wireless roaming. We will provide an overview
of the technologies that are related to the work done in this thesis and are already available.
2.6.1 eduroam
eduroam (education roaming) is a solution proposed by the TERENA Task Force on Mobility [43]
to provide a international roaming network. It would provide Internet access securely at academic
campuses across Europe to the users of National Research and Educational Networks (NRENs).
eduroam works as the authentication of a user is carried out at the home institution of the user
using home institution credentials remotely and authorisation to allow access to the resources is
managed by the visited institution by trusting the infrastructure.
29
2 – Background
Introduction
eduroam is a international roaming network to allow secure Internet access to the user in research
and higher education across academic campuses. To develop eduroam, TERENA has developed
requirement specifications for the infrastructure with the following characteristics [44]
• Ease of usability
The architecture that would be able to abide by these characteristics is based on a number of
technologies and agreements, which would provide the eduroam experience “open your laptop
and be online” [45]. These are defined by a set of technical and organisational requirements,
which should be agreed upon by each member of the eduroam Confederation (by signing and
following the European eduroam Confederation policy declaration) [46]. The crucial mechanism
underpinning the authentication and authorisation of eduroam involves [47]
• After successful authentication, proper authorisation of the user at Service Provider to allow
access to the network resources.
TERENA Task Force Mobility finalise 802.1X [48] authentication with a RADIUS (Remote Au-
thentication Dial-In User Service) [49] hierarchy based back-end for the development of eduroam
because of the fact that WPA and 802.11i security standards are all build on 802.1X. Even though
not all institutions supports it because of the their legacy equipment.
eduroam specification
The European eduroam service provides this facility as a confederated service, built hierarchically.
At the top level sits the confederation level service, which primarily provides the confederation
infrastructure required to grant network access to all participating members of the eduroam service
at any time. This confederation service is built upon the national roaming services, operated by
the national roaming operators (NROs) (in most cases, NRENs). National roaming services make
use of other entities, for example, campuses and regional facilities.
A hierarchy consists of RADIUS servers at the participating institutions, national RADIUS
servers and regional top-level RADIUS are used to transport authentication request form the
visited institution to the home institution of the user. Each institution included in the network
has a Radius server with the local database of the users of that institution. It is responsible to
provide the identification of its users.
Because the user’s credentials travel via a number of intermediate servers, not under the
control of the home institution of the user, it is important that the credentials are protected.
This requirement limits the types of authentication methods that can be used. Basically there are
two categories of useful authentication methods: those that use credentials in the form of some
public-key mechanism with certificates and those that use so-called tunnelled authentication.
Most institutions use a tunnelled authentication method that only requires server certificates.
These server certificates are used to set up a secure tunnel between the mobile device and the
authentication server, through which the user credentials are securely transported.
30
2 – Background
eduroam protocol
1. The authentication starts with a user with username “toto@institution b.be” form insti-
tution B trying to authenticate at institution A. From realm institution b.be (realm is
the home institution’s DNS domain name often of the form institution.tld (tld=top-level
domain; both country-code TLDs and generic TLDs are supported)) of the user, institution
b gets the institution of the user. The user is from another institution so it proxies to the
national RADIUS server.
2. The national Radius server checks that institution B is in another country, it will proxies it
to regional top-level Radius server.
3. The regional top-level Radius server will proxies it to the national Radius server of the
country in which institution B is located.
4. The national server has the list of the all the institutions participating in the eduroam
network in that country and forwards the credentials to the home institution B.
5. The Radius server of the institution B verifies the credentials and “acknowledge” of the
authentication travels back over the proxy-hierarchy to the visited institution A and the
user is granted access.
31
2 – Background
• eduroam Service Providers (SPs) An eduroam Service Provider’s (SP) RADIUS server
is responsible for forwarding requests from users visiting this SP to the responsible eduroam
IdP, either by forwarding the request along the hierarchy, or by discovering the responsible
server with DNS. Upon proper authentication of a user, the eduroam SP’s RADIUS server
may assign a VLAN to the user.
Small SP that do not require VLAN assignment do not necessarily need their own RADIUS
server, and can instead connect their network access elements to the respective FLRS.
In most cases, an educational institution participating in eduroam acts as an IdP and SP
at the same time.
32
2 – Background
2.6.2 govroam
govroam (government roaming) [50] is another solution by TERENA to provide roaming for
government agencies. It is developed on the same architecture as eduroam. It started from
Netherlands and is adopted by many countries. The operations of govroam are still managed
by TERENA worldwide. govroam is based on policies and principles provided by “NL Service
Policy” document [51], which has to be agreed and followed by all the organisations participating
in the roaming network.
govroam supports the trend toward multi-disciplinary activities across organisations, such as
the convergence of health and social care. It make possible connectivity to the Internet and avail-
ability of resources present at home organisation by connecting from the network of a visiting
organisation. The staff can access the govroam network provided by any participating organisa-
tion, using a single, securely-authenticated sign-on managed by their organisation.
govroam specification
govroam is developed by creating a trust relationship between the organisation present in the
network. NL policy document provides responsibilities of the entities involved in the federated
network, so all entities have a clear understanding of their responsibilities to provide there services
in a trusted manner. These responsibilities are also enforced by sanctions against organisations
that do not comply with these policies and results in suspension or ejection from the govroam
community.
govroam is a loose federation of related organisations. In order to work successfully, it depends
on an implicit tripartite trust relationship between an IdP, a SP and the RO (Roaming Operator).
The IdP advertises the govroam service to its users, and trusts that the SP will provide the service
in a manner consistent with expectations, recognising that its users will sometimes rely on govroam
services to the exclusion of making other arrangements. IdPs further trust that SPs will secure
their users’ credentials and respect the confidentiality of their users’ communications.
SPs trust that the user identities asserted by an IdP are verified members of their organisa-
tion in good standing, and that an IdP has a contractual hold over those users in the form of
an acceptable use policy or equivalent. SPs trust that IdPs will take action in terms of their
organisational policies should abuse be reported. Some SPs have legal or governance obligations
to retain information about the people they provide their service to, and trust that IdPs will do
so on their behalf in exchange for reducing the complexity of gaining access.
Both IdPs and SPs trust RO to both provide the necessary infrastructure and oversight, and
to respect the privacy of their respective users and their communications.
1. govroam Identity Provider (IdP) It is responsible for authenticating its own users
by checking the credentials against a local identity management system. IdPs assert the
identity of their users to govroam Service Providers when required. As they hold information
about the organisation a user is affiliated with, IdPs are often referred to as a user’s Home
Organisation or Home Institution and the terms are sometimes used interchangeably.
2. govroam Service Provider (SP) It maintains a network and provides Internet access,
usually wirelessly, to govroam visitors from other organisations once they are successfully
authenticated. For this reason, Service Providers are often and interchangeably referred to
as a user’s Visited Organisation or Visited Institution.
Government Roaming Nederland (the Foundation). In the course of their on-going collab-
oration, the Foundation has assigned the provision of some aspects of the govroam services
to SURFnet, who also performs operational tasks for the Roaming Operator of govroam.
Because other countries are also starting govroam services it is foreseen that, likewise the
eduroam structure, a future Roaming Confederation (RC) may bring together a number of
ROs serving a geographical region is. This is yet to be decided.
2.7.1 PacketFence
PacketFence [52] is an open source. trusted, free and full support tool for network access control
(NAC) solution. It provides the capability to create Captive Portal for registration and remedia-
tion. It also features a unified wired and wireless management, 802.1X support, layer-2 isolation
of problematic devices. It can be integrated with other network security applications [54] such as
Snort IDS and the Nesses vulnerability scanner to provide an effective secure network for small
to very large organisation network [53].
Enforcement mode
Packet fence provide both out-of-band and inline mode of deployment. Although out-of-line is
preferred because it allows to scale the solution geographically and is more resilient to failures.
When used with proper technology out-of-line mode can secure hundreds of switches and many
thousands nodes connected to them. On the other hand inline mode is the only solution for
unmanageable wired and wireless network. These two modes can also coexist very well together
in a network.
34
2 – Background
PacketFence provide authentication for Captive Portal with a number of mechanism which in-
cludes Microsoft Active Directory (AD) [55], OAuth2 Authentication, eduroam, SAML Authen-
tication and External API Authentication. The SAML based authentication can be extended to
provide eIDAS authentication.
2.7.2 NoDogSplash
NoDogSplash (NDS) [56] is a high performance with small footprint Captive Portal. By default
it provides a simple HTML splash page with restricted connectivity to Internet, along with that
it incorporates an API which can be integrated with sophisticated authentication applications.
NoDogSplash can control data rate on the basis of IP connection by integrating with Smart Queue
Management (SQM) configured separately, with NDS being fully compatible.
NDS is composed of two main functions, which allows to integrate different authentication
mechanism
NDS provide simple web-page to authenticate user using local credentials (email, password).
Along with that it also provides the tool to create customise sophisticated authentication mech-
anism for Captive Portal.
• Forward Authentication Service (FAS) FAS provides user validation by forwarding the
authenticating process to another application, which can be present on local area network
or on the the Internet .
• PreAuth It is a special case of FAS where authentication application is served by the NDS.
It doesn’t requires the full implementation of the FAS and is good for NDS with limited
memory resources.
• BinAuth It provides authentication using a POST authentication script or by running an
extension.
2.7.3 Zeroshell
Zeroshell is a Linux based distribution for servers and embedded devices to provide network
services [57]. The main features of Zeroshell are load balancing and failover of multiple Internet
connections, UMTS/HSDPA connections by using 3G modems, RADIUS server for providing
secure authentication and automatic management of encryption keys to wireless networks, Captive
Portal to support web login [58]. Description of some of the important features are given below
• Firewall Packet Filter and Stateful Packet Inspection (SPI) with filters applicable both in
routing and in bridging on all types of network interfaces.
36
Chapter 3
3.1 Introduction
Zeroshell is a pre-build Linux based distribution that aims to provide network services like firewall,
Dynamic DNS, VPN, RADIUS server, Captive Portal e.t.c. We selected Zeroshell [64] because of
it’s ability to create a captive portal to authenticate users against an Identity Provider (IdP) using
Shibboleth SAML 2.0, a DHCP server for dynamic allocation of IP address and easy management
of white-listing for eIDAS-nodes/IdP. Zeroshell provide two interfaces for configuration, a CLI
(command line interface) and a web interface. As the name says, all of it’s configuration can be
done using web interface.
Internet
Guest Network ( VLAN 20 )
eIDAS-Connector
eIDAS-Service IDP
Mobile
Wifi/Ethernet
Bridged Adapter
IP: 192.168.56.x
GW: 192.168.56.75
Host-only Adapter
vboxnet0
Interface 2
Interface 1 IP: 192.168.1.75
IP: 192.168.56.75
Zeroshell-SP
GW: 192.168.1.254
zeroshell.example.com:12081
his IdP. User will authenticate itself on IdP and it’s identity will sent to Zeroshell Shibboleth SP
through the eIDAS infrastructure. Shibboleth-SP will then allow access to Internet.
Zeroshell eIDAS-
User Browser eIDAS-Service IDP-Proxy IDP
eIDAS-SP Connector
Connects to AP and
access Internet
Send http request
Redirect to authentication
Send Authentication eIDAS samlRequest-2
Send Authentication eIDAS samlRequest-3
Authenticated
User can access
Internet
It will then show Captive Portal login page, we are using eIDAS framework for authentication for
which we clicked AAI (Authentication Authorisation Infrastructure) button. That will create eI-
DAS (AuthnRequest) for eIDAS-Connector and send it at URL https://connector-test-eid4u.
polito.it/EidasNode/ServiceProvider using user’s browser. It will pass following parameters
in the request.
country: IT
sendmethods: POST
postLocationUrl: https://connector-test-eid4u.polito.it/EidasNode/
ServiceProvider
redirectLocationUrl: https://connector-test-eid4u.polito.it/EidasNode/
ServiceProvider
RelayState: ss:mem:17419df78809c9d7b59631cf6edab9ad
SAMLRequest: <SAMLRequest>
eIDAS-connector receives eIDAS (AuthnRequest) and verifies with the metadata and certificate
present locally in eIDAS-Connector for Zeroshell eIDAS-SP. After successfully verification of
the request, it will create a eIDAS (AuthnRequest) for eIDAS-Service depending on the coun-
try parameter. In this case it will create a eIDAS (AuthnRequest) for Italian eIDAS-Service
38
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
eIDAS-Service receives eIDAS (AuthnRequest) and verifies with the metadata and certificates of
eIDAS-Connector. After successfully verification of the request, it will create a eIDAS (Au-
thnRequest) for IdP-Proxy because IdP-proxy is used in Italian hierarchy to create a bridge
between eIDAS-Service and IdP. It exchanges messages with eIDAS-Service in eIDAS message
format and with IdP in SPID message format. eIDAS-Service will send eIDAS (AuthnRequest) to
IdP-Proxy at URL https://idp-proxy-test-eid4u.polito.it/idpproxy/idpeurequest us-
ing user’s browser. It will pass following parameters in the request.
messageFormat: eidas
SAMLRequest: <SAMLRequest>
IdP-Proxy receives eIDAS (AuthnRequest) and verifies with the metadata and certificates of the
eIDAS-Service. After successful verification of the request, it ask for the selection of IdP provider.
We are using InfoCert IdP for the test and clicked on InfoCert button. IdP-Proxy will create a
SPID (AuthnRequest) for InfoCert IdP and send it at URL https://identitycl.infocert.it/
spid/samlsso using user’s browser. It will pass following parameters in the request.
RelayState: SPID_REQUEST_RELAYSTATE
SAMLRequest: <SAMLRequest>
InfoCert IdP receives SPID (AuthnRequest) and verifies with the metadata and certificates of
the IdP-Proxy. After successful verification of the request, it will ask for user credentials using
HTML page at URL https://identitycl.infocert.it/spid/basicauth.page. We provided
test credentials and clicked on “Entra con SPID” button. After verifying user’s credentials, it will
create a SPID (Response) for IdP-Proxy at URL https://idp-proxy-test-eid4u.polito.it/
idpproxy/spidresponse and send it using user’s browser. It will pass following parameters in
the response.
RelayState: SPID_REQUEST_RELAYSTATE
SAMLResponse: <SAMLResponse>
IdP-Proxy receives SPID (Response) and verifies it with IdP metadata. Next it gets attributes
element from the (Response). It will then create an eIDAS (Response) for eIDAS-Service and
send it at URL https://service-test-eid4u.polito.it/EidasNode/IdpResponse using user’s
browser. It will pass following parameters in the response.
username: username
SAMLResponse: <SAMLResponse>
eIDAS-Service receives eIDAS (Response) and verifies it with IdP-Proxy metadata. Next it de-
cipher the session key using its “encryption” private-key and decipher attributes element us-
ing the session key. It will then create an eIDAS (Response) for eIDAS-Connector at URL
https://connector-test-eid4u.polito.it/EidasNode/ColleagueResponse and send it using
user’s browser. It will pass following parameters in the response.
RelayState: MyRelayState
SAMLResponse: <SAMLResponse>
eIDAS-Connector receives eIDAS (Response) and verifies it with eIDAS-Service metadata. Next
it decipher the session key using its “encryption” private-key and decipher attributes element
using the session key. It will then create an eIDAS (Response) for Zeroshell eIDAS-SP at URL
https://zeroshell.example.com:12081/Shibboleth.sso/SAML2/POST and send it using user’s
browser. It will pass following parameters in the response.
39
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
RelayState: ss:mem:99e78aaa4f6d4e7ebc79bd47072c5d39
SAMLResponse: <SAMLResponse>
Zeroshell eIDAS-SP receives eIDAS (Response) and verifies it with eIDAS-Connector metadata.
Next it decipher the session key using its “encryption” private-key and decipher attributes element
using the session key. It will then authenticate the user and redirect to URL http://www.abc.com.
It will also create another window to manage the session of the user at https://zeroshell.
example.com:12081/cgi-bin/zscp.
For this set-up we used a Ubuntu machine with Zeroshell installed on a Virtual Box. The version
we use for Zeroshell is 3.9.0. First step was to download and install the virtual box. Then we
configure virtual box and installed Zeroshell. We created a new Virtual Machine for Zeroshell.
We provided 2048 MB of RAM and created a new hard drive of type VDI. We choose dynamic
allocation and provided 10 GB of space. We provided the Zeroshell ISO image downloaded from
the official Zeroshell website at URL https://zeroshell.org/download/. Then we created two
interfaces one Host-only Adapter for guest clients to connect to internal network and the other
40
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
one Bridged Adapter to connect to the Internet. We created the Host-only Adapter “vboxnet0”
with network 192.168.56.0/24. After that we started the VM and it takes to the CLI. The CLI
interface is shown in Figure 3.5.
By selecting the hard disk you want to save the profile, it will show the profile creation button. It
is shown in Figure 3.6, after clicking the button Zeroshell opens a new window for configuration
of the profile Figure 3.7. We used default parameters for most of the configuration. We select our
internal network interface in the Ethernet Interface and given IP address 192.168.56.75. After
that we have to configure network configuration in the profile. After creating the profile, select
the profile and click Activate button to activate the profile. This will reboot the Zeroshell and
requires to login again using the credentials.
We have two interfaces, one for the internal network and another for the Internet. On ETH00
we have our ip 192.168.56.75 on vboxnet0 and on ETH01 we add a IP on the Ethernet or WiFi
network. In our case we are using 192.168.1.75 to get to the Internet. It is shown in Figure 3.8.
Then we set the gateway to router IP which in our case is 192.168.1.1. We also enabled DHCP
on ETH00 interface to provide dynamic IP address to the guest users.
42
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
43
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
Zeroshell provides a basic “Web File Editor” for Shibboleth configuration. Which is accessible at
To enable Captive Portal to authenticate with eIDAS framework, it should send an eIDAS Au-
thnRequest to eIDAS-Connector. Changes to send an eIDAS AuthnRequest are discussed in this
section.
44
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
<ApplicationDefaults entityID="https://zeroshell.example.com:12081/shibboleth"
REMOTE_USER="FirstName PersonIdentifier DateOfBirth"
signing="true" encryption="true">
3.4.3 MetadataProvider
eIDAS SAML communication requires agreement between system entities regarding identifiers,
binding support and endpoints, certificates and keys, and so forth. A metadata specification
is useful for describing this information in a standardised way. To communicate with eIDAS-
Connector, Zeroshell needs to get it’s metadata/certificate and vice-versa. We provided eIDAS-
Connector’s metadata and certificate locally in MetadataProvider.
Two certificates are used for signing and one for encryption. These configuration are provided
in openssl.cnf configuration file. The content of the file is as following
[ eidas_sign ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature,nonRepudiation
[ eidas_enc ]
basicConstraints=critical,CA:FALSE
keyUsage=keyEncipherment
These certificates are generated using a shell script create cert.sh. The contents of the file
is provided below.
45
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
DIR="$(pwd)"
service="zeroshell"
SSLCONF="${DIR}/openssl.cnf"
_KEYLEN=${KEY_LEN:-4096}
_KEYTYPE=${KEY_TYPE:-"rsa"}
_DIGEST=${DIGEST:-"sha512"}
_BASE_NAME=${BASE_NAME:-"zeroshell"}
_SIGN="-saml-signature"
_ENC="-saml-encryption"
_METASIGN="-metadata-signature"
_C=${C:-"IT"}
_O=${O:-"None"}
_OU=${OU:-"None"}
_CN_PREFIX=${CN_PREFIX:-""}
#Sign
NAME=${_BASE_NAME}${_SIGN}
EXT="eidas_sign"
openssl req -new -nodes -config ${SSLCONF} \
-newkey ${_KEYTYPE}:${_KEYLEN} -passout file:${NAME}.key.pass \
-keyout ${NAME}.key -x509 -${_DIGEST} -days 3650 -out ${NAME}.pem \
-subj "/C=${_C}/O=${_O}/OU=${_OU}/CN=${_CN_PREFIX}SAML Signature" \
-extensions ${EXT}
#Metadata
NAME=${_BASE_NAME}${_METASIGN}
EXT="eidas_sign"
openssl req -new -nodes -config ${SSLCONF} \
-newkey ${_KEYTYPE}:${_KEYLEN} -passout file:${NAME}.key.pass \
-keyout ${NAME}.key -x509 -${_DIGEST} -days 3650 -out ${NAME}.pem \
-subj "/C=${_C}/O=${_O}/OU=${_OU}/CN=${_CN_PREFIX}Metadata Signature" \
-extensions ${EXT}
# ENC
NAME=${_BASE_NAME}${_ENC}
EXT="eidas_enc"
openssl req -new -nodes -config ${SSLCONF} \
-newkey ${_KEYTYPE}:${_KEYLEN} -passout file:${NAME}.key.pass \
-keyout ${NAME}.key -x509 -${_DIGEST} -days 3650 -out ${NAME}.pem \
-subj "/C=${_C}/O=${_O}/OU=${_OU}/CN=${_CN_PREFIX}SAML Encryption" \
-extensions ${EXT}
Cryptography certificates for signature and encryption of the eIDAS messages are added in
CredentialResolver element in shibboleth2.xml. We have two CredentialResolver elements, one
for encrypting the request and and second for signing the request.
The Node-Country provides the user’s country of origin. The eIDAS-Connector is responsible for
connecting to the respective eIDAS-Service depending on this. The Node country of the user is
send as parameter to the post request as in the case of Italian scenario it is send as country: IT.
46
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
3.4.8 White-listing
In general, since the user has not been authenticated yet, the captive portal deny all access
to Internet, But we need to configure the captive to allow access to eIDAS-nodes and IdP in
47
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
Internet, while all the other Internet traffic would not be allowed (until the user is successfully
authenticated). This problem is identified previously in the paper [65], to solve it we add them
manually in the“whitelist”, which is shown in Figure 3.12. Whitelist is accessible at
Captive Portal > Authentication > Shibboleth Authentication > Config > WAYF/IDP Whitelist
3. Citizen country selection. By default, Zeroshell does not allow to select a citizen country
where the user will be authenticated. When enabled with eIDAS, it is required to make
modification on Zeroshell SP side to allow to select the country in which the citizen will be
authenticated.
4. Rendering public the Zeroshell SP’s metadata. In the default installation, Zeroshell SP’s
metadata is statically configured on the IdP. When enabled with eIDAS, the eIDAS Connec-
tor requires a public URL from where the Zeroshell SP’s metadata would be downloaded.
However, since Zeroshell does not expose as a public URL its metadata this would again
require a modification in Zeroshell’ source code.
48
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
49
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
50
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
51
3 – Design and implementation of WiFi access with eIDAS through Zeroshell
52
Chapter 4
4.1 Introduction
This chapter focuses on the hardware based solution for the development of a captive portal to
authenticate guest users. This solution exploits the WiFi infrastructure of Politecnico di Torino
and extends it using eIDAS code for federated authentication. For that we developed an ad hoc
application Wifi-Auth eIDAS-SP to authenticate using eIDAS framework. Next we configured
hardware infrastructure consists of Cisco-WLC, Cisco AP 3700, HP Switch and Fortigate-60D to
provide Captive Portal functionality and use Wifi-Auth for authentication as shown in Figure 4.1.
This is the same infrastructure deployed in Politecnico di Torino, which makes it extremely easy
to deploy in production.
Internet
Mobile
eIDAS-Connector eIDAS-Service
IDP
AP Cisco 3700
Power Injector
Management Network ( VLAN 10 ) Public IP
VLAN 10 130.192.1.110
Cisco WLC
192.168.10.10
192.168.20.10
Figure 4.1: WiFi access test-bed setup with Polito wireless infrastructure
53
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
Our set-up includes a Wifi-Auth eIDAS-SP and Polito wireless infrastructure. Polito wireless
infrastructure consists of Cisco-WLC, Cisco-AP 3500 and Fortigate-60D. Wifi-Auth eIDAS-SP
provides authentication through eIDAS infrastructure. Cisco-WLC is used for managing authen-
ticated users, Captive Portal and separating network traffic. Fortigate-60D is used for firewall
policies and protecting the internal network. As shown in the Figure 4.2 we dedicated a separate
machine for the deployment of Wifi-Auth eIDAS-SP in the management network and use another
machine in the management network for configuring eIDAS-SP.
Internet
Mobile
eIDAS-Connector
IDP
eIDAS-Service
AP Cisco 3700
Cisco WLC
192.168.10.10
192.168.20.10
Figure 4.2: WiFi access test-bed setup with Wifi-Auth eIDAS-SP and Polito wireless infrastruc-
ture
Wifi-Auth eIDAS-
User Browser Cisco WLC eIDAS-Service IDP
eIDAS-SP Connector
Authenticate on WLC
User can access
Internet
using browser. eIDAS-Connector validates eIDAS-SP, verifies eIDAS (AuthnRequest), get user’s
country and other parameters from eIDAS (AuthnRequest). It then creates an eIDAS (Authn-
Request) for respective eIDAS-Service and sends using user’s browser. eIDAS-Service validates
eIDAS-Connector, verifies eIDAS (AuthnRequest), get parameters from eIDAS (AuthnRequest)
and creates an eIDAS (AuthnRequest) for IdP and sends using user’s browser. IdP validates
eIDAS-Service, verifies eIDAS (AuthnRequest), get parameters from eIDAS (AuthnRequest). It
then asks for user credentials and verifies user.
After successful verification IdP sends an eIDAS (Response) to eIDAS-Service with user’s
minimum data set. eIDAS-Service validates IdP, verifies eIDAS (Response), decipher eIDAS
attributes and creates an eIDAS (Response) and sends to the eIDAS-Connector using browser.
eIDAS-Connector validates eIDAS-Service, verifies eIDAS (Response), decipher eIDAS attributes
and creates an eIDAS (Response) and sends to the Wifi-Auth eIDAS-SP using browser. eIDAS-SP
validates eIDAS-Connector, verifies eIDAS (Response), decipher eIDAS attributes and gets user
data. It then connects to WLC using SSH and creates a guest user with user’s person identifier.
It then sends guest user credentials to WLC using a form from user’s browser. WLC checks the
request and authenticate the user. After authentication user can successfully use the internet.
In Italian scenario we have a specific case where we have another node IdP-Proxy between eIDAS-
Service and IdP. Instead of eIDAS-Service talking directly to IdP, it exchanges messages to IdP-
Proxy using eIDAS protocol and IdP-proxy exchange messages to IdP using SPID protocol. Re-
quest part of authentication flow for Italian scenario looks like this
1. Guest user starts the authentication process by connecting to the public eIDAS AP using
WiFi. Then the user tries to access the internet.
2. WLC detects that user is not authenticated and redirects to Wifi-Auth eIDAS-SP for au-
thentication.
55
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
Wifi-Auth eIDAS-
User Browser Cisco WLC eIDAS-Service IDP-Proxy IDP
eIDAS-SP Connector
Authenticate on WLC
User can access
Internet
3. eIDAS-SP asks for user’s country and creates a eIDAS (AuthnRequest) to get minimum data
set after authentication. It then sends request to the eIDAS-Connector using user’s browser.
4. eIDAS-Connector Node retrieves and validates eIDAS-SP metadata using its metadata sign-
ing certificate stored locally. Next it validates eIDAS (AuthnRequest) using eIDAS-SP “sign-
ing” public-key, which is provided by the metadata file. After validation, it gets user’s coun-
try and other parameters provided by the eIDAS (AuthnRequest). It then creates an eIDAS
(AuthnRequest) for respective eIDAS-Service and sends it using user’s browser.
5. eIDAS-Service Node retrieves and validates eIDAS-Connector metadata using its metadata
signing certificate stored locally. Next it validates eIDAS (AuthnRequest) using eIDAS-
Connector “signing” public-key, which is provided by the metadata file. After validation, it
gets parameters provided by the eIDAS (AuthnRequest). It then creates eIDAS (AuthnRe-
quest) for IdP-Proxy and sends it using user’s browser.
6. IdP-proxy retrieves and validates eIDAS-Service metadata using eIDAS-Service’s metadata
signing certificate stored locally. Next it validates eIDAS (AuthnRequest) using eIDAS-
Connector “signing” public-key, which is provided by the metadata file. After validation, it
gets parameters provided by the eIDAS (AuthnRequest). It then creates SPID (AuthnRe-
quest) for IdP and sends it using user’s browser.
7. IdP retrieves and validates IdP-Proxy metadata using IdP-Proxy’s metadata signing certifi-
cate stored locally. Next it validates SPID (AuthnRequest) using eIDAS-Connector “signing”
public-key, which is provided by the metadata file. After validation, it gets parameters pro-
vided by the SPID (AuthnRequest). It then asks for user credentials and authenticate user.
Response part for authentication flow for Italian scenario follows these steps
8. After successful authentication IdP creates an SPID (Response) for IdP-Proxy with user’s
minimum data set. Next IdP digitally signs the response with its private-key stored locally
and sends it to IdP-Proxy using user’s browser.
56
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
9. IdP-Proxy validates the SPID (Response) using IdP “signing” public-key, which is provided
by the metadata file. It then creates an eIDAS (Response) with user’s minimum data set.
Attribute information was packaged in a specific SAML2 Attribute element, which has been
defined in the SAML2 eIDAS profile. Then the eIDAS attributes element is encrypted by a
session key generated randomly and session key is encrypted by (asymmetric) “encryption”
public key of the eIDAS-Service Node, which is provided by the metadata file of eIDAS-
Service. Next the authentication response was digitally signed by the IdP-Proxy with its
private-key stored locally and sends to eIDAS-Service Node using user’s browser.
10. eIDAS-Service validates the eIDAS (Response) using IdP “signing” public-key, which is pro-
vided by the metadata file. Next it decipher session key using its (asymmetric) “encryption”
private-key and use session key to decipher the SAML2 (Response) encrypted element to get
the identification/attributes information. All the attributes were extracted from the SAML2
Assertion element, eIDAS-Service requests the user’s consent to forward his attributes for
authentication. If the consent was given, the eIDAS-Service creates a SAML2 (Response)
by encrypting SAML attributes using session key generated randomly and session key is en-
crypted by (asymmetric) “encryption” public key of the eIDAS-Connector Node. Next it is
digitally signed using its (asymmetric) “signing” private-key and sends to eIDAS-Connector
Node using user’s browser.
11. eIDAS-Connector validates the eIDAS (Response) using eIDAS-Service’s “signing” public-
key, which is provided by the metadata file. Next it decipher session key using its (asym-
metric) “encryption” private-key and use session key to decipher the SAML2 (Response) en-
crypted element to get the identification/attributes information. eIDAS-Connector encrypts
SAML attributes using session key generated randomly and session key is encrypted by
(asymmetric) “encryption” public key of the eIDAS-SP and creates a newly signed SAML2
(Response) using its (asymmetric) “signing” private-key and sends to eIDAS-SP using user’s
browser.
12. eIDAS-SP validates the eIDAS (Response) using eIDAS-Connector’s “signing” public-key,
which is provided by the metadata file. Next it decipher session key using its (asymmetric)
“encryption” private-key and use session key to decipher the SAML2 (Response) encrypted
element using its (asymmetric) “encryption” private-key to get the identification/attributes
information. It then connects to WLC using SSH and creates a guest user with user’s
PersonIdentifier. It then sends guest user credentials to WLC using a auto-submit form
using user’s browser.
13. WLC validates the request, authenticate the user and allow access to the internet.
1. As a Guest user, I starts the authentication process by connecting to the public eIDAS AP
using WiFi. Then I writes a http URL http://www.giornalone.it in the browser and
press enter. The browser tries to access the URL and sends a request on the internet.
2. The request gets from AP to WLC. A Captive Portal is implemented on WLC, it checks
if user is authenticated to access the internet. This is a new connection so user is not
authenticated and there is no record available in the WLC. WLC creates a http redirect
response and redirects to https://wifi-auth-eid4u.polito.it/SP/populateIndexPage
on Wifi-Auth eIDAS-SP for authentication.
[4]
switch_url: http://1.1.1.1/login.html
ap_mac: f4:cf:e2:4e:b7:80
client_mac: 5c:e0:c5:26:c7:e4
wlan: eIDAS
redirect: abc.co
57
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
3. The browser receives the request and sends a get request to SP/populateIndexPage On
Wifi-Auth eIDAS-SP. Wifi-Auth replies with a HTML page asking user to select eIDAS-
Connector (Test, Pre-Production, Production) and its country. For this test I am using the
Italian test credentials for completing the cycle. So I selected Test Connector and IT, then
I clicked “Login with eIDAS”. Which sends a POST request at SP/IndexPage.action with
all attributes.
[7]
nodeMetadataUrl:
https://connector-test-eid4u.polito.it/EidasNode/ConnectorResponderMetadata
eidasNameIdentifier: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
eidasloa: http://eidas.europa.eu/LoA/low
eidasloaCompareType: minimum
eidasSPType: public
spType: public
switch_url: http://1.1.1.1/login.html
citizenEidas: IT
http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier: http://eidas.
europa.eu/attributes/naturalperson/PersonIdentifier
http://eidas.europa.eu/attributes/naturalperson/PersonIdentifierType: true
http://eidas.europa.eu/attributes/naturalperson/CurrentFamilyName: http://eidas.
europa.eu/attributes/naturalperson/CurrentFamilyName
http://eidas.europa.eu/attributes/naturalperson/CurrentFamilyNameType: true
http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName: http://eidas.
europa.eu/attributes/naturalperson/CurrentGivenName
http://eidas.europa.eu/attributes/naturalperson/CurrentGivenNameType: true
http://eidas.europa.eu/attributes/naturalperson/DateOfBirth: http://eidas.europa.
eu/attributes/naturalperson/DateOfBirth
http://eidas.europa.eu/attributes/naturalperson/DateOfBirthType: true
After getting the attributes Wifi-Auth creates a digitally signed eIDAS (AuthnRequest)
for the selected eIDAS-Connector with its (asymmetric) “signing” private-key, which is
stored locally. It then send the (AuthnRequest) to eIDAS-Connector using user’s browser at
https://connector-test-eid4u.polito.it/EidasNode/ServiceProvider.
[9]
postLocationUrl: https://connector-test-eid4u.polito.it/EidasNode/
ServiceProvider
redirectLocationUrl: https://connector-test-eid4u.polito.it/EidasNode/
ServiceProvider
country: IT
RelayState: MyRelayState
SAMLRequest:
User Browser
eIDAS-Connector
[11] Send eIDAS samlRequest to
https://service-test-eid4u.polito.it/EidasNode/ColleagueRequest
eIDAS-Service
[15] create eIDAS samlRequest and redirect to IDP-Proxy
that it shows “Additional Information” requested if any, I clicked on the “Next” button.
Which sends a POST request with the attributes at EidasNode/CitizenConsent.
[14]
59
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
token: mduXkEmKDs__duKCFuQzdWfa90o$
requestId: _T4O6JgPLEUzsqKksRgNBIQJMWw0oZ-
aPipax93gy68_ZQ_5CSYMHyyaDpHxScuP
http://eidas.europa.eu/attributes/naturalperson/CurrentFamilyName: http
://eidas.europa.eu/attributes/naturalperson/CurrentFamilyName
http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName: http://
eidas.europa.eu/attributes/naturalperson/CurrentGivenName
http://eidas.europa.eu/attributes/naturalperson/DateOfBirth: http://eidas
.europa.eu/attributes/naturalperson/DateOfBirth
http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier: http://
eidas.europa.eu/attributes/naturalperson/PersonIdentifier
Which creates a digitally signed eIDAS (AuthnRequest) for IdP-Proxy with its (asymmetric)
“signing” private-key, which is stored locally and sends it using user’s browser at https:
//idp-proxy-test-eid4u.polito.it/idpproxy/idpeurequest.
[16]
SAMLRequest:
messageFormat: eidas
7. IdP receive the POST (AuthnRequest) and replies with HTML page at spid/basicauth.
page, which ask for user’s credential. I entered username, password and clicked “Log in
with SPID”. It sends a POST request with user’s credential at spid/api/basic.
[26]
consenso: true
hsfl8jt38e21boaugela8n15ah: 84d1eb5f-f1a6-4fe7-a185-226b009dd920
password: <password>
username: <username>
Which redirect to spid/consent.page and ask for the consent of the attributes requested.
I clicked on “Go on”, which sends a POST request at spid/api/consent. Which sends a
POST request at spid/samllead, then a GET request at spid/samlout, finally creates a
digitally signed SPID (Response) for IdP-Proxy.
[9]
RelayState: SPID_REQUEST_RELAYSTATE
SAMLResponse:
Which then creates an encrypted and digitally signed eIDAS (Response) for eIDAS-Connector
and sends it using user’s browser at https://connector-test-eid4u.polito.it/EidasNode/
ColleagueResponse.
[16]
SAMLResponse:
RelayState: MyRelayState
12. Wifi-Auth eIDAS-SP receives eIDAS (Response) at SP/ReturnPage. It checks and verifies
the authenticity of the response and eIDAS-Connector using metadata file. It then decipher
the eIDAS (Response) and sends the attributes at SP/populateReturnPage. Where it
connects to the WLC using SSH at the IP “192.168.10.10” and port “20”. It then creates
a guest user using Person Identifier attribute on WLC and replies with a HTML page
containing a auto-submit form with user credentials at http://1.1.1.1/login.html (IP
address of the WLC).
[22]
username: <username>
password: <password>
buttonClicked: 4
redirect_url: https://www.google.com/
13. WLC receives the POST request at urllogin.html. It validate credentials and authenticate
the user. It then redirects the user to http://www.giornalone.it because it is provided
in the “redirect url” parameter.
61
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
User Browser
[1] User authenticated and redirect to
https://identitycl.infocert.it/spid/consent.page
[4] Give consent and [3] Show attribute requested and ask for consent
press "Continua"
[5] Send POST request at
https://identitycl.infocert.it/spid/api/consent
[6] redirect to
https://identitycl.infocert.it/spid/samlout IDP
62
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
After authenticating using eIDAS framework Wifi-Auth connects to WLC using SSH connection
and creates a guest user. This is implemented using jsch library. It also uses slf4j library for
log purposes. Both of these libraries are added in pom file, which is present in the project directory
at location:
eidas > build > EIDAS-WIFI-AUTH > pom.xml
slf4j library is already included in the code, lines of code for adding jsch library is provide in
Figure 4.7.
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
All of the properties for creating user is present in a separate file to make the changes easier.
These are present in user.properties file. Which includes both the properties for creating the
guest user on WLAN and also for connecting to the WLC using SSH. Properties for creating user
are as following:
63
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
u_wlan=2
u_type=guest
u_lifetime=600
u_description=guest
tokenString=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
passwordString=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv
wxyz!@#$%^&*_+
sshIP=192.168.10.10
sshPort=22
sshUsername=admin.user
sshPassword=abcdef12345
Guest user is created after the authentication is completed in emReturnAction.java file. The
function is provided in Figure 4.9. It takes person identifier return from the authentication as
parameter for creating the user. First it create the command to create user using emcreateCMD
function. After that it creates a session using jsch library and set the configurations. After
connecting in SSH with WLC, it requires the admin to login first. So three commands are send
for creating the guest user: username as first, password as second and create user command as
third.
This function takes as parameter person identifier and use it to create username. It creates
random string of 10 characters using randomString() function and password of 15 characters using
randomPassword() function. It then creates username as a combination of random string and
person identifier (PersonIdentifier|xxxxxxxxx). Finally it creates the command for creating
guest user using the parameters and return it as a string to send to WLC. It is shown in Figure 4.10.
These functions implement the functionality to generate random String and password using char-
acters provided by tokenString and passwordString respectively. These are shown in Figure 4.11
After guest user is created its username and password is provided as a form to the returnPage.jsp.
Which is automatically submitted on load to WLC to authenticate automatically.
POST: http://1.1.1.1/login.html
buttonClicked: 4
password: FXotwYSW^qbEZIL
redirect_url: https://www.google.com/
username: IT/IT/INFC0001TESTEU_nSHrZAM61w
64
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
configuration.put("kex",
"diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1,
diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256");
configuration.put("StrictHostKeyChecking", "no");
try {
final JSch jsch = new JSch();
final Session session = jsch.getSession(sshUsername, sshIP,22);
session.setPassword(sshPassword);
session.setConfig(configuration);
session.connect();
if (!session.isConnected()) {
throw new RuntimeException("cannot connect session");
}
List<String> commands = new ArrayList<String>();
commands.add(sshUsername);
commands.add(sshPassword);
commands.add(sshCMD);
Channel channel=session.openChannel("shell");
channel.setOutputStream(System.out,true);
PrintStream shellStream = new PrintStream(channel.getOutputStream());
channel.connect();
for(String command: commands) {
shellStream.println(command);
shellStream.flush();
}
TimeUnit.MILLISECONDS.sleep(1000);
channel.disconnect();
session.disconnect();
} catch (Exception e) {
logger.error("ERROR");
System.err.println("ERROR: Connecting via shell to "+sshIP);
e.printStackTrace();
}
}
Figure 4.11: Function for generating string for username and password.
location
It will generate two files fullchain.pem and privkey.pem. We need to copy these files to
“certs/test/rev-proxy” with name rev-proxt-tls.pem and rev-proxt-tls.key respectively. Next
we need to delete certificates from “certs/test/wifi-auth” and restart the Wifi-Auth docker. On-
start it will check if certificates are present, if not it will generate all three certificates using the
certificate present inrev-proxy file.
Fortigate-60D provides all in one security solution for organisations. It allows to create a secure
network using firewall policies and interfaces.
66
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
Firewall interfaces
Interface either physical or virtual allow the flow of traffic between internal networks and internet.
For our specific set-up we are using two physical interfaces internal7 as internal network and
wan1 as external network (Internet). In internal7 we created two VLAN (Virtual LAN), one for
management network and other one for WiFi clients. Virtual LAN makes the flow of data isolated
at data link layer. This is to allow only users from management network to access configuration
interface.
Firewall policy
After creating the interfaces we need to specify firewall policies for communicating between inter-
faces. As shown in the Figure 4.13 we have created 5 policies.
• management2internet: This policy allow all devices in management network to access inter-
net.
• management2wifi clients: This policy allows all devices in management network to access
all devices in wifi clients network.
• wifi clients2internet: This policy allows all devices in wifi clients network to access internet.
• Implicit Deny: This policy deny all communication which is not allowed by any other policy.
Virtual IP
Fortigate is used as NAT for the communication between external and internal network. NAT is
the mapping of one IP to another IP address. When NAT is not used Fortigate call these Virtual
67
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
IP addresses IP. [59]. This allows the mapping of a public IP to an internal network IP. Wifi-Auth
eIDAS SP is present in the internal network, So it is not possible to access it from outside network.
To make it accessible from outside a virtual IP is created as shown in Figure 4.14. Which will
redirect connections from outside on port 443 ( HTTPS ) to Wifi-Auth server.
Address or address ranges are created to apply a specific security policy. We have created following
addresses as shown in Figure 4.13.
Address groups can also be created in Fortigate to make it easy to apply same policies on a group
of addresses or address ranges. In our case we have created a group of address to allow access
to Wifi-Auth eIDAS SP. All eIDAS eIDAS-Connector are added in this group to have access to
Wifi-Auth eIDAS SP metadata.
Cisco WLC provides a single solution for configuring, managing and supporting corporate wireless
network. It provides a centralised solution for providing network access in a large network with
68
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
multiple Access Point. It provides both CLI and web GUI for configuration. The CLI interface
is required to assign a IP to the WLC and some other important parameters. After that all
configuration can be done using web GUI. Web GUI is shown in the Figure 5.5. Web GUI
provides two interfaces Simple and Advanced. For our configuration we will be using Advanced
interface as it provides more control. For our set-up we created a WLAN ( Wireless LAN ) for
guest user to connect. To provide authentication to guest users we are using Captive Portal with
eIDAS SP authentication. Once user is authenticated it allows them to access internet.
ACL works as white-listing to filter traffic to enter or leave WLAN. For our set-up, before authen-
tication we need to only allow traffic to pass through to the entities involved in eIDAS network
e.g Wifi-Auth eIDAS SP, eIDAS Connector, IdP etc.
Once eIDAS authentication cycle is completed, it requires to submit a form on WLC with the
respective credentials to allow access to the internet. To make this request on HTTPS it requires
a valid certificate on WLC. If valid certificate is not present, it will show warning on submitting
the form. Once a valid certificate is downloaded on the WLC using Web GUI, the warning will
not we received. In our set-up we don’t have a valid certificate in this phase of project. So we have
disabled WebAuth SecureWeb to make this request on http for the testing phase. For production
environment, a valid SSL certificate is required and local DNS server needs to redirect to the
WLC. Which will allow to send authentication request to WLC over HTTPS.
continue
.expect(getLocation()).contains(’https://1.1.1.1/login.html’);
});
71
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
72
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
73
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
74
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
75
4 – Design of WiFi access with eIDAS through WiFi-Auth eIDAS-SP and Polito wireless infrastructure
76
Chapter 5
5.1.1 Architecture
5: maven
5.1: Dockerfile
6: tomcat
6.1: Dockerfile
7: docker-compose.yml
- We installed Docker and it’s pre-requisites following installations instruction provided in docker
documentation [66]. The steps we followed are given below
4. Updating the apt package index and installing latest docker engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
- Then we installed docker compose on the machine following from tutorial provided at https:
//docs.docker.com/compose/install/. Docker-Compose is a tool for defining and running
multi-container Docker applications. It use a YAML file to configure application’s services.
To access the code from repository we added SSH key to our GItLab. We created SSH key, which
we will use to authenticate and clone the repository.
5.2 Fortigate-60D
Fortigate-60D is acting as a firewall and NAT. Only authorised devices can access Wifi-Auth
eIDAS-SP from outside the network. It provides a web interface for configuration. To configure
network interface In the Figure 4.12 it shows the interfaces and their configuration.
In this section it will describe how to create and configure interfaces in Fortigate-60D using web
GUI. Configuration of interfaces can be find at:
5.2.3 Virtual IP
Creating a Virtual IP
5.3.1 WLAN
WLAN is a local area network of two or more devices using wireless communication. The config-
uration of WLAN is accessible from WLAN tab from advanced web interface.
81
5 – Installation and configuration of WiFi access with eIDAS-SP and Polito wireless infrastructure
1. Go to WLANs
8. Go to Security >Layer 3
11. Select specific ACL ( Access Control List ) from drop down in Preauthentication ACL.
Creating and editing ACL is explained later.
12. In Web Auth type select External(Re-direct to external server) from drop down.
ACL is created to allow guest user to access eIDAS nodes without authentication. We have to
add ACL for domain names for eIDAS SP, eIDAS Connector and eIDAS IdP. In our configuration
ACl we have allowed access to following domain names:
We have to add inbound and outbound rule for each domain name and our ACL looks like
this
Creating ACL
2. Press New
To allow traffic to flow between and IP, It is required to create two ACL rule per IP. One for
outbound traffic and other one for inbound traffic. Creating a rule to allow outbound traffic from
IP in ACL
1. Go to Management >HTTP-HTTPS
2. Select Disabled in drop down for WebAuth SecureWeb
84
Chapter 6
Results
The requirement for using the deployed service is to have a valid digital national eID from the
home country of the user. Depending on the specific country and IdP the authentication schema
can be a credential based (username, password), a mobile-based or a digital certificate based
authentication. The Wifi-Auth eIDAS-SP allows to authenticate using national eID of all the
countries part of eIDAS framework. Table 6.1 shows the list countries and their electronic identity
that has been tested successfully for our service.
Country eID
Italy SPID
Austria Buergerkarte
Spain DNIe
Portugal Chave Mòvel Digital
Slovenia National eID card
Table 6.1: eID of countries used for testing the Wifi-Auth eIDAS-SP
We also validated the deployed service and done a survey using the users (students, researchers,
entrepreneur) from Turin. We collected data about the IdP, browser and operating system used
by the user to access the service.
Table 6.2 shows the number of users who used specific IdP for authentication. During the
test we have to add the IdPs used by users in the ACL to allow access for authentication. In
most cases we add IP based ACL rule and in some cases we added URL based ACL. As in the
case of authentication using Poste IdP, it provides the ability to authenticate using credential-
based schema and mobile-based schema. In case of mobile based schema it uses an another service
separate from the Poste IdP, which provide authentication by scanning bar-code from Poste mobile
application. The service is hosted at URL secureholder.mobile.poste.it and attached with
multiple IP address. For that we have added in the URL based ACL.
Figure 6.1 shows in percentage the IdP used by users for authentication. 70% of the users
used Poste for the identification of the electronic identity. Sielte, Aruba and InfoCert are among
the other IdPs used by users to authenticate.
85
6 – Results
Figure 6.2(a) shows the operating system used by the users. 55% of the users used windows
operating system. A part from windows, others operating systems which were used are Ubuntu,
iOS and Android.
Figure 6.2(b) shows the statistics of the browser used for testing the service. Chrome and
Firefox were the browser used by most, 70% of the users one of them. A part from these two, the
browser which were used includes Chromium, Brave, Safari and Opera.
We also asked users to fill a survey after testing the service. In Figure 6.3 it shows that more
than 97% of the users says that they would want the inclusion of this initiative in other academic
services from European universities.
86
6 – Results
Figure 6.3: Survey Answer: After testing this pilot, I would like the inclusion of this initiative in
the academic services of other European universities.
87
Chapter 7
Conclusion
The thesis proposed a solution to provide WiFi access services to European citizens. It was
developed as a part of eID4u project: which wants to use the eIDAS infrastructure to provide
advanced cross-border services to the European academic environment. We developed two test-
beds for the WiFi access service, first using software based approach and second using eIDAS
code with Polito wireless infrastructure.
In first approach we used Zeroshell, a Linux based distribution for the development of our
service. We configured a WiFi access point to authenticate user’s using eIDAS federated in-
frastructure. The eIDAS federated infrastructure specifies a list of cryptography algorithms for
Signing and Encryption of SAML messages to ensure secure communication between endpoints in
eIDAS network as described in section 2.5.3. The service developed was able to authenticate using
eIDAS infrastructure but with the use of an older version of Encryption algorithm not specified
by eIDAS.
In second approach we used eIDAS code to develop Wifi-Auth eIDAS-SP with Polito wireless
infrastructure to provide WiFi access. We tested our service successfully using test credentials
from various countries including Italy, Spain, Slovenia, Portugal and Austria.
For validation of the solution, we set-up a test-bed in Politecnico di Torino by deploying
Wifi-Auth eIDAS-SP on a server and integrate it with the wireless infrastructure implemented in
Polito. More than Twenty users tested our service with their national eID using various Identity
Providers in the eIDAS infrastructure. After testing the pilot, more than 97 % of the users think
that the inclusion of this initiative in academic services of other European universities will be
useful.
The solution can be improved by providing a valid certificate for WLC (Wireless LAN Con-
troller) to secure the communication between user’s device and WLC after authentication. Also
we are adding entities involved in the eIDAS network for authentication manually in the Access
Control List (ACL), which also has a limit of maximum 64 IP based and 20 Domain Name based
rules.
Finally this service is a validation of the eIDAS infrastructure to provide electronic identifica-
tion across European countries with the same legal value as paper document. This infrastructure
could be used by organisations to provide their services to European citizens. It would unifies the
identification/verification process of the users for organisation.
88
Bibliography
[1] L.Florio, K.Wierenga, “Eduroam, providing mobility for roaming users”, Proceedings of the
EUNIS 2005 Conference, Manchester (England), June 2005
[2] eID4U, https://ec.europa.eu/inea/en/connecting-europe-facility/cef-telecom/
2017-eu-ia-0051
[3] D.Berbecaru, A.Lioy, C.Cameroni, “Electronic identification for universities: Building cross-
border services based on the eIDAS infrastructure”, Information (Switzerland), Vol. 10, No.
210, June 2019, DOI 10.3390/info10060210
[4] L.O’Gorman, “Comparing passwords, tokens, and biometrics for user authentication”, Pro-
ceedings of the IEEE, Vol. 91, No. 12, December 2003, pp. 2021-2040
[5] J.Reschke, “The ‘Basic’ HTTP Authentication Scheme”, Internet Requests for Comments,
RFC-7617, September 2015, DOI 10.17487/RFC7617
[6] S.M.Bellovin, M.Merritt, “Encrypted key exchange: Password-based protocols secure against
dictionary attacks”, In Proceedings 1992 IEEE Computer Society Symposium on Research
in Security and Privacy, May 1992, pp. 72-84
[7] R.M.Needham, M.D.Schroeder, “Using encryption for authentication in large networks of
computers”, Communications of the ACM, Vol. 21, No. 12, December 1978, pp. 993-999 DOI
10.1145/359657.359659
[8] J.Clark, J.L.Jacob, “Using encryption for authentication in large networks of computers”,
December 1997
[9] R.Housley, W.Polk, W.Ford, D.Solo, “Internet X.509 Public Key Infrastructure Cer-
tificate and Certificate Revocation List (CRL) Profile”, RFC-3280, April 2002, DOI
10.17487/RFC3280
[10] W.Diffie, M.E.Hellman, “New directions in cryptography”, IEEE transactions on Information
Theory, Vol. 21, No. 6, November 1976, pp. 644-654
[11] R.L.Rivest, A.Shamir, L.Adleman, “A method for obtaining digital signatures and public-key
cryptosystems”, Communications of the ACM, Vol. 21, No. 2, February 1978, pp. 120-126
[12] S.Chokhani, W.Ford, R.Sabett, C.Merrill, S.Wu, “Public Key Infrastructure Certificate Pol-
icy and Certification Practices Framework”, Internet Engineering Task Force (IETF), RFC-
2527, March 1999, DOI 10.17487/RFC2527
[13] J.L.Camp, “Digital identity”, IEEE Technology and society Magazine, October 2004, pp.
34-41
[14] Y.Cao, L.Yang, “A survey of identity management technology”, 2010 IEEE International
Conference on Information Theory and Information Security, December 2010, pp. 287-293
[15] Security Assertion Markup Language (SAML) V2.0 Technical Overview, http://docs.
oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html
[16] S.Cantor, J.Moreh, R.Philpott, E.Maler, “Metadata for the OASIS Security Asser-
tion Markup Language (SAML) V2.0”, OASIS Standard, March 2005, http://docs.
oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf
[17] T.Bray, J.Paoli, CM.Sperberg-McQueen, E.Maler, F.Yergeau, “Extensible markup language
(XML) 1.0”, February 1998, http://www.renderx.com/~renderx/Demos/fo2html/xml.pdf
[18] D.Eastlake, J.Reagle, D.Solo, F.Hirsch, M.Nyström, T.Roessler, K.Yiu, “XML Signa-
ture Syntax and Processing”, W3C Recommendation, April 2013, https://www.w3.org/
TR/xmldsig-core/
[19] D.Eastlake, J.Reagle, F.Hirsch, T.Roessler, “XML Encryption Syntax and Processing”, W3C
Recommendation, April 2013, https://www.w3.org/TR/xmlenc-core1/
89
Bibliography
91
Appendix A
eIDAS Request
1 <saml2p:AuthnRequest
2 xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
3 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4 xmlns:eidas="http://eidas.europa.eu/saml-extensions"
5 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
6 AssertionConsumerServiceIndex="1"
7 Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
8 Destination="https://connector-test-eid4u.polito.it/EidasNode/
ServiceProvider"
9 ForceAuthn="true" ID="_ca4107656fd18b527ae2ebeffeae4596" IsPassive="false"
10 IssueInstant="2019-12-05T11:59:34Z" ProviderName="zeroshell-SP" Version="2.0
">
11 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
12 https://zeroshell.example.com:12081/shibboleth</saml2:Issuer>
13 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
14 <ds:SignedInfo>
15 <ds:CanonicalizationMethod
16 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
17 <ds:SignatureMethod
18 Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512" />
19 <ds:Reference URI="#_ca4107656fd18b527ae2ebeffeae4596">
20 <ds:Transforms>
21 <ds:Transform
22 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
23 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
24 </ds:Transforms>
25 <ds:DigestMethod
26 Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384" />
27 <ds:DigestValue>
28 +3fzna29LgIJGdu7tNSRSbatyvFtZImrXecEiuTVOApkw4lW3ltKqsy9QN77bjbI
29 </ds:DigestValue>
30 </ds:Reference>
92
A – SAML message flow
31 </ds:SignedInfo>
32 <ds:SignatureValue>
33 oFK2UCgSCMHOw64OCn3frpIqjEJQN/T4a2QydHfDkD4P8u+0PQGwBvjEj0fA==
34 </ds:SignatureValue>
35 <ds:KeyInfo>
36 <ds:KeyName>SAML Signature</ds:KeyName>
37 <ds:X509Data>
38 <ds:X509SubjectName>CN=SAML Signature,OU=None,O=None,C=IT
39 </ds:X509SubjectName>
40 <ds:X509Certificate>
41 MIIDKDCCAhCgAwIBAgIJAI57OE1syoDFMA0GCSqbhHSxZlwAzTyHoZfo=
42 </ds:X509Certificate>
43 </ds:X509Data>
44 </ds:KeyInfo>
45 </ds:Signature>
46 <saml2p:Extensions>
47 <eidas:SPType xmlns:eidas="http://eidas.europa.eu/saml-extensions">public
48 </eidas:SPType>
49 <eidas:RequestedAttributes
50 xmlns:eidas="http://eidas.europa.eu/saml-extensions">
51 <eidas:RequestedAttribute FriendlyName="FamilyName"
52 Name="http://eidas.europa.eu/attributes/naturalperson/
CurrentFamilyName"
53 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
54 isRequired="true" />
55 <eidas:RequestedAttribute FriendlyName="FirstName"
56 Name="http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName
"
57 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
58 isRequired="true" />
59 <eidas:RequestedAttribute FriendlyName="DateOfBirth"
60 Name="http://eidas.europa.eu/attributes/naturalperson/DateOfBirth"
61 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
62 isRequired="true" />
63 <eidas:RequestedAttribute FriendlyName="PersonIdentifier"
64 Name="http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier
"
65 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
66 isRequired="true" />
67 </eidas:RequestedAttributes>
68 </saml2p:Extensions>
69 <saml2p:NameIDPolicy AllowCreate="true"
70 Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
71 <saml2p:RequestedAuthnContext Comparison="minimum">
72 <saml2:AuthnContextClassRef>http://eidas.europa.eu/LoA/low
73 </saml2:AuthnContextClassRef>
74 </saml2p:RequestedAuthnContext>
75 </saml2p:AuthnRequest>
eIDAS Request
93
A – SAML message flow
1 <saml2p:AuthnRequest
2 xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
3 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4 xmlns:eidas="http://eidas.europa.eu/saml-extensions"
5 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
6 Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
7 Destination="https://service-test-eid4u.polito.it/EidasNode/ColleagueRequest
"
8 ForceAuthn="true"
9 ID="_FjbjwldU1NU1AhQy62czTmiZXGC4xveAXQrkxQA86i8bI6OFoY2a02CAfmw_T8E"
10 IsPassive="false" IssueInstant="2019-12-05T11:59:34.520Z"
11 ProviderName="zeroshell-SP" Version="2.0">
12 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
13 https://connector-test-eid4u.polito.it/EidasNode/ConnectorMetadata
14 </saml2:Issuer>
15 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
16 <ds:SignedInfo>
17 <ds:CanonicalizationMethod
18 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
19 <ds:SignatureMethod
20 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
21 <ds:Reference
22 URI="#_FjbjwldU1NU1AhQy62czTmiZXGC4xveAXQrkxQA86i8bI6OFoY2a02CAfmw_T8E
">
23 <ds:Transforms>
24 <ds:Transform
25 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
26 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
27 </ds:Transforms>
28 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
29 <ds:DigestValue>
30 n4yqJJ2dCk9gsIS90IHKYXVGjENpxsCxPtoDKFBJxYllmNcTEtbgg==
31 </ds:DigestValue>
32 </ds:Reference>
33 </ds:SignedInfo>
34 <ds:SignatureValue>
35 qH1dNUk3y1YXQu8pqSI8Dsc+UhTXv6qg7IrJsYT9eEPWqTwrv/wsOs59x6tIT
36 </ds:SignatureValue>
37 <ds:KeyInfo>
38 <ds:X509Data>
39 <ds:X509Certificate>
40 MIICkTCCAhegAwIBAgIJAMIxa5E225l8LbVTpYnHEB8ORHag==
41 </ds:X509Certificate>
42 </ds:X509Data>
43 </ds:KeyInfo>
44 </ds:Signature>
45 <saml2p:Extensions>
46 <eidas:RequestedAttributes>
47 <eidas:RequestedAttribute FriendlyName="FamilyName"
48 Name="http://eidas.europa.eu/attributes/naturalperson/
CurrentFamilyName"
49 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
50 isRequired="true" />
51 <eidas:RequestedAttribute FriendlyName="FirstName"
94
A – SAML message flow
52 Name="http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName
"
53 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
54 isRequired="true" />
55 <eidas:RequestedAttribute FriendlyName="DateOfBirth"
56 Name="http://eidas.europa.eu/attributes/naturalperson/DateOfBirth"
57 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
58 isRequired="true" />
59 <eidas:RequestedAttribute FriendlyName="PersonIdentifier"
60 Name="http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier
"
61 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
62 isRequired="true" />
63 </eidas:RequestedAttributes>
64 </saml2p:Extensions>
65 <saml2p:NameIDPolicy AllowCreate="true"
66 Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
67 <saml2p:RequestedAuthnContext Comparison="minimum">
68 <saml2:AuthnContextClassRef>http://eidas.europa.eu/LoA/low
69 </saml2:AuthnContextClassRef>
70 </saml2p:RequestedAuthnContext>
71 </saml2p:AuthnRequest>
eIDAS Request
1 <saml2p:AuthnRequest
2 xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
3 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4 xmlns:eidas="http://eidas.europa.eu/saml-extensions"
5 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
6 Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
7 Destination="https://idp-proxy-test-eid4u.polito.it/idpproxy/idpeurequest"
8 ForceAuthn="true"
9 ID="_.EZpVuMOZd7ZnGsMDB5TpyVfoCI5-tsP.Cylt-4gjHrE1gpMTnp6jpHB2M0zT5g"
10 IsPassive="false" IssueInstant="2019-12-05T11:59:40.046Z"
11 ProviderName="zeroshell-SP" Version="2.0">
12 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
13 https://service-test-eid4u.polito.it/EidasNode/ServiceRequesterMetadata
14 </saml2:Issuer>
15 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
16 <ds:SignedInfo>
17 <ds:CanonicalizationMethod
18 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
19 <ds:SignatureMethod
20 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
21 <ds:Reference
22 URI="#_.EZpVuMOZd7ZnGsMDB5TpyVfoCI5-tsP.Cylt-4gjHrE1gpMTnp6jpHB2M0zT5g
">
23 <ds:Transforms>
24 <ds:Transform
95
A – SAML message flow
25 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
26 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
27 </ds:Transforms>
28 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
29 <ds:DigestValue>
30 TJfCtQFcaBB2+VhTkk9g4L57fRHsB54qfP5pGAACWhZ+UboAmie5Jq8MMQ==
31 </ds:DigestValue>
32 </ds:Reference>
33 </ds:SignedInfo>
34 <ds:SignatureValue>
35 3817n/10nMJOmETI5xoDtmkFGoibnRb5cSV4OxNxj5rzYBKeEf4ntHa6VzWpAS0ThIYfGgK
36 </ds:SignatureValue>
37 <ds:KeyInfo>
38 <ds:X509Data>
39 <ds:X509Certificate>
40 MIICkjCCAhmgAwIBAgIJAPpljjIeOUbmhqZhWe5szL0E=</ds:X509Certificate>
41 </ds:X509Data>
42 </ds:KeyInfo>
43 </ds:Signature>
44 <saml2p:Extensions>
45 <eidas:SPType>public</eidas:SPType>
46 <eidas:RequestedAttributes>
47 <eidas:RequestedAttribute FriendlyName="FamilyName"
48 Name="http://eidas.europa.eu/attributes/naturalperson/
CurrentFamilyName"
49 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
50 isRequired="true" />
51 <eidas:RequestedAttribute FriendlyName="FirstName"
52 Name="http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName
"
53 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
54 isRequired="true" />
55 <eidas:RequestedAttribute FriendlyName="DateOfBirth"
56 Name="http://eidas.europa.eu/attributes/naturalperson/DateOfBirth"
57 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
58 isRequired="true" />
59 <eidas:RequestedAttribute FriendlyName="PersonIdentifier"
60 Name="http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier
"
61 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
62 isRequired="true" />
63 </eidas:RequestedAttributes>
64 </saml2p:Extensions>
65 <saml2p:NameIDPolicy AllowCreate="true"
66 Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
67 <saml2p:RequestedAuthnContext Comparison="minimum">
68 <saml2:AuthnContextClassRef>http://eidas.europa.eu/LoA/low
69 </saml2:AuthnContextClassRef>
70 </saml2p:RequestedAuthnContext>
71 </saml2p:AuthnRequest>
96
A – SAML message flow
eIDAS Request
1 <saml2p:AuthnRequest
2 xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
3 AssertionConsumerServiceIndex="0" AttributeConsumingServiceIndex="1"
4 Destination="https://identitycl.infocert.it" ForceAuthn="true"
5 ID="_8584766c-8a1a-4b6b-9e8c-9ef2ec7a0f69"
6 IssueInstant="2019-12-05T11:59:45.137Z" Version="2.0">
7 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
8 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
9 NameQualifier="https://idp-proxy.test.eid.gov.it/idpproxy">
10 https://idp-proxy-test-eid4u.polito.it/idpproxy</saml2:Issuer>
11 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
12 <ds:SignedInfo>
13 <ds:CanonicalizationMethod
14 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
15 <ds:SignatureMethod
16 Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
17 <ds:Reference URI="#_8584766c-8a1a-4b6b-9e8c-9ef2ec7a0f69">
18 <ds:Transforms>
19 <ds:Transform
20 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
21 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
22 </ds:Transforms>
23 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /
>
24 <ds:DigestValue>rFF8heVddt/9QPdycK77aFDpxOZGslAgWXdrGj7ON+g=
25 </ds:DigestValue>
26 </ds:Reference>
27 </ds:SignedInfo>
28 <ds:SignatureValue>
29 EfltmO8NV5/8gUrqPC7mqKUnYFMtBJ+RJkEpdsnKHqlku39Z1HjaFeoDsNwp6yWcdCfiw==
30 </ds:SignatureValue>
31 <ds:KeyInfo>
32 <ds:X509Data>
33 <ds:X509Certificate>
34 MIIDcDCCAligAwIBAgIJAPTLdfHNBxl5ZkMvG3fs/xk=
35 </ds:X509Certificate>
36 </ds:X509Data>
37 </ds:KeyInfo>
38 </ds:Signature>
39 <saml2p:NameIDPolicy
40 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" />
41 <saml2p:RequestedAuthnContext Comparison="minimum">
42 <saml2:AuthnContextClassRef
43 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
44 https://www.spid.gov.it/SpidL1</saml2:AuthnContextClassRef>
45 </saml2p:RequestedAuthnContext>
46 </saml2p:AuthnRequest>
97
A – SAML message flow
eIDAS Response
1 <saml2p:Response
2 xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
3 Destination="https://idp-proxy-test-eid4u.polito.it/idpproxy/spidresponse"
4 ID="_3c8e40824598082a3ebe4de11cff5dbf"
5 InResponseTo="_8584766c-8a1a-4b6b-9e8c-9ef2ec7a0f69"
6 IssueInstant="2019-12-05T11:59:51.529Z" Version="2.0">
7 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
8 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
9 https://identitycl.infocert.it</saml2:Issuer>
10 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
11 <SignedInfo>
12 <CanonicalizationMethod
13 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
14 <SignatureMethod
15 Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
16 <Reference URI="#_3c8e40824598082a3ebe4de11cff5dbf">
17 <Transforms>
18 <Transform
19 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
20 <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
21 </Transforms>
22 <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
23 <DigestValue>S6/v6uUp3vXajKbzKIqLMrAKkEh938ybfCUfd1VDG2Y=</DigestValue
>
24 </Reference>
25 </SignedInfo>
26 <SignatureValue>
27 ZSNMYM4gQzWbAHRisWhSiDLQswkX9X6bjnv8++6t0JVfapDizNy8zIVSH8UBtg==
28 </SignatureValue>
29 <KeyInfo>
30 <X509Data>
31 <X509Certificate>
32 MIIGbjCCBVagAwIBAgIDFI91MA0GCSqGSIb3DQEBCwUAMIGG3pdz+AzeNQ92mtk
33 </X509Certificate>
34 </X509Data>
35 </KeyInfo>
36 </Signature>
37 <saml2p:Status>
38 <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
39 </saml2p:Status>
40 <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
41 ID="_9c2c3e33ffaec0f91368fadae2b18286"
42 IssueInstant="2019-12-05T11:59:51.529Z" Version="2.0">
43 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
44 https://identitycl.infocert.it</saml2:Issuer>
45 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
46 <SignedInfo>
47 <CanonicalizationMethod
48 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
49 <SignatureMethod
50 Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
98
A – SAML message flow
51 <Reference URI="#_9c2c3e33ffaec0f91368fadae2b18286">
52 <Transforms>
53 <Transform
54 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"
/>
55 <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
56 </Transforms>
57 <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
58 <DigestValue>KYYVLvoNHl6Sbdr5ma1QHt5pkZOHwFy6CERRM7oC5wI=
59 </DigestValue>
60 </Reference>
61 </SignedInfo>
62 <SignatureValue>
63 DLBlEU1apuSaktgCG4p1YUP6Hor8x72997KuVXEU1/c6stX91O9I8hU1mZcD1ysw==
64 </SignatureValue>
65 <KeyInfo>
66 <X509Data>
67 <X509Certificate>
68 MIIGbjCCBVagAwIBAgIDFI91MA0GCSqGSIb3DQEB+AzeNQ92mtk
69 </X509Certificate>
70 </X509Data>
71 </KeyInfo>
72 </Signature>
73 <saml2:Subject>
74 <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-
format:transient"
75 NameQualifier="https://identitycl.infocert.it">
76 _9bc06745b840b6844dc1567fa52dd4ca</saml2:NameID>
77 <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer
">
78 <saml2:SubjectConfirmationData
79 InResponseTo="_8584766c-8a1a-4b6b-9e8c-9ef2ec7a0f69"
80 NotOnOrAfter="2019-12-05T12:00:21.529Z"
81 Recipient="https://idp-proxy-test-eid4u.polito.it/idpproxy/
spidresponse" />
82 </saml2:SubjectConfirmation>
83 </saml2:Subject>
84 <saml2:Conditions NotBefore="2019-12-05T11:59:50.529Z"
85 NotOnOrAfter="2019-12-05T12:00:21.529Z">
86 <saml2:AudienceRestriction>
87 <saml2:Audience>https://idp-proxy-test-eid4u.polito.it/idpproxy
88 </saml2:Audience>
89 </saml2:AudienceRestriction>
90 </saml2:Conditions>
91 <saml2:AuthnStatement AuthnInstant="2019-12-05T11:59:51.529Z"
92 SessionIndex="_9e00984bef4aa4d02f8ba5f6687d3143"
93 SessionNotOnOrAfter="2019-12-05T12:29:51.529Z">
94 <saml2:AuthnContext>
95 <saml2:AuthnContextClassRef>https://www.spid.gov.it/SpidL1
96 </saml2:AuthnContextClassRef>
97 </saml2:AuthnContext>
98 </saml2:AuthnStatement>
99 <saml2:AttributeStatement>
100 <saml2:Attribute FriendlyName="Codice identificativo SPID"
101 Name="spidCode">
102 <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
103 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
99
A – SAML message flow
104 xsi:type="xs:string">INFC0001TESTEU</saml2:AttributeValue>
105 </saml2:Attribute>
106 <saml2:Attribute FriendlyName="Nome" Name="name">
107 <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
108 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
109 xsi:type="xs:string">Arianna</saml2:AttributeValue>
110 </saml2:Attribute>
111 <saml2:Attribute FriendlyName="Cognome" Name="familyName">
112 <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
113 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
114 xsi:type="xs:string">Garbini</saml2:AttributeValue>
115 </saml2:Attribute>
116 <saml2:Attribute FriendlyName="Data di nascita" Name="dateOfBirth">
117 <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
118 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
119 xsi:type="xs:date">1968-05-22</saml2:AttributeValue>
120 </saml2:Attribute>
121 </saml2:AttributeStatement>
122 </saml2:Assertion>
123 </saml2p:Response>
eIDAS Response
1 <saml2p:Response
2 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
3 xmlns:eidas="http://eidas.europa.eu/attributes/naturalperson"
4 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
5 xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
6 Consent="urn:oasis:names:tc:SAML:2.0:consent:obtained"
7 Destination="https://service-test-eid4u.polito.it/EidasNode/IdpResponse"
8 ID="_ZQzG0YhpTqMUJbWTxsQ33h8KuZHpL6oapTXjVOkh282Rb1vKAuiM1bcyp5ed2T8"
9 InResponseTo="_.EZpVuMOZd7ZnGsMDB5TpyVfoCI5-tsP.Cylt-4
gjHrE1gpMTnp6jpHB2M0zT5g"
10 IssueInstant="2019-12-05T11:59:52.038Z" Version="2.0">
11 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
12 https://idp-proxy-test-eid4u.polito.it/idpproxy/idpeumetadata</
saml2:Issuer>
13 <ds:Signature>
14 <ds:SignedInfo>
15 <ds:CanonicalizationMethod
16 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
17 <ds:SignatureMethod
18 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
19 <ds:Reference
20 URI="#_ZQzG0YhpTqMUJbWTxsQ33h8KuZHpL6oapTXjVOkh282Rb1vKAuiM1bcyp5ed2T8
">
21 <ds:Transforms>
22 <ds:Transform
23 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
24 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
100
A – SAML message flow
25 </ds:Transforms>
26 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
27 <ds:DigestValue>
28 lRodIi87qEvmZRIOYsd24hojAOFBM4Ki+DY6Y1o9RVKXerEHOPHOuUv3Lw==
29 </ds:DigestValue>
30 </ds:Reference>
31 </ds:SignedInfo>
32 <ds:SignatureValue>
33 UalcLx/Pw8BgbsZrM7m2Da+Cfedd7iS3ah2Y1Lq57NTF13/6gNgR4BO9o
34 </ds:SignatureValue>
35 <ds:KeyInfo>
36 <ds:X509Data>
37 <ds:X509Certificate>
38 MIICKzCCAbKgAwIBAgIULN+lE5fV1h5DCYZIUA/X1jBO4NKgd5LacxXfSAA==
39 </ds:X509Certificate>
40 </ds:X509Data>
41 </ds:KeyInfo>
42 </ds:Signature>
43 <saml2p:Status>
44 <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
45 <saml2p:StatusMessage>urn:oasis:names:tc:SAML:2.0:status:Success
46 </saml2p:StatusMessage>
47 </saml2p:Status>
48 <saml2:EncryptedAssertion>
49 <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
50 Id="_9edfcba8f58bfdc4113781a84f15cfc7"
51 Type="http://www.w3.org/2001/04/xmlenc#Element">
52 <xenc:EncryptionMethod
53 Algorithm="http://www.w3.org/2009/xmlenc11#aes256-gcm" />
54 <ds:KeyInfo>
55 <xenc:EncryptedKey Id="_f8ee973cef7ae93d8ec4d44356891aba">
56 <xenc:EncryptionMethod
57 Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
58 <ds:DigestMethod
59 Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
60 </xenc:EncryptionMethod>
61 <ds:KeyInfo>
62 <ds:X509Data>
63 <ds:X509Certificate>
64 MIIF5DCCA8ygAwIBAgIJ/jp1OA33sCi6SZKgR9Q2Fzp3HkLQF</
ds:X509Certificate>
65 </ds:X509Data>
66 </ds:KeyInfo>
67 <xenc:CipherData>
68 <xenc:CipherValue>
69 oH3ZPDFzj2lY3mOadg5BhReSUCdEt2wXDuJ9lo9ArdNu3seemV3cQ=
70 </xenc:CipherValue>
71 </xenc:CipherData>
72 </xenc:EncryptedKey>
73 </ds:KeyInfo>
74 <xenc:CipherData>
75 <xenc:CipherValue>
76 RTkNNq5nSxSttWv3mTNMcJYmWrj5PV9Tdkm4xbGESvGJYdkEzO0
77 </xenc:CipherValue>
78 </xenc:CipherData>
79 </xenc:EncryptedData>
101
A – SAML message flow
80 </saml2:EncryptedAssertion>
81 </saml2p:Response>
eIDAS Response
1 <saml2p:Response
2 xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
3 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4 xmlns:eidas="http://eidas.europa.eu/attributes/naturalperson"
5 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
6 Consent="urn:oasis:names:tc:SAML:2.0:consent:obtained"
7 Destination="https://connector-test-eid4u.polito.it/EidasNode/
ColleagueResponse"
8 ID="_QTFr0xaKSBn9GXDKsSbaeDN7uAHDgYsvxgusylX2YsP7bVsvO.xEk-5k6Uv5DvC"
9 InResponseTo="
_FjbjwldU1NU1AhQy62czTmiZXGC4xveAXQrkxQA86i8bI6OFoY2a02CAfmw_T8E"
10 IssueInstant="2019-12-05T11:59:53.014Z" Version="2.0">
11 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
12 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
13 https://service-test-eid4u.polito.it/EidasNode/ServiceMetadata
14 </saml2:Issuer>
15 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
16 <ds:SignedInfo>
17 <ds:CanonicalizationMethod
18 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
19 <ds:SignatureMethod
20 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
21 <ds:Reference
22 URI="#_QTFr0xaKSBn9GXDKsSbaeDN7uAHDgYsvxgusylX2YsP7bVsvO.xEk-5k6Uv5DvC
">
23 <ds:Transforms>
24 <ds:Transform
25 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
26 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
27 </ds:Transforms>
28 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
29 <ds:DigestValue>
30 DXXdUY2ulkd0HYH8gug5FgR+R80e1yEHuY44vm21i7+Qz3IQST9wzmA==
31 </ds:DigestValue>
32 </ds:Reference>
33 </ds:SignedInfo>
34 <ds:SignatureValue>
35 KOEyyjKl/YngVVZZLZ+wo12Uxn+9J7MAEWfdd4XOPVBIkRFL/tIuVr8nLmRIi
36 </ds:SignatureValue>
37 <ds:KeyInfo>
38 <ds:X509Data>
39 <ds:X509Certificate>
40 MIICkjCCAhmgAwIBAgIJD/kZEHLTjIeOUbmhqZhWe5szL0E=</ds:X509Certificate>
41 </ds:X509Data>
102
A – SAML message flow
42 </ds:KeyInfo>
43 </ds:Signature>
44 <saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
45 <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
46 <saml2p:StatusMessage>urn:oasis:names:tc:SAML:2.0:status:Success
47 </saml2p:StatusMessage>
48 </saml2p:Status>
49 <saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion
">
50 <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
51 Id="_ca63412f5d01634d007beed3021b48e5"
52 Type="http://www.w3.org/2001/04/xmlenc#Element">
53 <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
54 Algorithm="http://www.w3.org/2009/xmlenc11#aes256-gcm" />
55 <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
56 <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
57 Id="_e2d5815d15fff5d0ba4726bffd9f326d">
58 <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
59 Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
60 <ds:DigestMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
61 Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
62 </xenc:EncryptionMethod>
63 <ds:KeyInfo>
64 <ds:X509Data>
65 <ds:X509Certificate>
66 MIIF4jCCA8qgAwIBAgIJAMlkjGOLNh9TEekfKjQTA==</ds:X509Certificate
>
67 </ds:X509Data>
68 </ds:KeyInfo>
69 <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
70 <xenc:CipherValue>
71 Le4qm56nQ7vAFYalDCCQl+oSWte71RtcSkmRIe4/mEP8LjvvrnI=
72 </xenc:CipherValue>
73 </xenc:CipherData>
74 </xenc:EncryptedKey>
75 </ds:KeyInfo>
76 <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
77 <xenc:CipherValue>
78 wwdgMtOmV63Vwn0CNsolufalAVt6ePHxBuQyKcs0VumD4m+etMIj93bs=
79 </xenc:CipherValue>
80 </xenc:CipherData>
81 </xenc:EncryptedData>
82 </saml2:EncryptedAssertion>
83 </saml2p:Response>
eIDAS Response
1 <saml2p:Response
2 xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
3 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4 xmlns:eidas="http://eidas.europa.eu/attributes/naturalperson"
103
A – SAML message flow
5 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
6 Consent="urn:oasis:names:tc:SAML:2.0:consent:obtained"
7 Destination="https://zeroshell.example.com:12081/Shibboleth.sso/SAML2/POST"
8 ID="_eUOwabdGEH00WQzrkxyQcBCYGiuKRGzLMh8eJPfRlZbH_dFACIoV3c3-O0YcSq6"
9 InResponseTo="_ca4107656fd18b527ae2ebeffeae4596"
10 IssueInstant="2019-12-05T12:00:08.907Z" Version="2.0">
11 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
12 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
13 https://connector-test-eid4u.polito.it/EidasNode/
ConnectorResponderMetadata
14 </saml2:Issuer>
15 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
16 <ds:SignedInfo>
17 <ds:CanonicalizationMethod
18 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
19 <ds:SignatureMethod
20 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
21 <ds:Reference
22 URI="#_eUOwabdGEH00WQzrkxyQcBCYGiuKRGzLMh8eJPfRlZbH_dFACIoV3c3-O0YcSq6
">
23 <ds:Transforms>
24 <ds:Transform
25 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
26 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
27 </ds:Transforms>
28 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
29 <ds:DigestValue>
30 PaAqtga4al15ZLj3spWntEPiWPSi0hPKQPqaEkR1k6rcMDnV9bddzVt1DjcQ==
31 </ds:DigestValue>
32 </ds:Reference>
33 </ds:SignedInfo>
34 <ds:SignatureValue>
35 97SNue/47xd11dT/XmEQJuSENSFHWDSc4MbFjHBmA0HSg+MYTTboFZa/FK
36 </ds:SignatureValue>
37 <ds:KeyInfo>
38 <ds:X509Data>
39 <ds:X509Certificate>
40 MIICkTCCAhegAwIBAgIJ5xIKP225l8LbVTpYnHEB8ORHag==</ds:X509Certificate>
41 </ds:X509Data>
42 </ds:KeyInfo>
43 </ds:Signature>
44 <saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
45 <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
46 <saml2p:StatusMessage>urn:oasis:names:tc:SAML:2.0:status:Success
47 </saml2p:StatusMessage>
48 </saml2p:Status>
49 <saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion
">
50 <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
51 Id="_20202c9bc18ec474dcb604bf966d6a3a"
52 Type="http://www.w3.org/2001/04/xmlenc#Element">
53 <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
54 Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
55 <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
56 <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
104
A – SAML message flow
57 Id="_c84fc55617c1200daeabf0349bcdc629">
58 <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
59 Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
60 <ds:DigestMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
61 Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
62 </xenc:EncryptionMethod>
63 <ds:KeyInfo>
64 <ds:X509Data>
65 <ds:X509Certificate>
66 MIIFKjCCAxKgAwIBAgIJeXgwLVUVCTjEeNOGZ</ds:X509Certificate>
67 </ds:X509Data>
68 </ds:KeyInfo>
69 <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
70 <xenc:CipherValue>
71 QXsLafFQwx6M3JMlne94nFQb2GD+Cb5MGgj5EpRvmXQJBodG9yIEHmy5c=
72 </xenc:CipherValue>
73 </xenc:CipherData>
74 </xenc:EncryptedKey>
75 </ds:KeyInfo>
76 <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
77 <xenc:CipherValue>
78 IjZ0ZTpNBvV1aIHh/574jnsUJeu1gpYQUEYzlC2CRC0zmrJg/zkiMHC1eAMCn/Qa/7
Kt4mFFg/TA=
79 </xenc:CipherValue>
80 </xenc:CipherData>
81 </xenc:EncryptedData>
82 </saml2:EncryptedAssertion>
83 </saml2p:Response>
eIDAS Request
1 <saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
2 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
3 xmlns:eidas="http://eidas.europa.eu/saml-extensions"
4 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
5 Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
6 Destination="https://connector-test-eid4u.polito.it/EidasNode/
ServiceProvider"
7 ForceAuthn="true"
8 ID="_sRmCiBCyS21tAgWrQeJcpWr.PefcyCiGQbsDvjHE5xn27Wxhh0uqF1.anRGGpBq"
9 IsPassive="false" IssueInstant="2019-12-05T12:40:44.725Z"
10 ProviderName="WIFI-AUTH" Version="2.0">
11 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
12 https://wifi-auth-eid4u.polito.it/SP/metadata</saml2:Issuer>
13 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
14 <ds:SignedInfo>
15 <ds:CanonicalizationMethod
105
A – SAML message flow
16 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
17 <ds:SignatureMethod
18 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
19 <ds:Reference
20 URI="#_sRmCiBCyS21tAgWrQeJcpWr.PefcyCiGQbsDvjHE5xn27Wxhh0uqF1.anRGGpBq
">
21 <ds:Transforms>
22 <ds:Transform
23 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
24 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
25 </ds:Transforms>
26 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
27 <ds:DigestValue>
28 wTkyL8TbnF32cn8pL7tVVuLjXLYV4iYP13rJJ
29 </ds:DigestValue>
30 </ds:Reference>
31 </ds:SignedInfo>
32 <ds:SignatureValue>
33 bCsn2tlq2bXDu9ElLd31ddxU8Dbexqv5aj9KBD0LY
34 </ds:SignatureValue>
35 <ds:KeyInfo>
36 <ds:X509Data>
37 <ds:X509Certificate>
38 MIICXzCCAeagAwIBAgIUNBxE8ZRQ/bOv83di7pXzA2IzaQxN92qYyC+oOIkw=
39 </ds:X509Certificate>
40 </ds:X509Data>
41 </ds:KeyInfo>
42 </ds:Signature>
43 <saml2p:Extensions>
44 <eidas:SPType>public</eidas:SPType>
45 <eidas:RequestedAttributes>
46 <eidas:RequestedAttribute FriendlyName="FamilyName"
47 Name="http://eidas.europa.eu/attributes/naturalperson/
CurrentFamilyName"
48 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
49 isRequired="true" />
50 <eidas:RequestedAttribute FriendlyName="FirstName"
51 Name="http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName
"
52 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
53 isRequired="true" />
54 <eidas:RequestedAttribute FriendlyName="DateOfBirth"
55 Name="http://eidas.europa.eu/attributes/naturalperson/DateOfBirth"
56 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
57 isRequired="true" />
58 <eidas:RequestedAttribute FriendlyName="PersonIdentifier"
59 Name="http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier
"
60 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
61 isRequired="true" />
62 </eidas:RequestedAttributes>
63 </saml2p:Extensions>
64 <saml2p:NameIDPolicy AllowCreate="true"
65 Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
66 <saml2p:RequestedAuthnContext Comparison="minimum">
106
A – SAML message flow
67 <saml2:AuthnContextClassRef>http://eidas.europa.eu/LoA/low
68 </saml2:AuthnContextClassRef>
69 </saml2p:RequestedAuthnContext>
70 </saml2p:AuthnRequest>
eIDAS Request
1 <saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
2 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
3 xmlns:eidas="http://eidas.europa.eu/saml-extensions"
4 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
5 Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
6 Destination="https://service-test-eid4u.polito.it/EidasNode/ColleagueRequest
"
7 ForceAuthn="true"
8 ID="_882EW-EpjxyDF_YTH0Ow0KUlFYNPzhXmurz31yHJ6N0Cht.dr0pZaMYO3t1suh6"
9 IsPassive="false" IssueInstant="2019-12-05T12:40:46.796Z"
10 ProviderName="WIFI-AUTH" Version="2.0">
11 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
12 https://connector-test-eid4u.polito.it/EidasNode/ConnectorMetadata
13 </saml2:Issuer>
14 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
15 <ds:SignedInfo>
16 <ds:CanonicalizationMethod
17 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
18 <ds:SignatureMethod
19 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
20 <ds:Reference
21 URI="#_882EW-EpjxyDF_YTH0Ow0KUlFYNPzhXmurz31yHJ6N0Cht.dr0pZaMYO3t1suh6
">
22 <ds:Transforms>
23 <ds:Transform
24 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
25 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
26 </ds:Transforms>
27 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
28 <ds:DigestValue>
29 UZ6y1xmE5UaAbjQLttZlu+ypdlMdXF7SYcFEkcbV2BZYh+
30 </ds:DigestValue>
31 </ds:Reference>
32 </ds:SignedInfo>
33 <ds:SignatureValue>
34 ugStb0y0s4yoMpbwsINurQnKaYMCGsDzXC67sJSPUPjcX
35 </ds:SignatureValue>
36 <ds:KeyInfo>
37 <ds:X509Data>
38 <ds:X509Certificate>
39 MIICkTCCAhegAwIBAgIJAMIxa5EPQZdFMAoGbVTpYnHEB8ORHag==
40 </ds:X509Certificate>
107
A – SAML message flow
41 </ds:X509Data>
42 </ds:KeyInfo>
43 </ds:Signature>
44 <saml2p:Extensions>
45 <eidas:RequestedAttributes>
46 <eidas:RequestedAttribute FriendlyName="FamilyName"
47 Name="http://eidas.europa.eu/attributes/naturalperson/
CurrentFamilyName"
48 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
49 isRequired="true" />
50 <eidas:RequestedAttribute FriendlyName="FirstName"
51 Name="http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName
"
52 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
53 isRequired="true" />
54 <eidas:RequestedAttribute FriendlyName="DateOfBirth"
55 Name="http://eidas.europa.eu/attributes/naturalperson/DateOfBirth"
56 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
57 isRequired="true" />
58 <eidas:RequestedAttribute FriendlyName="PersonIdentifier"
59 Name="http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier
"
60 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
61 isRequired="true" />
62 </eidas:RequestedAttributes>
63 </saml2p:Extensions>
64 <saml2p:NameIDPolicy AllowCreate="true"
65 Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
66 <saml2p:RequestedAuthnContext Comparison="minimum">
67 <saml2:AuthnContextClassRef>http://eidas.europa.eu/LoA/low
68 </saml2:AuthnContextClassRef>
69 </saml2p:RequestedAuthnContext>
70 </saml2p:AuthnRequest>
eIDAS Request
1 <saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
2 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
3 xmlns:eidas="http://eidas.europa.eu/saml-extensions"
4 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
5 Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
6 Destination="https://idp-proxy-test-eid4u.polito.it/idpproxy/idpeurequest"
7 ForceAuthn="true"
8 ID="_-7T6xlFmkoz71PO3Kl9vKLYXl6ZVyaSw.QSHmLrmnFwKEJiUymd-HmX3ELnRBVL"
9 IsPassive="false" IssueInstant="2019-12-05T12:40:56.889Z"
10 ProviderName="WIFI-AUTH" Version="2.0">
11 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
12 https://service-test-eid4u.polito.it/EidasNode/ServiceRequesterMetadata
13 </saml2:Issuer>
14 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
15 <ds:SignedInfo>
108
A – SAML message flow
16 <ds:CanonicalizationMethod
17 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
18 <ds:SignatureMethod
19 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
20 <ds:Reference
21 URI="#_-7T6xlFmkoz71PO3Kl9vKLYXl6ZVyaSw.QSHmLrmnFwKEJiUymd-HmX3ELnRBVL
">
22 <ds:Transforms>
23 <ds:Transform
24 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
25 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
26 </ds:Transforms>
27 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
28 <ds:DigestValue>
29 DiiQHHPZemttkPc25niwtQ6YScGi/q8S8WadVAJH0hNe
30 </ds:DigestValue>
31 </ds:Reference>
32 </ds:SignedInfo>
33 <ds:SignatureValue>
34 z8y/gjXEoI4dutsqGjqVmX1Onc1Ed3dv4+cqhA1kCptVOhlOCJgQ7
35 </ds:SignatureValue>
36 <ds:KeyInfo>
37 <ds:X509Data>
38 <ds:X509Certificate>
39 MIICkjCCAhmgAwIBAgIJAPpljANQoDs1MAoGCCqGSM49BbmhqZhWe5szL0E=
40 </ds:X509Certificate>
41 </ds:X509Data>
42 </ds:KeyInfo>
43 </ds:Signature>
44 <saml2p:Extensions>
45 <eidas:SPType>public</eidas:SPType>
46 <eidas:RequestedAttributes>
47 <eidas:RequestedAttribute FriendlyName="FamilyName"
48 Name="http://eidas.europa.eu/attributes/naturalperson/
CurrentFamilyName"
49 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
50 isRequired="true" />
51 <eidas:RequestedAttribute FriendlyName="FirstName"
52 Name="http://eidas.europa.eu/attributes/naturalperson/CurrentGivenName
"
53 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
54 isRequired="true" />
55 <eidas:RequestedAttribute FriendlyName="DateOfBirth"
56 Name="http://eidas.europa.eu/attributes/naturalperson/DateOfBirth"
57 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
58 isRequired="true" />
59 <eidas:RequestedAttribute FriendlyName="PersonIdentifier"
60 Name="http://eidas.europa.eu/attributes/naturalperson/PersonIdentifier
"
61 NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
62 isRequired="true" />
63 </eidas:RequestedAttributes>
64 </saml2p:Extensions>
65 <saml2p:NameIDPolicy AllowCreate="true"
66 Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
109
A – SAML message flow
67 <saml2p:RequestedAuthnContext Comparison="minimum">
68 <saml2:AuthnContextClassRef>http://eidas.europa.eu/LoA/low
69 </saml2:AuthnContextClassRef>
70 </saml2p:RequestedAuthnContext>
71 </saml2p:AuthnRequest>
eIDAS Request
1 <saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
2 AssertionConsumerServiceIndex="0" AttributeConsumingServiceIndex="1"
3 Destination="https://identitycl.infocert.it" ForceAuthn="true"
4 ID="_7861263d-c009-4ea1-b39e-bf041148ed92"
5 IssueInstant="2019-12-05T12:41:04.283Z" Version="2.0">
6 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
7 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
8 NameQualifier="https://idp-proxy.test.eid.gov.it/idpproxy">
9 https://idp-proxy-test-eid4u.polito.it/idpproxy</saml2:Issuer>
10 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
11 <ds:SignedInfo>
12 <ds:CanonicalizationMethod
13 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
14 <ds:SignatureMethod
15 Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
16 <ds:Reference URI="#_7861263d-c009-4ea1-b39e-bf041148ed92">
17 <ds:Transforms>
18 <ds:Transform
19 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
20 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
21 </ds:Transforms>
22 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /
>
23 <ds:DigestValue>5oEsIZbMjN67wEAY3zNAaQ/oYaPFLef3Laih+Ac1GEI=
24 </ds:DigestValue>
25 </ds:Reference>
26 </ds:SignedInfo>
27 <ds:SignatureValue>
28 h0S1DDSmQ+rcYPcgz+z41NU1pGYQ3dj0cSovMzcoHOohdkrb
29 </ds:SignatureValue>
30 <ds:KeyInfo>
31 <ds:X509Data>
32 <ds:X509Certificate>
33 MIIDcDCCAligAwIBAgIJAPTLdfHNBOuRMA0GCSqGG3fs/xk=
34 </ds:X509Certificate>
35 </ds:X509Data>
36 </ds:KeyInfo>
37 </ds:Signature>
38 <saml2p:NameIDPolicy
39 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" />
40 <saml2p:RequestedAuthnContext Comparison="minimum">
41 <saml2:AuthnContextClassRef
110
A – SAML message flow
42 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
43 https://www.spid.gov.it/SpidL1</saml2:AuthnContextClassRef>
44 </saml2p:RequestedAuthnContext>
45 </saml2p:AuthnRequest>
eIDAS Response
1 <saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
2 Destination="https://idp-proxy-test-eid4u.polito.it/idpproxy/spidresponse"
3 ID="_cedfaf7594c9aef38cecafaf593cb125"
4 InResponseTo="_7861263d-c009-4ea1-b39e-bf041148ed92"
5 IssueInstant="2019-12-05T12:41:11.698Z" Version="2.0">
6 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
7 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
8 https://identitycl.infocert.it</saml2:Issuer>
9 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
10 <SignedInfo>
11 <CanonicalizationMethod
12 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
13 <SignatureMethod
14 Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
15 <Reference URI="#_cedfaf7594c9aef38cecafaf593cb125">
16 <Transforms>
17 <Transform
18 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
19 <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
20 </Transforms>
21 <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
22 <DigestValue>sgYxg5mKk9XS44uyyQQGcXESxv2eMpnqN6RNb3Lh8RI=</DigestValue
>
23 </Reference>
24 </SignedInfo>
25 <SignatureValue>
26 JpUZ+lbSgcTpaVhHsz2h96DiGOecq6c1tpa0QZwaoXpM7im
27 </SignatureValue>
28 <KeyInfo>
29 <X509Data>
30 <X509Certificate>
31 MIIGbjCCBVagAwIBAgIDFI91MA0GCSqGSIb3DQEBCwUAMI+AzeNQ92mtk
32 </X509Certificate>
33 </X509Data>
34 </KeyInfo>
35 </Signature>
36 <saml2p:Status>
37 <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
38 </saml2p:Status>
39 <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
40 ID="_98fda83df8ae11e7110bcd55616085a1"
41 IssueInstant="2019-12-05T12:41:11.698Z" Version="2.0">
42 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
111
A – SAML message flow
43 https://identitycl.infocert.it</saml2:Issuer>
44 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
45 <SignedInfo>
46 <CanonicalizationMethod
47 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
48 <SignatureMethod
49 Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
50 <Reference URI="#_98fda83df8ae11e7110bcd55616085a1">
51 <Transforms>
52 <Transform
53 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"
/>
54 <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
55 </Transforms>
56 <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
57 <DigestValue>NlXYPey2JqjdEWLOjYx/Unu1s3BafBBHtT4ikDjQ0XM=
58 </DigestValue>
59 </Reference>
60 </SignedInfo>
61 <SignatureValue>
62 pSmAQwbFC/VhOhkzNnbbPOmjyjIn7T39GaFS6/6ujmfv2jTQlouFg6
63 </SignatureValue>
64 <KeyInfo>
65 <X509Data>
66 <X509Certificate>
67 MIIGbjCCBVagAwIBAgIDFI91MA0GCSqGSIb3DQEBCwUAMIGGMQ+AzeNQ92mtk
68 </X509Certificate>
69 </X509Data>
70 </KeyInfo>
71 </Signature>
72 <saml2:Subject>
73 <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-
format:transient"
74 NameQualifier="https://identitycl.infocert.it">
75 _3bee572907e174f4b4e34e5dca106b61</saml2:NameID>
76 <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer
">
77 <saml2:SubjectConfirmationData
78 InResponseTo="_7861263d-c009-4ea1-b39e-bf041148ed92"
79 NotOnOrAfter="2019-12-05T12:41:41.698Z"
80 Recipient="https://idp-proxy-test-eid4u.polito.it/idpproxy/
spidresponse" />
81 </saml2:SubjectConfirmation>
82 </saml2:Subject>
83 <saml2:Conditions NotBefore="2019-12-05T12:41:10.698Z"
84 NotOnOrAfter="2019-12-05T12:41:41.698Z">
85 <saml2:AudienceRestriction>
86 <saml2:Audience>https://idp-proxy-test-eid4u.polito.it/idpproxy
87 </saml2:Audience>
88 </saml2:AudienceRestriction>
89 </saml2:Conditions>
90 <saml2:AuthnStatement AuthnInstant="2019-12-05T12:41:11.698Z"
91 SessionIndex="_8f8cb76addf6c22d1ea84da9457a7ca3"
92 SessionNotOnOrAfter="2019-12-05T13:11:11.698Z">
93 <saml2:AuthnContext>
94 <saml2:AuthnContextClassRef>https://www.spid.gov.it/SpidL1
95 </saml2:AuthnContextClassRef>
112
A – SAML message flow
96 </saml2:AuthnContext>
97 </saml2:AuthnStatement>
98 <saml2:AttributeStatement>
99 <saml2:Attribute FriendlyName="Codice identificativo SPID"
100 Name="spidCode">
101 <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
102 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
103 xsi:type="xs:string">INFC0001TESTEU</saml2:AttributeValue>
104 </saml2:Attribute>
105 <saml2:Attribute FriendlyName="Nome" Name="name">
106 <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
107 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
108 xsi:type="xs:string">Arianna</saml2:AttributeValue>
109 </saml2:Attribute>
110 <saml2:Attribute FriendlyName="Cognome" Name="familyName">
111 <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
112 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
113 xsi:type="xs:string">Garbini</saml2:AttributeValue>
114 </saml2:Attribute>
115 <saml2:Attribute FriendlyName="Data di nascita" Name="dateOfBirth">
116 <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
117 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
118 xsi:type="xs:date">1968-05-22</saml2:AttributeValue>
119 </saml2:Attribute>
120 </saml2:AttributeStatement>
121 </saml2:Assertion>
122 </saml2p:Response>
eIDAS Response
1 <saml2p:Response xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
2 xmlns:eidas="http://eidas.europa.eu/attributes/naturalperson"
3 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
4 xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
5 Consent="urn:oasis:names:tc:SAML:2.0:consent:obtained"
6 Destination="https://service-test-eid4u.polito.it/EidasNode/IdpResponse"
7 ID="_I4HYGVHFIjlFEf4dgW7sW6TqXvrwBatziQiAUez3nS.j4QmyVPOHtFPFJRwBNdN"
8 InResponseTo="_-7T6xlFmkoz71PO3Kl9vKLYXl6ZVyaSw.QSHmLrmnFwKEJiUymd-
HmX3ELnRBVL"
9 IssueInstant="2019-12-05T12:41:12.706Z" Version="2.0">
10 <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
11 https://idp-proxy-test-eid4u.polito.it/idpproxy/idpeumetadata</
saml2:Issuer>
12 <ds:Signature>
13 <ds:SignedInfo>
14 <ds:CanonicalizationMethod
15 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
16 <ds:SignatureMethod
17 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
18 <ds:Reference
113
A – SAML message flow
19 URI="#_I4HYGVHFIjlFEf4dgW7sW6TqXvrwBatziQiAUez3nS.j4QmyVPOHtFPFJRwBNdN
">
20 <ds:Transforms>
21 <ds:Transform
22 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
23 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
24 </ds:Transforms>
25 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
26 <ds:DigestValue>
27 PaV/864iNZEjTUedrNmFsUXEpo1JLbmrB5iWABAR4o
28 </ds:DigestValue>
29 </ds:Reference>
30 </ds:SignedInfo>
31 <ds:SignatureValue>
32 OtBxYdJTYIG35sEwXnG3oQbmzYLHsfsPkpy0QPMrD1z4Vl
33 </ds:SignatureValue>
34 <ds:KeyInfo>
35 <ds:X509Data>
36 <ds:X509Certificate>
37 MIICKzCCAbKgAwIBAgIULN+lE5fJs4K2dOEkpCYZIUA/X1jBO4NKgd5LacxXfSAA==
38 </ds:X509Certificate>
39 </ds:X509Data>
40 </ds:KeyInfo>
41 </ds:Signature>
42 <saml2p:Status>
43 <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
44 <saml2p:StatusMessage>urn:oasis:names:tc:SAML:2.0:status:Success
45 </saml2p:StatusMessage>
46 </saml2p:Status>
47 <saml2:EncryptedAssertion>
48 <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
49 Id="_6103a746f246bbe2bd48905d3550cc6b"
50 Type="http://www.w3.org/2001/04/xmlenc#Element">
51 <xenc:EncryptionMethod
52 Algorithm="http://www.w3.org/2009/xmlenc11#aes256-gcm" />
53 <ds:KeyInfo>
54 <xenc:EncryptedKey Id="_22ec0155b2f341ed6212dbdff9bac6fd">
55 <xenc:EncryptionMethod
56 Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
57 <ds:DigestMethod
58 Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
59 </xenc:EncryptionMethod>
60 <ds:KeyInfo>
61 <ds:X509Data>
62 <ds:X509Certificate>
63 MIIF5DCCA8ygAwIBAgIJANMSzeK2MkKgR9Q2Fzp3HkLQF
64 </ds:X509Certificate>
65 </ds:X509Data>
66 </ds:KeyInfo>
67 <xenc:CipherData>
68 <xenc:CipherValue>
69 gCGKz2mmdykxE5/e5RsTZ7napK01jadr3l4FEEt24qXCKqX6BrL+
XVWgTsU7xxdBKD2BG4Q=
70 </xenc:CipherValue>
71 </xenc:CipherData>
114
A – SAML message flow
72 </xenc:EncryptedKey>
73 </ds:KeyInfo>
74 <xenc:CipherData>
75 <xenc:CipherValue>
76 KvW5v9We8RpDrrOhHU48wc/5VqWJkXw8jtgzzNRzysscRIKd5admeTPMOLmpn
77 </xenc:CipherValue>
78 </xenc:CipherData>
79 </xenc:EncryptedData>
80 </saml2:EncryptedAssertion>
81 </saml2p:Response>
eIDAS Response
1 <saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
2 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
3 xmlns:eidas="http://eidas.europa.eu/attributes/naturalperson"
4 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
5 Consent="urn:oasis:names:tc:SAML:2.0:consent:obtained"
6 Destination="https://connector-test-eid4u.polito.it/EidasNode/
ColleagueResponse"
7 ID="_s8zPRr1PcaF.mY0waaX8H82emMPCnZE8cqfF08l.xYyFXssDZmIQEL3wk.o8gt_"
8 InResponseTo="_882EW-EpjxyDF_YTH0Ow0KUlFYNPzhXmurz31yHJ6N0Cht.
dr0pZaMYO3t1suh6"
9 IssueInstant="2019-12-05T12:41:14.425Z" Version="2.0">
10 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
11 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
12 https://service-test-eid4u.polito.it/EidasNode/ServiceMetadata
13 </saml2:Issuer>
14 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
15 <ds:SignedInfo>
16 <ds:CanonicalizationMethod
17 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
18 <ds:SignatureMethod
19 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
20 <ds:Reference
21 URI="#_s8zPRr1PcaF.mY0waaX8H82emMPCnZE8cqfF08l.xYyFXssDZmIQEL3wk.o8gt_
">
22 <ds:Transforms>
23 <ds:Transform
24 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
25 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
26 </ds:Transforms>
27 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
28 <ds:DigestValue>
29 YjdkfGaHbqysyfc2w150zWaNrPnVJDu/nCB+GpTQDNXHYAvNle5qCN
30 </ds:DigestValue>
31 </ds:Reference>
32 </ds:SignedInfo>
33 <ds:SignatureValue>
115
A – SAML message flow
34 T2ETPYZIflBC+lDpbN/ACmwV3/V7s1wS51nhqX3+h46nY+pXsbKeB8k
35 </ds:SignatureValue>
36 <ds:KeyInfo>
37 <ds:X509Data>
38 <ds:X509Certificate>
39 MIICkjCCAhmgAwIBAgIJAPpljANQoDsIeOUbmhqZhWe5szL0E=
40 </ds:X509Certificate>
41 </ds:X509Data>
42 </ds:KeyInfo>
43 </ds:Signature>
44 <saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
45 <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
46 <saml2p:StatusMessage>urn:oasis:names:tc:SAML:2.0:status:Success
47 </saml2p:StatusMessage>
48 </saml2p:Status>
49 <saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion
">
50 <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
51 Id="_e1a9908ba3027759a999a662551fce10"
52 Type="http://www.w3.org/2001/04/xmlenc#Element">
53 <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
54 Algorithm="http://www.w3.org/2009/xmlenc11#aes256-gcm" />
55 <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
56 <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
57 Id="_26d9ef9391adf41cf3ad3ab864b18e6f">
58 <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
59 Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
60 <ds:DigestMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
61 Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
62 </xenc:EncryptionMethod>
63 <ds:KeyInfo>
64 <ds:X509Data>
65 <ds:X509Certificate>
66 MIIF4jCCA8qgAwIBAgIJAMlk7Nh9TEekfKjQTA==
67 </ds:X509Certificate>
68 </ds:X509Data>
69 </ds:KeyInfo>
70 <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
71 <xenc:CipherValue>
72 nRFeSg1gxkPaJ29CutFYhAPU0dmSfNJGQq6JvwRUf+nJGiR3THC9KA=
73 </xenc:CipherValue>
74 </xenc:CipherData>
75 </xenc:EncryptedKey>
76 </ds:KeyInfo>
77 <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
78 <xenc:CipherValue>
79 GehFeepq7gTv17EgVxDSUy6+XPCkvfr0jvt66OT68qJni2l9wN06JKOZgHMo6vt7TE=
80 </xenc:CipherValue>
81 </xenc:CipherData>
82 </xenc:EncryptedData>
83 </saml2:EncryptedAssertion>
84 </saml2p:Response>
116
A – SAML message flow
eIDAS Response
1 <saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
2 xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
3 xmlns:eidas="http://eidas.europa.eu/attributes/naturalperson"
4 xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
5 Consent="urn:oasis:names:tc:SAML:2.0:consent:obtained"
6 Destination="https://wifi-auth-eid4u.polito.it/SP/ReturnPage"
7 ID="_.A0tCg20zdDuQmbjqXowaZkOsh_zT89nwB.gQbCR5ni9yHvrjkzkyhOlGQL4Qxq"
8 InResponseTo="_sRmCiBCyS21tAgWrQeJcpWr.PefcyCiGQbsDvjHE5xn27Wxhh0uqF1.
anRGGpBq"
9 IssueInstant="2019-12-05T12:41:19.478Z" Version="2.0">
10 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
11 Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
12 https://connector-test-eid4u.polito.it/EidasNode/
ConnectorResponderMetadata
13 </saml2:Issuer>
14 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
15 <ds:SignedInfo>
16 <ds:CanonicalizationMethod
17 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
18 <ds:SignatureMethod
19 Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512" />
20 <ds:Reference
21 URI="#_.A0tCg20zdDuQmbjqXowaZkOsh_zT89nwB.gQbCR5ni9yHvrjkzkyhOlGQL4Qxq
">
22 <ds:Transforms>
23 <ds:Transform
24 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /
>
25 <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
26 </ds:Transforms>
27 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /
>
28 <ds:DigestValue>
29 ytktCbKhUrjNfUI6BDJ3Wqdu0qoSRUpf8gu6/8ZaOEzJKsYqnrEw==
30 </ds:DigestValue>
31 </ds:Reference>
32 </ds:SignedInfo>
33 <ds:SignatureValue>
34 64sDgGmwG/atbLFEIk2Ui0lLr1OET9ErLnhoIka8YDl1aKJlGXwZ+PhLIBUw1ZcsYM
35 </ds:SignatureValue>
36 <ds:KeyInfo>
37 <ds:X509Data>
38 <ds:X509Certificate>
39 MIICkTCCAhegAwIBAgIJAMIxa5EPQZdFMAoGCCqertT5W5xIKP225l8LbVTpYnHEB8ORHag
==
40 </ds:X509Certificate>
41 </ds:X509Data>
42 </ds:KeyInfo>
43 </ds:Signature>
44 <saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
45 <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
46 <saml2p:StatusMessage>urn:oasis:names:tc:SAML:2.0:status:Success
117
A – SAML message flow
47 </saml2p:StatusMessage>
48 </saml2p:Status>
49 <saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion
">
50 <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
51 Id="_69d27882cf8be2cb8a7aa62536215bef"
52 Type="http://www.w3.org/2001/04/xmlenc#Element">
53 <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
54 Algorithm="http://www.w3.org/2009/xmlenc11#aes256-gcm" />
55 <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
56 <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
57 Id="_e7e3d60e63c655de569e8a1ba008faa0">
58 <xenc:EncryptionMethod xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
59 Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
60 <ds:DigestMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
61 Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
62 </xenc:EncryptionMethod>
63 <ds:KeyInfo>
64 <ds:X509Data>
65 <ds:X509Certificate>
66 MIIDsTCCApmgAwIBAgIUOBopz8Pq+/fB6mN0t2Hv5Mxewgcs8dsMcOVM/
ZeuOFnQ==
67 </ds:X509Certificate>
68 </ds:X509Data>
69 </ds:KeyInfo>
70 <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
71 <xenc:CipherValue>
72 EIUjJtlVjPT707LRsch7c1T+juVixoPKr72ybL5YVgPOsn8vPEwvRZQGMHA==
73 </xenc:CipherValue>
74 </xenc:CipherData>
75 </xenc:EncryptedKey>
76 </ds:KeyInfo>
77 <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
78 <xenc:CipherValue>
79 Ajx39Du2CKVo9nz9ViMp8E3PPDlSNXn0nCi6wgcFMcc5Cq6gdOoMzeoMFtvo=
80 </xenc:CipherValue>
81 </xenc:CipherData>
82 </xenc:EncryptedData>
83 </saml2:EncryptedAssertion>
84 </saml2p:Response>
118