hongming 可以直接在3.0版本上添加自定义idp吗?我替换成kubespheredev/ks-apiserver:latest后,页面响应很慢

    hongming
    1.我们现在用的kubesphere 3.0的正式版,用您这个kubespheredev/ks-apiserver替换了之后启动不起来(登录界面只显示一对大括号“{}”),这是为什么,是替换了之后还需要设置什么吗?
    2.因为您说的这个镜像启动不起来,所以我们现在在Kubesphere的3.0的代码上按您说的方式添加了自己的oauth2代码配置,编译后把我们的Kubesphere的ks-apiserver服务替换掉,这样虽然可以正常启动,但是登录界面仍然没有显示oauth2登录,这还需要额外配置什么东西吗?

      tjushilei 没有额外的配置了,kubespheredev/ks-apiserver:latest只是增加了部分插件配置,登录界面只显示一对大括号“{}”这个问题不应该, 可以检查一下sha256摘要是否一致,检查下述API的返回,检查一下各组件日志,清理一下浏览器缓存

      curl http://ks-apiserver.kubesphere-system.svc/kapis/config.kubesphere.io/v1alpha2/configs/oauth

      hongming 你好我这边配置oauth2显示出来了,显示大括号“{}”的原因找到了,是因为ldap和oauth2同时配置的问题,那么请问ldap和oauth2不能同时配置吗?只能生效一个吗?


      oauth2认证请求token授权获取到code后,apiserver后台总报这个错,这个什么原因?

        hahahaha OAuth2 callback 401 了,前端应该有错误提示,也可以curl 一下这个API 看看 response

          Unauthorized: unexpected end of JSON input 前段这个错误提示看不出来啊

            hahahaha
            我改了下结构体,将你的这个结构体与用户信息的接口返回数据对应上就行了。

            hongming 我可以实现oauth2登陆了,可是现在有以下两个问题:
            1.我现在不能同时配置ldap,ldap和oauth2只能生效一个,请问如何解决?
            2.kubesphere设置oauth2的时候没有单点登出的字段吗?

            1. 应该是个issue,可以提到github
            2. OAuth2 协议本身是没有登出部分的,认证登录是换取用户身份的过程,登录kubesphere之后用户的会话周期由kubesphere控制,OAuth2 Provider 签发的token应该设置有效期,过期自动失效,另外kubesphere也不会记录此凭证。

              hongming
              这两个问题暂时没法解决吗?
              还有就是,我在其他oauth2客户端进行了登录,这个时候(浏览器有会话保持的时候)我想直接跳到Kubesphere的首页(即已登录状态的首页),这样可以实现吗(目前我们对接jira可以实现)?
              现在是在其他oauth2客户端进行了登录,进kubesphere会跳到登录页,再点击一下"通过oauth2登录"才能跳到首页(不用输入用户名密码)。

                tjushilei 上面提到的问题1 和自动跳转登录近期应该会更新,前端需要稍作调整(现在/oauth/redirect 不会跳转到主页)。问题2可以在插件代码中实现,在获取到用户身份信息之后 ,就可以对provider签发的token进行注销,登录到kubesphere之后换取的是kubesphere中账户的凭证,会话生命周期是由kubesphere进行控制的。

                如果你想实现的是当provider 签发的token失效(被登出) 时自动登出kubesphere, 这个并不属于通用的部分,您可以尝试自己实现该功能

                  hongming 首先您的回答我明白了,感谢回答。
                  请问如果要支持LDAP和oauth2同时登陆的话,需要修改哪部分代码呢?我们找ldap相关代码没找到。