You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pinniped配置:如何用Token替代客户端证书登录

解决方法

1. 调整Concierge的OIDC身份提供者配置

默认情况下Pinniped Concierge会发放客户端证书,要改成发放JWT Token,需先修改对应的OIDCIdentityProvider资源,同时确保存在JWTCredentialIssuer:

首先创建(若未存在)JWT凭证签发者:

apiVersion: credentialissuer.pinniped.dev/v1alpha1
kind: JWTCredentialIssuer
metadata:
  name: pinniped-concierge-jwt
  namespace: pinniped-concierge
spec:
  tls:
    certificateAuthorityData: <替换为你的Concierge CA证书base64编码>

然后修改对接Keycloak的OIDC身份提供者,关联上述JWT签发者:

apiVersion: idp.supervisor.pinniped.dev/v1alpha1
kind: OIDCIdentityProvider
metadata:
  name: keycloak-idp
  namespace: pinniped-concierge
spec:
  issuer: https://<你的Keycloak域名>/auth/realms/<你的Realm>
  tls:
    certificateAuthorityData: <替换为Keycloak的CA证书base64编码>
  authorizationConfig:
    additionalScopes: ["openid", "email", "profile"]
  claims:
    username: email # 或你用于映射K8s用户名的Claim字段
    groups: groups
  client:
    secretName: keycloak-client-secret # 你之前创建的客户端密钥Secret
  credentialIssuer:
    apiGroup: credentialissuer.pinniped.dev
    kind: JWTCredentialIssuer
    name: pinniped-concierge-jwt

应用配置:

kubectl apply -f jwt-issuer.yaml
kubectl apply -f oidc-idp.yaml

2. 重新执行登录命令获取Token

现在执行登录时,可选择直接输出Token,或让Pinniped将Token写入kubeconfig后提取:

方式一:直接输出Token到控制台

pinniped login oidc \
  --provider pinniped-concierge/keycloak-idp \
  --output token

执行后会弹出浏览器引导你登录Keycloak,授权完成后控制台将打印JWT Token。

方式二:写入kubeconfig后提取Token

若需同时给kubectl使用,执行:

pinniped login oidc \
  --provider pinniped-concierge/keycloak-idp \
  --kubeconfig ~/.kube/config

登录完成后打开kubeconfig文件,找到对应context的用户配置部分,其中的token字段即为所需的JWT Token,复制即可。

3. 浏览器中使用Token访问K8s

  • Kubernetes Dashboard:打开Dashboard登录页,选择「Token」选项,粘贴复制的Token后点击登录。
  • 直接调用K8s API:在浏览器开发者工具的Network面板中,给请求头添加Authorization: Bearer <你的Token>,即可访问API资源。

注意:需确保你的Keycloak用户已配置对应的K8s RBAC权限,否则即使拿到Token也无法访问资源。

内容的提问来源于stack exchange,提问作者shabbir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:32:37