openaire-api-http-doc/auth_services.html

344 lines
21 KiB
HTML

<!DOCTYPE html>
<html lang="en-gb">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="OpenAIRE API documentation, open access, research, scientific publication, European Commission, EC, FP7, ERC,
Horizon 2020, H2020, search, projects, publications, research data, datasets, HTTP, funders "/>
<link href="assets/common-assets/logo-small-graph.png">
<link rel="apple-touch-icon" sizes="57x57" href="assets/common-assets/logo/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="assets/common-assets/logo/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="assets/common-assets/logo/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="assets/common-assets/logo/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="assets/common-assets/logo/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="assets/common-assets/logo/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="assets/common-assets/logo/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="assets/common-assets/logo/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="assets/common-assets/logo/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="assets/common-assets/logo/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="assets/common-assets/logo/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="assets/common-assets/logo/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="assets/common-assets/logo/favicon-16x16.png">
<link href="assets/common-assets/logo/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"/>
<title>OpenAIRE API documentation - Authentication Services</title>
<script src="./assets/common-assets/jquery/jquery.js"></script>
<script src="./assets/uikit.js"></script>
<script src="./assets/uikit-icon-max.js"></script>
<!-- Include header and footer files -->
<script>
$(function(){
$("#headerMobile").load("headerMobile.html");
$("#header").load("header.html");
});
</script>
<!-- Matomo -->
<script type="text/javascript">
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//analytics.openaire.eu/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '470']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<link rel="stylesheet" type="text/css" href="./assets/common-assets/common/theme.css">
<link rel="stylesheet" type="text/css" href="./assets/common-assets/common/custom.css">
<link rel="stylesheet" type="text/css" href="./assets/common-assets/library.css">
<link rel="stylesheet" type="text/css" href="./assets/develop-custom.css">
</head>
<body class="graphApp">
<div class="uk-offcanvas-content uk-height-viewport">
<!-- Header menu STARTS here-->
<div id="headerMobile" class="tm-header-mobile uk-hidden@m"></div>
<div id="header" class="tm-header uk-visible@m tm-header-transparent" uk-header=""></div>
<!-- Header menu ENDS here-->
<div class=" first_page_section uk-section-default uk-section uk-padding-remove-vertical">
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
</div>
</div>
<!-- Page content STARTS here -->
<div class="uk-section tm-middle custom-main-content" id="tm-main">
<div class="uk-margin-large-left uk-margin-medium-bottom">
<ul class="uk-breadcrumb">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="overview.html">API & Resources</a>
</li>
<li>
<span>Authentication</span>
</li>
</ul>
</div>
<div class="uk-container">
<div class="uk-grid">
<div class="uk-width-1-3@s uk-width-1-4@m uk-width-1-4@l uk-visible@m" >
<ul class="uk-nav-default uk-nav-parent-icon" uk-nav="multiple: false" uk-sticky="offset: 115; media:@s" >
<li class="uk-parent uk-open">
<a href="#">Authentication</a>
<ul class="uk-nav-sub">
<li><a href="#general" uk-scroll>General Information</a></li>
<li><a href="#personal" uk-scroll>Personal Tokens</a></li>
<li><a href="#service" uk-scroll>Service Tokens</a></li>
</ul>
</li>
</ul>
</div>
<div class="tm-main uk-width-expand uk-row-first uk-first-column">
<p>
The OpenAIRE APIs can be accessed over HTTPS both by authenticated and unauthenticated requests. To achieve better rate limits you need to make
authenticated requests. OpenAIRE APIs can be used for both authentication and authorization. This document describes our OAuth 2.0 implementation,
which conforms to the OpenID Connect specification, and is <a href="https://openid.net/certification/" target="_blank">OpenID Certified</a>. OpenID Connect is a simple identity
layer on top of the OAuth 2.0 protocol. For more information about OAuth2.0 please visit the <a href="https://oauth.net/2/" target="_blank">OAuth2.0 official site</a>. For
more information about OpenID Connect please visit the <a href="https://openid.net/connect/" target="_blank">OpenID Connect official site</a>.
</p>
<p>We support the creation of <b>personal</b> and service <b>access tokens</b>.</p>
<h3 class="portal-color" id="personal">Personal access token</h3>
<h4>How to create your personal access token</h4>
To create your personal access token
<ol>
<li>Login to OpenAIRE. In case you are not already a member you will need to register first.</li>
<li>Go to <a>your access token page</a> to get your personal access token.</li>
</ol>
<div class="uk-alert-danger" uk-alert>
<p><b>Do not share your personal access token. Send your personal access token only over HTTPS.</b></p>
</div>
<h4>How to use your personal access token</h4>
<p>To access the OpenAIRE APIs send your personal access token using the Authorization header.</p>
<pre class="uk-text-left">
GET /api/deposit/depositions
Authorization: Bearer {ACCESS_TOKEN}</pre>
<p>The access tokens expire after ???. To get a new access token you can use a refresh token. To get your refresh token</p>
<ol>
<li>Login to OpenAIRE. In case you are not already a member you will need to register first.</li>
<li>Go to <a>your refresh token page</a> to get your refresh token.</li>
</ol>
<div class="uk-alert-danger" uk-alert>
<p><b>Do not share your refresh token. Send your refresh token only over HTTPS.</b></p>
</div>
<p>Refresh tokens are long-lived. This means that when a client gets a refresh token, this token must be stored securely to keep it
from being used by potential attackers. If a refresh token is leaked, it may be used to obtain new access tokens (and access protected resources)
until it is either revoked or it expires (which may take a long time). Access tokens must also be kept secret, but security considerations are
less strict due to their shorter life.</p>
<p>To get a personal access token using your refresh token you need to make the following request</p>
<pre class="uk-text-left">
https://services.openaire.eu/uoa-user-management/api/users/getAccessToken?refreshToken=${your_refresh_token}</pre>
<p>The response has the following format</p>
<pre class="uk-text-left">
{
"access_token": "...",
"token_type":"Bearer",
"refresh_token": "...",
"expires_in": ...,
"scope":"...",
"id_token":"..."
}</pre>
<h4>Error Messages</h4>
<p>Missing Refresh Token</p>
<pre class="uk-text-left">
{
"status" : "error",
"code" : "400",
"message" : "Bad Request",
"description" : "Missing refreshToken parameter"
}</pre>
<p>Invalid Refresh Token</p>
<pre class="uk-text-left">
{
"status" : "error",
"code" : "401",
"message" : "Unauthorised",
"description" : "Invalid refreshToken token"
}</pre>
<h3 class="portal-color" id="service">Service access tokens</h3>
<h4>How to create your service access token</h4>
<p>To create your service access token you need to register your service.</p>
<h5>1. Register your service </h5>
<p>To register your service:</p>
<ol>
<li>Login to OpenAIRE. In case you are not already a member you will need to register first.</li>
<li>Go to <a>your registered services page</a>.</li>
<li>Provide the basic information to register an new service.</li>
</ol>
<h5>2. Create and sign a JWT </h5>
<p>Create a client that must create and sign a JWT and include it in the request to token endpoint.
<p>The header should contain the following claims:</p>
<ul>
<li>alg, (required) the “algorithm” that is used to sign the JWT.</li>
<li>kid, (required) the “key ID” of the key that was used to sign the JWT.</li>
</ul>
<p>The payload should contain the following claims:</p>
<ul>
<li>iss, (required) the “issuer” claim identifies the principal that issued the JWT. Value: client_id of the client.</li>
<li>sub, (required) the “subject” claim identifies the principal that is the subject of the JWT. Value: client_id of the client.</li>
<li>aud, (required) the “audience” claim identifies the recipients that the JWT is intended for. Value: the token endpoint of the issuer.</li>
<li>jti, (required) The “JWT ID” claim provides a unique identifier for the JWT. Value: random string.</li>
<li>exp, (required) the “expiration time” claim identifies the expiration time on or after which the JWT MUST NOT be accepted for processing. Value: timestamp in epoch format.</li>
<li>iat, (optional) the “issued at” claim identifies the time at which the JWT was issued. Value: timestamp in epoch format.</li>
</ul>
</p>
<h4>How to use your service tokens </h4>
</div> <DO NOT REMOVE>
</div>
</div>
</div>
<!-- Page content ENDS here -->
<!-- Footer STARTS here -->
<bottom class="footer">
<div class="footer-light-background uk-padding-remove-bottom uk-section uk-section-small">
<div class="uk-container uk-container-small">
<div>
<div id="footer#3" class="uk-first-column uk-flex uk-flex-middle uk-grid uk-margin-remove-right">
<div class="uk-text-center uk-width-1-1 uk-width-1-4@m">
<img width="126px" height="30px" alt="OpenAIRE" loading="lazy" class="el-image" src="assets/common-assets/common/Logo_Horizontal_dark_small.png">
</div>
<div id="footer#5" class="uk-margin uk-text-left uk-width-expand">
<div class="uk-flex uk-flex-middle">
<div>
<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">
</div>
<div class="uk-margin-left">
<div>
<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>
</div>
</div>
</div>
</div>
</div>
<div>
<div class="uk-width-expand@m">
<div id="footer#7" class="uk-text-right@m uk-text-center">
<ul uk-margin="" class="uk-flex-center uk-margin-remove-bottom uk-subnav uk-subnav-divider"></ul>
</div>
</div>
</div>
<div class="uk-margin uk-text-center uk-width-1-1">
<div uk-grid="" class="uk-child-width-auto uk-flex-center uk-grid uk-grid-small">
<div class="uk-first-column">
<a href="https://www.facebook.com/groups/openaire/" target="_blank" class="el-link uk-icon-button uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<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>
</svg>
</a>
</div>
<div>
<a href="https://www.twitter.com/OpenAIRE_eu" target="_blank" class="el-link uk-icon-button uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<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>
</svg>
</a>
</div>
<div>
<a href="https://www.linkedin.com/groups/3893548/" target="_blank" class="el-link uk-icon-button uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<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>
<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>
</svg>
</a>
</div>
<div>
<a href="https://www.slideshare.net/OpenAIRE_eu" target="_blank" class="el-link uk-icon-button uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<line fill="none" stroke="#000" stroke-width="1.1" x1="13.4" y1="14" x2="6.3" y2="10.7"></line>
<line fill="none" stroke="#000" stroke-width="1.1" x1="13.5" y1="5.5" x2="6.5" y2="8.8"></line>
<circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="4.6" r="2.3"></circle>
<circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="14.8" r="2.3"></circle>
<circle fill="none" stroke="#000" stroke-width="1.1" cx="4.5" cy="9.8" r="2.3"></circle>
</svg>
</a>
</div>
<div>
<a href="https://www.youtube.com/channel/UChFYqizc-S6asNjQSoWuwjw" target="_blank" class="el-link uk-icon-button uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<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>
</svg>
</a>
</div>
<div>
<a target="_blank" href="https://www.openaire.eu/newsletter" class="el-link newsletter">
<span class="el-title uk-margin uk-text-large"> Newsletter
<span class="el-image uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<circle cx="3.12" cy="16.8" r="1.85"></circle>
<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>
</svg>
</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="footer-light-background uk-section uk-section-xsmall">
<div class="uk-container uk-container-expand">
<div uk-grid="" class="uk-grid-margin uk-grid">
<div class="uk-width-small@m uk-first-column"></div>
<div class="uk-width-expand@m">
<div id="footer#22" class="uk-text-small uk-margin uk-margin-remove-bottom uk-text-center@m uk-text-center">
<a href="http://creativecommons.org/licenses/by/4.0/" rel="license" class="license"> &nbsp;
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<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>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<g id="Group_756" data-name="Group 756" transform="translate(0)">
<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>
<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>
<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>
</g>
</svg>
</a> &nbsp;Unless otherwise indicated, all materials created by OpenAIRE are licenced under
<a href="http://creativecommons.org/licenses/by/4.0/" rel="license">
CC ATTRIBUTION 4.0 INTERNATIONAL LICENSE
</a>.
</div>
</div>
<div class="uk-width-small@m">
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right@m uk-text-center">
<a href="#" uk-scroll="" class="uk-totop uk-icon">
<svg width="18" height="10" viewBox="0 0 18 10" xmlns="http://www.w3.org/2000/svg" data-svg="totop">
<polyline fill="none" stroke="#000" stroke-width="1.2" points="1 9 9 1 17 9 "></polyline>
</svg>
</a>
</div>
</div>
</div>
</div>
</div>
</bottom>
<!-- Footer ENDS here -->
</div>
</body>
</html>