Project

General

Profile

1 60812 katerina.i
<!DOCTYPE html>
2
<html lang="en-gb">
3 61745 katerina.i
	<head>
4
		<!--link href="http://demo.openaire.eu" rel="canonical" /-->
5
		<meta charset="utf-8">
6
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
7
		<meta name="viewport" content="width=device-width, initial-scale=1">
8
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
9 61796 alexandros
		<meta name="description" content="OpenAIRE API documentation - Authentication, registered services, advanced service authentication and registration, how to register"/>
10 61745 katerina.i
		<link href="assets/common-assets/logo-small-graph.png">
11
		<link rel="apple-touch-icon" sizes="57x57" href="assets/common-assets/logo/apple-icon-57x57.png">
12
		<link rel="apple-touch-icon" sizes="60x60" href="assets/common-assets/logo/apple-icon-60x60.png">
13
		<link rel="apple-touch-icon" sizes="72x72" href="assets/common-assets/logo/apple-icon-72x72.png">
14
		<link rel="apple-touch-icon" sizes="76x76" href="assets/common-assets/logo/apple-icon-76x76.png">
15
		<link rel="apple-touch-icon" sizes="114x114" href="assets/common-assets/logo/apple-icon-114x114.png">
16
		<link rel="apple-touch-icon" sizes="120x120" href="assets/common-assets/logo/apple-icon-120x120.png">
17
		<link rel="apple-touch-icon" sizes="144x144" href="assets/common-assets/logo/apple-icon-144x144.png">
18
		<link rel="apple-touch-icon" sizes="152x152" href="assets/common-assets/logo/apple-icon-152x152.png">
19
		<link rel="apple-touch-icon" sizes="180x180" href="assets/common-assets/logo/apple-icon-180x180.png">
20
		<link rel="icon" type="image/png" sizes="192x192" href="assets/common-assets/logo/android-icon-192x192.png">
21
		<link rel="icon" type="image/png" sizes="32x32" href="assets/common-assets/logo/favicon-32x32.png">
22
		<link rel="icon" type="image/png" sizes="96x96" href="assets/common-assets/logo/favicon-96x96.png">
23
		<link rel="icon" type="image/png" sizes="16x16" href="assets/common-assets/logo/favicon-16x16.png">
24
		<link href="assets/common-assets/logo/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"/>
25
		<title>OpenAIRE API documentation - Authentication Registered Services (Advanced)</title>
26
		<script  src="./assets/common-assets/jquery/jquery.js"></script>
27
		<script  src="./assets/uikit.js"></script>
28
		<script src="./assets/uikit-icon-max.js"></script>
29
		<!-- Include header and footer files -->
30
		<script>
31
			$(function(){
32
				$("#headerMobile").load("headerMobile.html");
33
				$("#header").load("header.html");
34
			});
35
		</script>
36
		<!-- Matomo -->
37
		<script type="text/javascript">
38
		var _paq = window._paq || [];
39
		/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
40
		_paq.push(['trackPageView']);
41
		_paq.push(['enableLinkTracking']);
42
		(function() {
43
		var u="//analytics.openaire.eu/";
44
		_paq.push(['setTrackerUrl', u+'matomo.php']);
45
		_paq.push(['setSiteId', '470']);
46
		var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
47
		g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
48
		})();
49
		</script>
50
		<link rel="stylesheet" type="text/css" href="./assets/common-assets/common/theme.css">
51
		<link rel="stylesheet" type="text/css" href="./assets/common-assets/common/custom.css">
52
		<link rel="stylesheet" type="text/css" href="./assets/common-assets/library.css">
53
		<link rel="stylesheet" type="text/css" href="./assets/develop-custom.css">
54
	</head>
55
	<body class="graphApp">
56
		<div class="uk-offcanvas-content uk-height-viewport">
57 60812 katerina.i
58 61745 katerina.i
			<!-- Header menu STARTS here-->
59
			<div id="headerMobile" class="tm-header-mobile uk-hidden@m"></div>
60
			<div id="header" class="tm-header uk-visible@m tm-header-transparent" uk-header=""></div>
61
			<!-- Header menu ENDS here-->
62 60812 katerina.i
63 61745 katerina.i
			<div class=" first_page_section uk-section-default uk-section uk-padding-remove-vertical">
64
				<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid=""></div>
65
			</div>
66 60812 katerina.i
67 61745 katerina.i
			<!-- Page content STARTS here -->
68
				<div class="uk-section tm-middle custom-main-content" id="tm-main">
69
					<div class="uk-margin-large-left uk-margin-medium-bottom">
70
						<ul class="uk-breadcrumb">
71
							<li>
72
								<a href="/">Home</a>
73
							</li>
74
							<li>
75 62547 katerina.i
								<a href="overview.html">Resources</a>
76 61745 katerina.i
							</li>
77
							<li>
78 62547 katerina.i
								<a style="cursor: default;">APIs</a>
79 61745 katerina.i
							</li>
80
							<li>
81 62547 katerina.i
								<a href="authentication.html">Authentication</a>
82
							</li>
83
							<li>
84 61745 katerina.i
								<a href="registeredService.html">Registered Services</a>
85
							</li>
86
							<li>
87
								<span>Advanced</span>
88
							</li>
89
						</ul>
90
					</div>
91
						<div class="uk-container">
92
							<div class="uk-grid">
93
								<div class="uk-width-1-3@s uk-width-1-4@m uk-width-1-4@l uk-visible@m" >
94 61778 alexandros
										<ul class="uk-nav-default uk-nav-parent-icon" uk-nav="multiple: false" uk-sticky="offset: 115; media:@s" >
95 61745 katerina.i
													<li class="uk-parent uk-open">
96
															<a href="#">Authentication</a>
97
															<ul class="uk-nav-sub">
98
																	<li><a href="./authentication.html">General Information</a></li>
99
																	<li><a href="./personalToken.html">Personal Token</a></li>
100
																	<li><a href="./registeredService.html">Registered Services</a>
101
																		<ul class="uk-nav-sub">
102
																					<li><a href="./basic.html">Basic</a></li>
103
																					<li class="uk-active"><b><a href="./advanced.html">Advanced</a></b></li>
104
																		</ul>
105
																</li>
106
															</ul>
107
													</li>
108
											</ul>
109
								</div>
110 60812 katerina.i
111
112 61745 katerina.i
								<div   class="tm-main uk-width-expand uk-row-first uk-first-column">
113 60812 katerina.i
114 61745 katerina.i
									<h2 id="service" class="uk-text-center">Advanced service authentication and registration</h2>
115
116
									<p>For the <b>Advanced Authentication</b> method your service does not send a client secret but it uses a <em>self signed
117
										client assertion</em> to obtain the access token for the OpenAIRE APIs. The client assertion is a JWT that must be
118
										signed with RSASSA using SHA-256 hash algorithm. The OpenAIRE AAI server validates the client assertion using the public
119
										key that you have provided upon the service registration.
120
									</p>
121 60812 katerina.i
122 61745 katerina.i
									<h4>Prepare to register your service</h4>
123
									<p>Before you register your service you need to prepare a pair of a private key and a public key on your side.
124
										<div class="uk-alert-primary" uk-alert>
125
												We accept keys signed with RSASSA using SHA-256 hash algorithm.
126
										</div>
127
										To create the key pair you have the following options:
128
										<ul class="portal-circle">
129
												<li>Use OpenAIRE authorization server built in tool. You can access the service here:
130
													<a href="https://aai.openaire.eu/oidc/generate-oidc-keystore" target="_blank">https://aai.openaire.eu/oidc/generate-oidc-keystore</a>.
131
													<br>
132
													The response is your <span class="uk-text-primary"><b>Public and Private Keypair</b></span> and has the following format:
133
													<pre class="uk-text-left">
134
{
135
	"p" : ...,
136
	"kty" : "RSA",
137
	"q" : ...,
138
	"d" : ...,
139
	"e" : "AQAB",
140
	"kid" : ...,
141
	"qi" : ...,
142
	"dp" : ...,
143
	"alg" : "RS256",
144
	"dq" : ...,
145
	"n" : ....
146 60812 katerina.i
}</pre>
147 61745 katerina.i
148
													Use the public key parameters (kty, e, kid, alg, n) to create your <span class="uk-text-primary"><b>Public Key</b></span>
149
													in the following format:
150
151
													<pre class="uk-text-left">
152 60812 katerina.i
{
153 61745 katerina.i
	"kty": "RSA",
154
	"e": "AQAB",
155
	"kid": ...,
156
	"alg": "RS256",
157
	"n": ...
158 60812 katerina.i
}</pre>
159
160 61745 katerina.i
													<div class="uk-alert-primary" uk-alert>
161
															Store both the <span class="uk-text-primary"><b>Public and Private keypair</b></span> and the <span class="uk-text-primary"><b>Public key</b></span>. You will need them to register your service.
162
													</div>
163
													<div class="uk-alert-danger" uk-alert>
164
															Store the <span class="uk-text-primary"><b>Public and Private keypair</b></span> confidentially on the service side.
165
													</div>
166
167
												</li>
168
												<li>
169
															Use openssl and then convert the keys to jwk format using PEM to JWK scripts, such as <a href="https://github.com/danedmunds/pem-to-jwk" target="_blank">https://github.com/danedmunds/pem-to-jwk</a>.
170
															Alternatively, the client application can read the key pair in PEM format and then convert them, using JWK libraries.
171
															Use the public key parameters (kty, e, kid, alg, n) to the service registration.
172
												</li>
173
										</ul>
174 60812 katerina.i
175 61745 katerina.i
										<div class="uk-alert-primary" uk-alert>
176
												You can also provide a public key in JWK format that can be accessed using a link.
177
										</div>
178 60812 katerina.i
179 61745 katerina.i
									</p>
180
181
									<h4>How to register your service</h4>
182
									<p>To register your service you need to:</p>
183
									<ol>
184
										<li>Login to OpenAIRE. In case you are not already a member you will need to register first.</li>
185
										<li>Go to your <a href="https://services.openaire.eu/uoa-user-management/registeredServices" target="_blank">Registered Services</a> page and click the New Service button.</li>
186
										<li>Provide the <span class="uk-text-primary"><b>"Νame"</b></span> (mandatory) of your service.</li>
187
										<li>Select the Advanced <span class="uk-text-primary"><b>"Security level"</b></span></li>
188
										<li>Use the public key parameters (kty, e, kid, alg, n) you previously produced to
189
												declare your <span class="uk-text-primary"><b>"Public Key"</b></span> <span class="uk-text-primary"><b>"By value"</b></span>
190
												in the following format:
191
												<pre>
192 60812 katerina.i
{
193 61745 katerina.i
	"kty": "RSA",
194
	"e": "AQAB",
195
	"kid": ...,
196
	"alg": "RS256",
197
	"n": ...
198 60812 katerina.i
}</pre>
199 61745 katerina.i
												<b>- OR -</b>
200
												<p>If your service has a public key in JWK format that can be accessed using a link, you can set <span class="uk-text-primary"><b>“Public Key”</b></span> to <span class="uk-text-primary"><b>“By URL”</b></span>.</p>
201
										</b>
202
										<li>Click the <span class="uk-text-primary"><b>Add New Service</b></span> button.</li>
203
									</ol>
204
									<p>Once your service is created it will appear in the list of your <a href="https://services.openaire.eu/uoa-user-management/registeredServices" target="_blank">Registered Services</a> page, with
205
									the <b>Service Id</b> that was automatically assigned to it by the AAI OpenAIRE service.</p>
206
207
									<h4>How to make a request</h4>
208
									<h5><span class="uk-text-bold">Step 1.</span> Create and sign a JWT</h5>
209
									<p>Your service must create and sign a JWT and include it in the request to token endpoint as
210
										described in the <a href="https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication" target="_blank">OpenID Connect Core 1.0, 9. Client Authentication</a>.
211
									</p>
212
									<p>
213
										<p>To create a JWT you can use <a href="https://mkjose.org/" target="_blank">https://mkjose.org/</a>. To do so you need to create a <b>payload</b> that should contain the following claims:</p>
214
										<pre class="uk-text-left">
215 60812 katerina.i
{
216 61745 katerina.i
	"iss": "{SERVICE_ID}",
217
	"sub": "{SERVICE_ID}",
218
	"aud": "https://aai.openaire.eu/oidc/token",
219
	"jti": "{RANDOM_STRING}",
220
	"exp": {EXPIRATION_TIME_OF_SIGNED_JWT}
221 60812 katerina.i
}</pre>
222 61745 katerina.i
										<ul>
223
													<li><b>iss</b>, <em>(required)</em> the “issuer” claim identifies the principal that issued the JWT. The value is
224
															the <b>Service Id</b> that was created when you registered your service.
225
													</li>
226
													<li><b>sub</b>, <em>(required)</em> the “subject” claim identifies the principal that is the subject of the JWT.
227
																The value is the <b>Service Id</b> that was created when you registered your service.</li>
228
													<li>aud, <em>(required)</em> the “audience” claim identifies the recipients that the JWT is intended for.
229
															The value is <b>https://aai.openaire.eu/oidc/token</b>>.</li>
230
													<li><b>jti</b>, <em>(required)</em> The “JWT ID” claim provides a unique identifier for the JWT.
231
															The value is a random string.</li>
232
													<li><b>exp</b>, <em>(required)</em> the “expiration time” claim identifies the expiration time on or after which the
233
															JWT <b>MUST NOT</b> be accepted for processing.
234
															The value is a timestamp in <b>epoch format</b>.</li>
235
										</ul>
236
										<p>
237
												Fill in the payload in the form available at <a href="https://mkjose.org/" target="_blank">https://mkjose.org/</a>, select the
238
												Signing Algorithm to be <b>RS256 using SHA-256</b> and paste the <span class="uk-text-primary"><b>Public and Private Keypair</b></span>
239
												previously created.
240
										</p>
241
										<p>To check your JWT you can go to <a href="https://jwt.io/" target="_blank">https://jwt.io/</a>. The
242
												<b>header</b> should contain the following claims:</p>
243
												<pre class="uk-text-left">
244 60812 katerina.i
{
245 61745 katerina.i
	"alg": "RS256",
246
	"kid": ...
247
	}</pre>
248
										where <b>kid</b> is the one of your <span class="uk-text-primary"><b>Public and Private Keypair</b></span> you used to sign the JWT in <span class="uk-text-primary"><b>Step 1</b></span>.</li>
249
										</ul>
250
										</p>
251
									</p>
252 60812 katerina.i
253 61745 katerina.i
									<div class="uk-alert-danger" uk-alert>
254
												Store the signed key confidentially on the service side. You will need it in Step 2.
255
									</div>
256 60812 katerina.i
257 61745 katerina.i
									<h5><span class="uk-text-bold">Step 2.</span> Request for an access token</h5>
258
									<p>
259
										To make an access token request use the <em>signed JWT</em> that you created in <span class="uk-text-primary"><b>Step 1</b></span>.
260
										The OpenAIRE AAI server will check if the signed JWT is valid using the public key that you
261
										declared in the <span class="uk-text-primary"><b>"How to register your service"</b></span>
262
										process.
263 60812 katerina.i
264 61745 katerina.i
										<pre class="uk-text-left">
265
	curl -k -X POST "https://aai.openaire.eu/oidc/token" \
266
	-d "grant_type=client_credentials" \
267
	-d "client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer" \
268
	-d "client_assertion={signedJWT}"</pre>
269
										<p>where <b>{signedJWT}</b> is the signed JWT created in <span class="uk-text-primary"><b>Step 1</b></span>.</p>
270
										<p>
271
												The response is:
272
												<pre class="uk-text-left">
273 60812 katerina.i
{
274 61745 katerina.i
	"access_token": {ACCESS_TOKEN}
275
	"token_type":"Bearer",
276
	"expires_in": ...,
277
	"scope":"openid"
278 60812 katerina.i
}</pre>
279 61745 katerina.i
										</p>
280
									</p>
281
									<div class="uk-alert-danger" uk-alert>
282
												<p>Store the access token confidentially on the service side.</p>
283
										</div>
284
285
									<h5><span class="uk-text-bold">Step 3.</span> Make a request</h5>
286
									<p>To access the OpenAIRE APIs send the access token returned in <span class="uk-text-primary"><b>Step 2</b></span>.</p>
287 60812 katerina.i
288 61745 katerina.i
									<pre class="uk-text-left">
289
	GET https://test.openaire.eu/{resourceServicePath}
290
	Authorization: Bearer {ACCESS_TOKEN}</pre>
291
292 60812 katerina.i
293 61745 katerina.i
									<h4>Error messages</h4>
294
									<p>401 - Invalid client assertion</p>
295
									<pre class="uk-text-left">
296 60812 katerina.i
{
297 61745 katerina.i
	"error":"invalid_client",
298
	"error_description":"Bad client credentials"
299 60812 katerina.i
}</pre>
300 61745 katerina.i
301
									<p>401 - Client assertion for missing service</p>
302
									<pre class="uk-text-left">
303 60812 katerina.i
{
304 61745 katerina.i
	"error":"invalid_client",
305
	"error_description":"Could not find client {SERVICE_ID}"
306 60812 katerina.i
}</pre>
307
308 61745 katerina.i
									<p>401 - Expired signed jwt</p>
309
									<pre class="uk-text-left">
310 60812 katerina.i
{
311 61745 katerina.i
	"error":"unauthorized",
312
	"error_description":"Assertion Token in expired: {EXPIRATION_TIME}"
313 60812 katerina.i
}</pre>
314 61745 katerina.i
						</div> <DO NOT REMOVE>
315
					</div>
316
				</div>
317
			</div>
318
			<!-- Page content ENDS here -->
319 60812 katerina.i
320 61745 katerina.i
			<!-- Footer STARTS here -->
321
			<bottom class="footer">
322
				<div class="footer-light-background uk-padding-remove-bottom uk-section uk-section-small">
323
					<div class="uk-container uk-container-small">
324
						<div>
325
							<div id="footer#3" class="uk-first-column uk-flex uk-flex-middle uk-grid uk-margin-remove-right">
326
								<div class="uk-text-center uk-width-1-1 uk-width-1-4@m">
327
									<img width="126px" height="30px" alt="OpenAIRE" loading="lazy" class="el-image" src="assets/common-assets/common/Logo_Horizontal_dark_small.png">
328
								</div>
329
								<div id="footer#5" class="uk-margin uk-text-left uk-width-expand">
330
									<div class="uk-flex uk-flex-middle">
331
										<div>
332
											<img alt="flag black white low" width="50px" height="33px" loading="lazy" style="margin-right: 8px; float: left;" src="assets/common-assets/common/commission.jpg">
333
										</div>
334
										<div class="uk-margin-left">
335
											<div>
336
													<span style="font-size: 8pt; line-height: 0.7!important;">OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452</span>
337
											</div>
338
										</div>
339
									</div>
340
								</div>
341
							</div>
342
							<div>
343
								<div class="uk-width-expand@m">
344
									<div id="footer#7" class="uk-text-right@m uk-text-center">
345
										<ul uk-margin="" class="uk-flex-center uk-margin-remove-bottom uk-subnav uk-subnav-divider"></ul>
346
									</div>
347
								</div>
348
							</div>
349
							<div class="uk-margin uk-text-center uk-width-1-1">
350
								<div uk-grid="" class="uk-child-width-auto uk-flex-center uk-grid uk-grid-small">
351
									<div class="uk-first-column">
352
										<a href="https://www.facebook.com/groups/openaire/" target="_blank" class="el-link uk-icon-button uk-icon">
353
											<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
354
												<path d="M11,10h2.6l0.4-3H11V5.3c0-0.9,0.2-1.5,1.5-1.5H14V1.1c-0.3,0-1-0.1-2.1-0.1C9.6,1,8,2.4,8,5v2H5.5v3H8v8h3V10z"></path>
355
											</svg>
356
										</a>
357
									</div>
358
									<div>
359
										<a href="https://www.twitter.com/OpenAIRE_eu" target="_blank" class="el-link uk-icon-button uk-icon">
360
											<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
361
												<path d="M19,4.74 C18.339,5.029 17.626,5.229 16.881,5.32 C17.644,4.86 18.227,4.139 18.503,3.28 C17.79,3.7 17.001,4.009 16.159,4.17 C15.485,3.45 14.526,3 13.464,3 C11.423,3 9.771,4.66 9.771,6.7 C9.771,6.99 9.804,7.269 9.868,7.539 C6.795,7.38 4.076,5.919 2.254,3.679 C1.936,4.219 1.754,4.86 1.754,5.539 C1.754,6.82 2.405,7.95 3.397,8.61 C2.79,8.589 2.22,8.429 1.723,8.149 L1.723,8.189 C1.723,9.978 2.997,11.478 4.686,11.82 C4.376,11.899 4.049,11.939 3.713,11.939 C3.475,11.939 3.245,11.919 3.018,11.88 C3.49,13.349 4.852,14.419 6.469,14.449 C5.205,15.429 3.612,16.019 1.882,16.019 C1.583,16.019 1.29,16.009 1,15.969 C2.635,17.019 4.576,17.629 6.662,17.629 C13.454,17.629 17.17,12 17.17,7.129 C17.17,6.969 17.166,6.809 17.157,6.649 C17.879,6.129 18.504,5.478 19,4.74"></path>
362
											</svg>
363
										</a>
364
									</div>
365
									<div>
366
										<a href="https://www.linkedin.com/groups/3893548/" target="_blank" class="el-link uk-icon-button uk-icon">
367
											<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
368
												<path d="M5.77,17.89 L5.77,7.17 L2.21,7.17 L2.21,17.89 L5.77,17.89 L5.77,17.89 Z M3.99,5.71 C5.23,5.71 6.01,4.89 6.01,3.86 C5.99,2.8 5.24,2 4.02,2 C2.8,2 2,2.8 2,3.85 C2,4.88 2.77,5.7 3.97,5.7 L3.99,5.7 L3.99,5.71 L3.99,5.71 Z"></path>
369
												<path d="M7.75,17.89 L11.31,17.89 L11.31,11.9 C11.31,11.58 11.33,11.26 11.43,11.03 C11.69,10.39 12.27,9.73 13.26,9.73 C14.55,9.73 15.06,10.71 15.06,12.15 L15.06,17.89 L18.62,17.89 L18.62,11.74 C18.62,8.45 16.86,6.92 14.52,6.92 C12.6,6.92 11.75,7.99 11.28,8.73 L11.3,8.73 L11.3,7.17 L7.75,7.17 C7.79,8.17 7.75,17.89 7.75,17.89 L7.75,17.89 L7.75,17.89 Z"></path>
370
											</svg>
371
										</a>
372
									</div>
373
									<div>
374
										<a href="https://www.slideshare.net/OpenAIRE_eu" target="_blank" class="el-link uk-icon-button uk-icon">
375
											<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
376
												<line fill="none" stroke="#000" stroke-width="1.1" x1="13.4" y1="14" x2="6.3" y2="10.7"></line>
377
												<line fill="none" stroke="#000" stroke-width="1.1" x1="13.5" y1="5.5" x2="6.5" y2="8.8"></line>
378
												<circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="4.6" r="2.3"></circle>
379
												<circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="14.8" r="2.3"></circle>
380
												<circle fill="none" stroke="#000" stroke-width="1.1" cx="4.5" cy="9.8" r="2.3"></circle>
381
											</svg>
382
										</a>
383
									</div>
384
									<div>
385
										<a href="https://www.youtube.com/channel/UChFYqizc-S6asNjQSoWuwjw" target="_blank" class="el-link uk-icon-button uk-icon">
386
											<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
387
												<path d="M15,4.1c1,0.1,2.3,0,3,0.8c0.8,0.8,0.9,2.1,0.9,3.1C19,9.2,19,10.9,19,12c-0.1,1.1,0,2.4-0.5,3.4c-0.5,1.1-1.4,1.5-2.5,1.6 c-1.2,0.1-8.6,0.1-11,0c-1.1-0.1-2.4-0.1-3.2-1c-0.7-0.8-0.7-2-0.8-3C1,11.8,1,10.1,1,8.9c0-1.1,0-2.4,0.5-3.4C2,4.5,3,4.3,4.1,4.2 C5.3,4.1,12.6,4,15,4.1z M8,7.5v6l5.5-3L8,7.5z"></path>
388
											</svg>
389
										</a>
390
									</div>
391
									<div>
392
										<a target="_blank" href="https://www.openaire.eu/newsletter" class="el-link newsletter">
393
											<span class="el-title uk-margin uk-text-large"> Newsletter
394
												<span class="el-image uk-icon">
395
													<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
396
														<circle cx="3.12" cy="16.8" r="1.85"></circle>
397
														<path fill="none" stroke="#000" stroke-width="1.1" d="M1.5,8.2 C1.78,8.18 2.06,8.16 2.35,8.16 C7.57,8.16 11.81,12.37 11.81,17.57 C11.81,17.89 11.79,18.19 11.76,18.5"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M1.5,2.52 C1.78,2.51 2.06,2.5 2.35,2.5 C10.72,2.5 17.5,9.24 17.5,17.57 C17.5,17.89 17.49,18.19 17.47,18.5"></path>
398
													</svg>
399
												</span>
400
											</span>
401
										</a>
402
									</div>
403
								</div>
404
							</div>
405
						</div>
406
					</div>
407
				</div>
408
				<div class="footer-light-background uk-section uk-section-xsmall">
409
					<div class="uk-container uk-container-expand">
410
						<div uk-grid="" class="uk-grid-margin uk-grid">
411
							<div class="uk-width-small@m uk-first-column"></div>
412
							<div class="uk-width-expand@m">
413
								<div id="footer#22" class="uk-text-small uk-margin uk-margin-remove-bottom uk-text-center@m uk-text-center">
414
									<a href="http://creativecommons.org/licenses/by/4.0/" rel="license" class="license"> &nbsp;
415
										<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
416
											<path id="creative-commons" d="M9.7,14.675a1.311,1.311,0,0,1-1.15-.557,2.511,2.511,0,0,1-.391-1.477q0-2.032,1.541-2.034a1.36,1.36,0,0,1,.666.205,1.569,1.569,0,0,1,.605.718l1.541-.8A3.222,3.222,0,0,0,9.457,9.067a3.249,3.249,0,0,0-2.412.964,3.548,3.548,0,0,0-.957,2.61,3.562,3.562,0,0,0,.945,2.63,3.362,3.362,0,0,0,2.485.942,3.367,3.367,0,0,0,1.766-.481,3.408,3.408,0,0,0,1.254-1.326l-1.419-.718a1.44,1.44,0,0,1-1.416.987Zm6.634,0a1.312,1.312,0,0,1-1.15-.557,2.511,2.511,0,0,1-.391-1.477q0-2.032,1.541-2.034a1.389,1.389,0,0,1,.686.205,1.577,1.577,0,0,1,.608.718l1.519-.8a3.181,3.181,0,0,0-3.04-1.663,3.253,3.253,0,0,0-2.412.964,3.546,3.546,0,0,0-.955,2.61,3.576,3.576,0,0,0,.934,2.63,3.349,3.349,0,0,0,2.5.942,3.328,3.328,0,0,0,1.745-.481,3.54,3.54,0,0,0,1.274-1.326l-1.438-.718a1.441,1.441,0,0,1-1.416.987ZM21.156,4.12A11.61,11.61,0,0,0,12.624.64a11.436,11.436,0,0,0-8.44,3.48A11.738,11.738,0,0,0,.641,12.64,11.537,11.537,0,0,0,4.185,21.1a11.532,11.532,0,0,0,8.44,3.541,11.856,11.856,0,0,0,8.592-3.57,11.389,11.389,0,0,0,3.424-8.431,11.583,11.583,0,0,0-3.484-8.52Zm-1.5,15.391a9.631,9.631,0,0,1-7,2.94,9.479,9.479,0,0,1-6.938-2.911A9.422,9.422,0,0,1,2.8,12.64,9.57,9.57,0,0,1,5.747,5.68,9.3,9.3,0,0,1,12.655,2.8a9.4,9.4,0,0,1,6.94,2.88,9.411,9.411,0,0,1,2.884,6.96,9.157,9.157,0,0,1-2.823,6.87Z" transform="translate(-0.641 -0.64)"></path>
417
										</svg>
418
										<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
419
											<g id="Group_756" data-name="Group 756" transform="translate(0)">
420
													<path id="Path_2324" data-name="Path 2324" d="M18.325,11.98a.775.775,0,0,0-.775-.775H12.641a.775.775,0,0,0-.775.775v4.909h1.369V22.7h3.719V16.889h1.37V11.98Z" transform="translate(-3.095 -2.951)"></path>
421
													<path id="Path_2325" data-name="Path 2325" d="M17.209,7.759A1.679,1.679,0,1,1,15.53,6.08,1.679,1.679,0,0,1,17.209,7.759Z" transform="translate(-3.529 -1.83)"></path>
422
													<path id="Path_2326" data-name="Path 2326" d="M12.624.64A11.439,11.439,0,0,0,4.183,4.12,11.736,11.736,0,0,0,.639,12.64,11.537,11.537,0,0,0,4.183,21.1a11.531,11.531,0,0,0,8.441,3.54,11.851,11.851,0,0,0,8.591-3.57,11.383,11.383,0,0,0,3.424-8.43,11.582,11.582,0,0,0-3.484-8.52,11.612,11.612,0,0,0-8.53-3.48Zm.03,2.159a9.4,9.4,0,0,1,6.939,2.88,9.414,9.414,0,0,1,2.883,6.96,9.156,9.156,0,0,1-2.823,6.87,9.63,9.63,0,0,1-7,2.94,9.48,9.48,0,0,1-6.939-2.91A9.425,9.425,0,0,1,2.8,12.64,9.573,9.573,0,0,1,5.746,5.68,9.3,9.3,0,0,1,12.654,2.8Z" transform="translate(-0.639 -0.64)"></path>
423
											</g>
424
										</svg>
425
									</a> &nbsp;Unless otherwise indicated, all materials created by OpenAIRE are licenced under
426
									<a href="http://creativecommons.org/licenses/by/4.0/" rel="license">
427
											CC ATTRIBUTION 4.0 INTERNATIONAL LICENSE
428
									</a>.
429
								</div>
430
							</div>
431
							<div class="uk-width-small@m">
432
								<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right@m uk-text-center">
433
									<a href="#" uk-scroll="" class="uk-totop uk-icon">
434
										<svg width="18" height="10" viewBox="0 0 18 10" xmlns="http://www.w3.org/2000/svg" data-svg="totop">
435
											<polyline fill="none" stroke="#000" stroke-width="1.2" points="1 9 9 1 17 9 "></polyline>
436
										</svg>
437
									</a>
438
								</div>
439
							</div>
440
						</div>
441
					</div>
442
				</div>
443
			</bottom>
444
			<!-- Footer ENDS here -->
445 60812 katerina.i
446 61745 katerina.i
		</div>
447
	</body>
448 60812 katerina.i
</html>