ORCID是否有任何Spring Social客户端模块?

时间:2016-06-18 23:07:51

标签: oauth-2.0 single-sign-on spring-social orcid

Spring Social是否有ORCID客户端模块(开放研究员和贡献者ID)?服务提供商已有客户端模块,例如Spring Social FacebookSpring Social TwitterSpring Social LinkedIn等。

ORCID提供了一个持久的数字标识符,可以将一位研究人员与另一位研究人员区分开来。它已被全球采用,在撰写本文时(2016年6月),已有近二百五十万个ORCID iD注册。

ORCID基于OAuth 2.0协议提供带有ORCID的SSO(单点登录)服务。使用ORCID支持SSO需要越来越多的Web应用程序。并且可能还有更多的Web应用程序需要使用ORCID的基于OAuth 2.0的REST API,例如,将文章/数据提交给ORCID Registry。

Spring Social框架已广泛用于将Spring应用程序连接到软件即服务(SaaS)API提供程序,如Facebook,Twitter和LinkedIn。 ORCID的Spring Social客户端模块,类似于Spring Social Facebook等,将极大地简化上述Web应用程序的开发,这对于所有学科领域的出版商,机构等都非常有益。世界。

2 个答案:

答案 0 :(得分:2)

我创建了the Spring Social ORCID project,作为Spring Social的扩展,可以与ORCID集成。 (注意:我已将此项目投入欧洲PMC,新版本将发布到its GitHub repository

我还写过an example web application使用Spring Social ORCID模块(以及Spring Social Facebook)来测试模块并演示如何使用它,其方式几乎与使用相同Spring Social Facebook。

不仅仅是Web应用程序,您还可以在Web服务中使用Spring Social ORCID,如the spring social orcid client example project on the rest_web_service branch所示。 Web服务还支持“记住我”功能。

任何Web应用程序都可以通过JavaScript使用基于Spring Social ORCID的Web服务连接到ORCID。我创建了another example project来演示这个,它也使用了“记住我”功能。

Spring Social ORCID项目远非完美,但我认为这不是一个糟糕的开始:-)欢迎您提供帮助,并帮助改进它。

答案 1 :(得分:0)

为了跟进Yuci,我创建了一个Spring和Spring启动集成示例的存储库。有些只需要配置。 ORCID最近发布了OpenID Connect和隐式OAuth功能,您现在也可以使用少量的javascript进行客户端身份验证。

ORCID结束时的更改意味着Spring启动只需要this

@SpringBootApplication
@EnableOAuth2Sso
@Controller
public class ReallySimpleOrcidOauthApplication {

    @RequestMapping("/")
    @ResponseBody
    public final String home() {
        return "Welcome, " + SecurityContextHolder.getContext().getAuthentication().getName();
    }

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(ReallySimpleOrcidOauthApplication.class);
        Properties properties = new Properties();
        properties.put("security.oauth2.client.clientId", "XXX");
        properties.put("security.oauth2.client.clientSecret", "XXX");
        properties.put("security.oauth2.client.accessTokenUri", "https://sandbox.orcid.org/oauth/token");
        properties.put("security.oauth2.client.userAuthorizationUri", "https://sandbox.orcid.org/oauth/authorize");
        properties.put("security.oauth2.client.tokenName", "access_token");
        properties.put("security.oauth2.client.scope", "openid");
        properties.put("security.oauth2.resource.userInfoUri", "https://sandbox.orcid.org/oauth/userinfo");
        application.setDefaultProperties(properties);
        application.run(args);
    }
}

还有一个使用JWT的客户端隐式流的示例。此更多ORCID OAuth和OpenID连接示例可以是found on github