【问题标题】:How to set secodary key for kubernetes ingress basic-auth如何为 kubernetes 入口基本身份验证设置辅助密钥
【发布时间】:2019-08-14 02:24:37
【问题描述】:

我想在 k8s 中为我的所有服务提供一个入口,并为入口提供一个基本的身份验证。但是对于身份验证轮换,我想为用户支持辅助身份验证,以便在他们重新生成主键时可以到达端点。

我目前可以关注this guide 设置一个具有单一基本身份验证的入口。

【问题讨论】:

  • 如果您在没有 -c 标志的情况下运行 htpasswd 命令,例如htpasswd <filename> <username> 它将向文件添加一个条目,而不是从头开始创建一个新文件。您可以尝试通过this trick 使用同一文件中的内容更新Secret。听起来auth-secret 注释应该是“包含用户名s 和密码s 的秘密”(强调复数);见here
  • 你能试试,如果它有效,请告诉我?
  • 其实我刚试了下,会把cmets转成答案。

标签: kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

适应the guide,您可以将多个用户名和密码放入您用来生成基本身份验证密码的auth 文件中。具体来说,如果您在没有-c 标志的情况下运行htpasswd 命令,例如htpasswd <filename> <username> 它将添加一个条目到文件中,而不是从头开始创建一个新文件:

$ htpasswd -c auth foo
New password: <bar>
Re-type new password: <bar>
Adding password for user foo

$ cat auth
foo:$apr1$isCec65Z$JNaQ0GJCpPeG8mR1gYsgM1

$ htpasswd auth user2
New password: <pass2>
Re-type new password: <pass2>
Adding password for user user2

$ cat auth
foo:$apr1$isCec65Z$JNaQ0GJCpPeG8mR1gYsgM1
user2:$apr1$.FsOzlqA$eFxym7flDnoDtymRLraA2/

如果您已经通过给定的命令首先创建了秘密:

$ kubectl create secret generic basic-auth --from-file=auth

然后您可以使用this trick 更新密码:

$ kubectl create secret generic basic-auth --from-file=auth\
  --dry-run -o yaml | kubectl apply -f -
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
secret/basic-auth configured

您可以确认设置密码是否有效:

$ kubectl get secret basic-auth -ojsonpath={.data.auth} | base64 -D
foo:$apr1$isCec65Z$JNaQ0GJCpPeG8mR1gYsgM1
user2:$apr1$.FsOzlqA$eFxym7flDnoDtymRLraA2/

最后,您可以使用用户名和密码测试基本身份验证是否有效:

$ curl http://<minikube_ip>/ -H 'Host: foo.bar.com' \
  -s -w"%{http_code}" -o /dev/null
401

$ curl http://<minikube_ip>/ -H 'Host: foo.bar.com' \
  -u 'wronguser:wrongpass' \
  -s -w"%{http_code}" -o /dev/null
401

$ curl http://<minikube_ip>/ -H 'Host: foo.bar.com' \
  -u 'foo:bar' \
  -s -w"%{http_code}" -o /dev/null
200

$ curl http://<minikube_ip>/ -H 'Host: foo.bar.com' \
  -u 'user2:pass2' \
  -s -w"%{http_code}" -o /dev/null
200

【讨论】:

    猜你喜欢
    • 2018-01-11
    • 2020-10-22
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 2018-03-29
    • 2021-10-13
    • 1970-01-01
    • 2020-05-08
    相关资源
    最近更新 更多