kubernetes - Kubernetes Java客户端-OpenId OAuth支持

标签 kubernetes

我正在尝试使用kubernetes java客户端的几个用例。

https://github.com/kubernetes-client/java

我们的kubernetes集群是通过OpenId身份验证实现的。

不幸的是,Java客户端不支持OpenId身份验证。

Java代码:-

final ApiClient client = io.kubernetes.client.util.Config.defaultClient();
        Configuration.setDefaultApiClient(client);

        CoreV1Api api = new CoreV1Api();
        V1PodList list = api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null);
        for (V1Pod item : list.getItems()) {
            System.out.println(item.getMetadata().getName());
        }

错误:-
13:25:22.549 [main] ERROR io.kubernetes.client.util.KubeConfig - Unknown auth provider: oidc
Exception in thread "main" io.kubernetes.client.ApiException: Forbidden
    at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:882)
    at io.kubernetes.client.ApiClient.execute(ApiClient.java:798)
    at io.kubernetes.client.apis.CoreV1Api.listPodForAllNamespacesWithHttpInfo(CoreV1Api.java:18462)
    at io.kubernetes.client.apis.CoreV1Api.listPodForAllNamespaces(CoreV1Api.java:18440)

是否有任何计划支持Java客户端进行OpenId身份验证。或者,还有其他方法吗?

谢谢

最佳答案

Apparently not,但到目前为止,更大的问题是:在Java设置中,oidc auth-provider会发生什么?只需使用id-token?如果无法重新获得refresh-token,是否可以使用id-token并引发异常?一些回调系统让您自己管理生命周期?

尝试从库中执行oidc充满了危险,因为几乎可以确定没有“用户”可以与之交互。

Is there any plan to support OpenId auth with the Java client



只有项目维护者可以回答这个问题,而且当没有问题描述您期望发生的事情时,他们不太可能会优先考虑此类工作。随意create one

Or, is there any other way?



同时,您仍然拥有 Config.fromToken() ,您可以在其中钓鱼.kube/config并取出现有的id-token,然后处理需要使用ApiException的任何后续refresh-token,因为您将了解有关客户愿意进行的折衷的更多信息。

关于kubernetes - Kubernetes Java客户端-OpenId OAuth支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50612912/

相关文章:

logging - stackdriver-metadata-agent-cluster-level 得到 OOMKilled

docker - Jenkins和Kubernetes在同一虚拟机中

kubernetes - 将多个 k8s secret 组合到一个环境变量中

Kubernetes 仪表板执行问题

kubernetes - 访问在 kubernetes pod 内以 vm 形式运行的外部服务

mongodb - 分片 Mongodb 随机停止

kubernetes - 如何以编程方式检测kubernetes集群是否已经具有入口 Controller ?

docker - 如何在 Jenkins 中使用内部版本号对 docker 图像进行版本控制以部署为 Kubernetes 部署?

kubernetes - 无法从K8S Pod内部解析DNS

logging - Kubernetes 的 Pod 日志文件在哪里?