Spring SSO和帐户创建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring SSO和帐户创建相关的知识,希望对你有一定的参考价值。

所以我正在开展一个大学项目,我的团队需要创建一个android应用程序,该应用程序通过spring与后端构建进行对话。到目前为止,我们一直在使用JWT进行用户身份验证/授权,一切都很好,花花公子。但是,我们的客户想要与谷歌和Facebook进行单点登录,当然仍然可以创建一个帐户,就像这个表格一样(但是在Android上,而不是浏览器)。

我花了上个月研究和谷歌搜索如何做到这一点,特别是它应该如何与Android应用程序集成。我觉得我错过了一个关键点,因为我到处都看到了这一点,所以我认为这并不难。据我所知,我可以有两个端点:login / google,login / facebook获得授权服务器授权。我有,我遵循了这个指南,我理解它的70%。

然后我的想法是让第一次登录的用户保存在我们的数据库中。我不完全确定如何做到这一点(因为我不完全确定SSO弹簧代码是如何工作的......)。我的主要问题是:

  • 如何使用google / fb进行社交登录以及使用凭据进行帐户/登录的能力。
  • 如果用户要创建帐户,我是否拥有自己的授权服务器来存储凭据,或者我是否在主服务器上进行管理。
  • 我如何处理Android应用程序?我是存储刷新令牌还是我还做其他事情?

再一次,我觉得我在这里错过了一个关键点,我只是在困惑中迷茫。如果你们能为我清理一切,我将非常感激!

PS:我已经做了很多研究并阅读了很多指南,其中大部分都是基本的...我不是在寻找任何人给我写代码,我正在找人解释整个事情是怎样的应该工作。

答案

有几件事

  1. 您希望与任何社交提供商(如google / fb)集成spring-social。按照教程添加依赖关系并进行配置请参阅https://github.com/spring-projects/spring-social/wiki/quick-start
  2. 如果您还希望用户创建自己的帐户,则不需要授权服务器。您需要的是具有配置的弹簧安全香草形式设置

就像是

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .formLogin()
                .loginPage("/login/")
                .loginProcessingUrl("/j_spring_security_check")
                .usernameParameter("j_username")
                .passwordParameter("j_password")
                .successHandler(authenticationSuccessHandler())
                .failureHandler(authenticationFailureHandler())
                .permitAll()
            .and()
            .logout()
                .logoutUrl("/logout")
                .logoutSuccessHandler(logoutSuccessHandler())
                .invalidateHttpSession(true)
}
  1. 是的,但我建议你找一个你可以插入的oauth库..希望它能为你处理refresh_token逻辑..你不应该自己实现这些东西。

我希望这对一些人有所帮助,你问的这些问题非常广泛......但希望它会让你在某个地方。

以上是关于Spring SSO和帐户创建的主要内容,如果未能解决你的问题,请参考以下文章

整合spring cloud云架构 - commonservice-sso服务搭建

Spring - 如何使用 SAML 2.0 实现单点登录

Spring Cloud云架构 - commonservice-sso服务搭建

Spring Cloud云架构 - commonservice-sso服务搭建

管理员帐户的 Azure AD SSO 登录问题

OKTA 的 Spring Security Saml 配置错误