首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubenetes客户机- OpenId auth支持

Kubenetes客户机- OpenId auth支持
EN

Stack Overflow用户
提问于 2018-05-30 20:30:22
回答 2查看 1.2K关注 0票数 1

我正在尝试为少数用例使用Kubernetes Java客户端。

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

我们的Kubernetes集群是使用OpenId身份验证实现的。

不幸的是,Java不支持OpenId auth。

Java代码:

代码语言:javascript
复制
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());
        }

错误:

代码语言:javascript
复制
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)

是否有计划支持OpenId客户端的Java。或者,还有别的办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-01 06:37:04

显然不是,但到目前为止,更大的问题是:在oidc环境中,您期望oidc auth-provider会发生什么?就用id-token?是否能够使用refresh-token并在无法重新获取id-token时抛出异常?为您自己管理生命周期的回调系统?

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

是否有计划支持OpenId客户端

只有项目维护人员才能回答这个问题,而且当没有问题描述您期望发生的事情时,他们不太可能知道这种工作的优先级。欢迎访问创造一个

或者,还有别的办法吗?

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

票数 1
EN

Stack Overflow用户

发布于 2019-06-05 07:50:47

请注意,作为api客户端基础的ok-http支持oauth。我们的本地集群使用oidc,我已经能够与它进行如下的对话。

代码语言:javascript
复制
ApiClient client = new ClientBuilder()
    .setBasePath("https://api.kube.example.com/")
    .setAuthentication(new AccessTokenAuthentication(token))
    .build();

我们有一个自定义命令,可以将您登录到系统,这就是我从这里获取令牌的地方。

我还没有尝试过这一点,但是可能有可能为oidc实现一个oidc,然后在KubeConfig#registerAuthenticator(Authenticator)中注册。如果这样做,您将获得与kubectl命令行相同的功能,该命令行似乎知道如何获得刷新令牌,但无法进行预先身份验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50612912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档