Introduction
This section describes the setup of a SAML <-> ORCID account linking service based on simpleSamlPhp. In addition it exposes the linked ORCID attribute via the SAML Attribute Query protocol.
The core of the setup is an ORCID account linking services, which contains an ORCID SP and an ORCID AA component. The ORCID SP allows endusers to link their SAML based Home Institution account to their ORCID. THis is done by logging in twice: once at the home institution, and once at ORCID. The combination of the ePPN attribute value and the ORCID is then stored in a database. An ORCID AA component allows SAML based SPs to query the attribute authority.
In this scenario, as SURFnet is operating a Hub-and-Spoke federation, it was also investigated how the hub could be used to provide the ORCID attribute to SPs connected to the hub as part of the regular Authentication flow. For this a attribute query client was used in the hub (OpenConext) to query the ORCID AA component just before passing on an authentication to a SP.
mysql> show tables;
+-------------------+
| Tables_in_orcidAA |
+-------------------+
| orcid |
+-------------------+
mysql> select * from orcid;
+-------------------+---------------------+
| orcidUser | orcidId |
+-------------------+---------------------+
| j.doe@example.com | 0000-0001-5470-3703 |
+-------------------+---------------------+
NOTE: secure the orcidUser with some hashing. (not yet done for demo purposes)
use for example sha2:
- php in orcidSP : hash (sha256, $STRING)
- mysql in AA : sha2('$STRING',256)
OpenConext binds everything together
The demo is installed on the host: orcidaa.pt-27.utr.surfcloud.nl
This testing can only be done from within the SURFnet network!
1. add some pointers to this host to your hosts files
145.100.180.187 demo.openconext.org db.demo.openconext.org ldap.demo.openconext.org
145.100.180.187 grouper.demo.openconext.org serviceregistry.demo.openconext.org engine.demo.openconext.org
145.100.180.187 profile.demo.openconext.org manage.demo.openconext.org teams.demo.openconext.org
145.100.180.187 static.demo.openconext.org mujina-sp.demo.openconext.org mujina-idp.demo.openconext.org
145.100.180.187 api.demo.openconext.org apis.demo.openconext.org cruncher.demo.openconext.org
145.100.180.187 csa.demo.openconext.org welcome.demo.openconext.org dashboard.demo.openconext.org
145.100.180.187 aa.demo.openconext.org orcid.demo.openconext.org
2. Visit orcid.demo.openconext.org and login with a standard openconext account. You will be forwarded to orcid and need to login there as well. Your orcid will be stored.
page 1 of orcid-sp:
page 2 of orcid-sp:
3. Visit profile.demo.openconext.org and your orcid id will be displayed next to your other attributes
ORCID: http://orcid.org/
ORCID API: http://support.orcid.org/knowledgebase/articles/180285-introduction-to-the-orcid-api
SimpleSAMLORCID module: https://git.man.poznan.pl/stash/projects/SSP/repos/simplesamlphp/browse
Shibboleth AA setup (Example): https://wiki.terena.org/download/attachments/24215762/HOWTO%20Install%20Grouper%20on%20Ubuntu%20Linux%2012.04.pdf?version=1&modificationDate=1404143729867&api=v2
SimpleSAMLPHP attribute Aggregator: https://github.com/NIIF/simplesamlphp-module-attributeaggregator