Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ORCID as Social Identity Provider #126

Open
NicolasLiampotis opened this issue Sep 28, 2021 · 9 comments
Open

ORCID as Social Identity Provider #126

NicolasLiampotis opened this issue Sep 28, 2021 · 9 comments

Comments

@NicolasLiampotis
Copy link

Use ORCID public/member API for OAuth2 2-legged flow and access to ORCID record, including:

  • identifier (ORCID iD)
  • name
  • email
  • publications
  • CV

See also implementation for SimpleSAMLphp

@hannahshort
Copy link

Btw, ORCID currently doesn't release email in OAuth2. I spoke with the supporters and they do plan to release it in the future but need to better understand the privacy model.

@NicolasLiampotis
Copy link
Author

Btw, ORCID currently doesn't release email in OAuth2. I spoke with the supporters and they do plan to release it in the future but need to better understand the privacy model.

Great! Good to know that they're already considering adding support for email.

In the mean time, we'll investigate developing a custom (Oauth2 based) Identity Provider that can interact with ORCID's record API: https://orcid.github.io/orcid-api-tutorial/read/

From our experience with the PHP based implementation we developed for SimpleSAMLphp, the ORCID record API can release the email information with some caveats:

  1. The Public ORCID API (free) releases email addresses only when marked as publically visible
  2. The Member ORCID API (requires ORCID membership fees) releases email addresses only when marked as visible to trusted third parties

So in both cases the user is required to modify the visibility settings for the email addresses in their profile.

The proper OIDC(OAuth2) way would be to allow the user to authorise the standard email scope to decide whether they want to release their email address for the given client.

@cgeorgilakis
Copy link

cgeorgilakis commented Oct 19, 2021

I have done an implementation for making PR to Keycloak in order to support ORCID as social IdP.

This implementation is being extended for our needs with the following:

  • verified email ( not accepted yet PR for issue#70
  • an extension for parsing publication ( or other fields) , which are json lists. Now Keycloak support a single field only as json.

Finally, we open a dev discussion for overcoming problems for large User Attribute like publications. User Attribute value is 255 length. This is insufficient for large fields.

@cgeorgilakis
Copy link

cgeorgilakis commented Oct 20, 2021

Moreover for related #125 :
My implementation is giving orcid User attribute the value of uri. However, this code is executed only during user initialation.

If admin wants orcid User attribute being able to change, he should createUser Attribute Mapper with force Sync Mode Override.

@cgeorgilakis
Copy link

PR: keycloak#8618
github discussion: keycloak#8620

@cgeorgilakis
Copy link

cgeorgilakis commented Nov 16, 2021

Keycloak team reject our PR for ORCID Social Identity Provider because they do not want to maintain/support it.

I have created a Keycloak extension for ORCID Social Identity Provider and make PR in order to be official Keycloak extension.
Now it is working with current Keycloak version (15.0.2). We will maintain compatibility with newer versions.

Extension jira issue: https://issues.redhat.com/browse/KEYCLOAK-19595.

Emailverified is not added in extension. However, it is related with the following PR. In this PR, Keycloak team want to extend User Attribute Mapper in order to being able to change User field emailVerified. However, PR is stack to their review. After accepting this PR, realm admin will be able to create appropriate User Attribute Mapper for emailVerified for ORCID IdP.

We have added ORCID logo to our vanilla theme ( current branch icons).

@cgeorgilakis
Copy link

Related jira issue for problems with mappers and emailVerified: #136

@cgeorgilakis
Copy link

cgeorgilakis commented Nov 17, 2021

ORCID as Social Identity Provider is official Keycloak extension.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants