Skip to main content

Elsevier Developer Portal

Ticketed URL

Ticketed URL Overview

Ticketed URL is a secure authentication link from an organization's intranet or library website to ScienceDirect or Scopus. This link provides secured access to ScienceDirect or Scopus without the need for an additional username and password. Setup is relatively painless, but requires coding from the implementing organization.

What Elsevier provides:
What the integrator (or their consultant) provides:
These 'basic steps' make up the process for creation of a Ticketed URL:
The finished product looks like this:
https://www.sciencedirect.com/user/ticketedUrl?_ob=TicketedURL&_origin=0000&_originUser=abc&_target=https%3A%2F%2Fwww.sciencedirect.com%2Fjournal%2Ficarus&_ts=20101221160442&_version=1&md5=ba14ce234a1be6c28b1459a9a6c8ce2b
In addition:

Ticketed URL Syntax

This is a Ticketed URL:
https://www.sciencedirect.com/user/ticketedUrl?_ob=TicketedURL&_origin=[ORIGIN_ID]&_originUser=[USER_ID]&_target=[ScienceDirect_Target_URL]&_ts=[UTC_TIME_STAMP]&_version=[version]&md5=[MD5 value]
Each variable explained:

Variable Required Definition
_ob Yes Always set this to "TicketedURL". It tells ScienceDirect or Scopus to authenticate using Ticketed URL.
_origin Yes The Origin ID: a unique identifier provided by Elsevier and associated to a customer account record in ScienceDirect's access management system.
Notes:
  • '_origin' cannot be more than 100 characters.
  • Should not contain URL Reserved characters.
_originUser Optional The Origin User ID: A unique identifier representing a userID in a partner's intranet or website. Passing in _originUser allows personal profile creation on ScienceDirect. Leaving this parameter blank results in an anonymous login to ScienceDirect or Scopus.
Notes:
  • '_originUser' cannot be more than 100 characters.
  • Should not contain URL Reserved characters.
  • This can be any alphanumeric string. Keep values globally unique (e.g. appending domain name or similar).
_target Yes The ScienceDirect or Scopus URL users land on after authentication.
_ts Yes A time stamp.
Details:
  • The time stamp should be UCT (Universal Coordinated Time).
  • The time stamp is valid for 5 minutes (enforced within ScienceDirect and Scopus).
  • The format is 'YYYYMMDDHHMMSS'
_version Yes Ticketed URL uses salt values for generation of trusted MD5 hashes (see Section 3. Creating the link). Include the version of the salt value (also supplied by Elsevier) in the URL, but not the salt itself.
md5 Yes The MD5 hash generated from the URL's query portion and the Elsevier provided salt. This assures the validity of the "ticketed URL" and its association to the partner site's credentials.

Ticketed URL Generation Details

About MD5
Ticketed URL employs MD5 (Message-Digest algorithm 5) hashing. Widely used in security-related applications, MD5 functions are common (see https://en.wikipedia.org/wiki/MD5).
Generating a valid Ticketed URL requires calculation of the MD5 hash and insertion of it into the md5 variable of the complete Ticketed URL. This section describes the required string for MD5 hashing in Elsevier's Ticketed URL, and where to insert the hash in the final Ticketed URL.
Ticketed URLs require the MD5 parameter. Ticketed URLs without the MD5 parameter go directly to the ScienceDirect home page without authentication into the partner account.
Typical use case and process logic
Users logging into your web site want to visit ScienceDirect and use content associated with your institution's account. You want your users to create personal profiles once logged into ScienceDirect. Use a Ticketed URL link for this, generated on-the-fly every time a user visits the page.
Start with the following:

Putting all these details together results in a URL that looks like this:
Original URL:  https://www.sciencedirect.com/user/ticketedUrl?_ob=TicketedURL&_origin=0000&_originUser=abc&_target=https%3A%2F%2Fwww.sciencedirect.com%2Fjournal%2Ficarus&_ts=20101221160442&_version=1
Split this into two parts for purposes of calculating the md5 hash:
Base URL:  https://www.sciencedirect.com/user/ticketedUrl?
Query String:  _ob=TicketedURL&_origin=0000&_originUser=abc&_target=https%3A%2F%2Fwww.sciencedirect.com%2Fjournal%2Ficarus&_ts=20101221160442&_version=1
For the MD5 calculation, right-append the salt value to the "query string". Hide the salt value from your users; it is a "shared secret" between you and Elsevier and needs secured away from in-the-clear transmission and viewing.
Right-appending the example salt to the query string looks like this:
_ob=TicketedURL&_origin=0000&_originUser=abc&_target=https%3A%2F%2Fwww.sciencedirect.com%2Fjournal%2Ficarus&_ts=20101221160442&_version=1633!!t683.;te!Jqxoz52n(jcDDHWjGf 
Run the combined query string and salt value through an MD5 algorithm. This is the resulting MD5 hash for the example combined string:
ba14ce234a1be6c28b1459a9a6c8ce2b
Append the md5 hash to the complete URL using parameter 'md5'. Do not include the salt value:
https://www.sciencedirect.com/user/ticketedUrl?_ob=TicketedURL&_origin=0000&_originUser=abc&_target=https%3A%2F%2Fwww.sciencedirect.com%2Fjournal%2Ficarus&_ts=20101221160442&_version=1&md5=ba14ce234a1be6c28b1459a9a6c8ce2b
This is a complete Ticketed URL for authentication into ScienceDirect. Clicking the link logs user "abc" into the example ScienceDirect institutional account and allows user "abc" to create a personal profile. Ticketed URLs expire 5 minutes from the URL timestamp value. Authentication fails for any Ticketed URL submitted more than 5 minutes after its timestamp value.

Elsevier recommends two ways for embedding Ticketed URLS on a web site:

Ticketed URL Examples

With Origin User Id:
https://www.sciencedirect.com/user/ticketedUrl?_ob=TicketedURL&_origin=0000&_originUser=abc&_target=https%3A%2F%2Fwww.sciencedirect.com%2Fjournal%2Ficarus&_ts=20101221170527&_version=1&md5=6fe584137f0a9a2e4e5a7cd287a547c6
Without Origin User Id:
https://www.sciencedirect.com/user/ticketedUrl?_ob=TicketedURL&_origin=0000&_originUser=&_target=https%3A%2F%2Fwww.sciencedirect.com%2Fjournal%2Ficarus&_ts=20101221170527&_version=1&md5=6d7d5ed6dd840e184dc96584499f4c3b

Full MD5 Calculation Example

This example script generates a Ticketed URL following the example process flow described in the previous section.
#!/usr/bin/perl

my $queryStr .= "_ob=TicketedURL";
$queryStr .= "&_origin=$origin";
$queryStr .= "&_originUser=$originUserId";
$queryStr .= "&_target=$targetURL";
my $timestamp =  strftime('%Y%m%d%H%M%S',gmtime);
$queryStr .= "&_ts=$timestamp";
$queryStr .= "&_version=$version";
my $md5Str = $queryStr;

my $md5 = Digest::MD5->new;
$md5->add($md5Str,$urlSalt);
my $digest = $md5->hexdigest;

$prefix .=$queryStr . "&md5=$digest";