hongming 你好,我们现在配置的是ldap登录,请问需要将现有的ldap登录屏蔽掉吗?我配置了oauth2协议现在没有反应。。

hongming 我屏蔽掉了ldap,主页仍然没有任何反应(没有显示oauth2第三方登录),用我的oauth2 provider的账户登录也登不上去。。

    tjushilei 通过 OAuth2 登录之后,获取用户信息的接口往往不同,需要参照Github 、idaas的例子拓展账户关联逻辑。

      hongming 可能我的表达的意思有点歧义,我的登陆页面并没有显示oauth2登录,只有默认的账号密码输入框,我只是尝试了一下使用oauth2的账号密码登录。我现在怀疑可能我配置的都有问题,您看下我的配置:

        hongming 我用的自定义的oauth2 server(java程序写的),是不是就不用开启这个idaas了,在这个配置的type的值就写oauth就行了?

          tjushilei 可以打开我前面发的PR,简单看看,idaas 只是其中一个插件。要使用你们自己的OAuth server 你需要修改一下代码,或是新建IdentityProvider兼容你们私有的API(获取用户信息)。另外我们近期也会加上OIDC 的插件, 你也可以反向兼容一下OIDC(就不需要开发插件了)。

            hongming 我看了您前面发的,我照着配置了一下,然后发现实现不了。新建 identityProvider是在这个配置文件里就像这么建吗,然后type的值改成oauth就可以?

            tjushilei 这个就是示例配置

                identityProviders:
                  - name: aliyunidaas
                    type: AliyunIDaasProvider
                    mappingMethod: mixed
                    provider:
                      clientID: xxxx
                      clientSecret: xxxx
                      endpoint:
                        userInfoUrl: "https://xxxxx.login.aliyunidaas.com/api/bff/v1.2/oauth2/userinfo"
                        authURL: "https://xxxx.login.aliyunidaas.com/oauth/authorize"
                        tokenURL: "https://xxxx.login.aliyunidaas.com/oauth/token"
                      redirectURL: "http://ks-console/oauth/redirect"
                      scopes:
                        - read

            需要用kubespheredev/ks-apiserver:latest 这个镜像或者自己build

              hongming 我们现在用的是kubespheredev/ks-apiserver:3.0.0,也没有生效啊,难道现在的latest是3.0.1吗?

                hongming 还有如果用我们自定义的server那么type字段、mappingMethod字段该填什么?
                我在配置其他产品的oauth2的配置文件的时候并没有见过这两个字段。

                hongming 换了kubespheredev/ks-apiserver:latest之后kubesphere启动不了了,打开页面之后只有一对大括号,请问是不兼容吗,还是我们的操作不对?

                  hongming 插件开发是不是要改这个源码部分,我们已经将代码编译好了,但是不知道要改哪一块的代码去适配账户关联部分,您发的这个代码链接我看到了对应的代码,但是不知道从哪一块下手去改,还望请指教一下,感谢!

                    tjushilei pod 都正常运行吗,有没有什么明显的错误日志,可以把配置贴出来看看

                    kubectl -n kubesphere-system get deploy ks-console -ojsonpath='{.spec.template.spec.containers[0].image}'
                    kubectl -n kubesphere-system get deploy ks-apiserver -ojsonpath='{.spec.template.spec.containers[0].image}'
                    kubectl -n kubesphere-system get cm kubesphere-config -ojsonpath='{.data.kubesphere\.yaml}'