gpt4 book ai didi

kubernetes - 如何为 kubernetes 入口基本身份验证设置辅助 key

转载 作者:行者123 更新时间:2023-12-02 11:56:44 24 4
gpt4 key购买 nike

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

我目前可以关注 this guide使用单个基本身份验证设置入口。

最佳答案

适应 the guide ,您可以在 auth 中输入多个用户名和密码用于生成基本身份验证 key 的文件。具体来说,如果您运行 htpasswd没有 -c 的命令标志,例如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/

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

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

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

$ 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

关于kubernetes - 如何为 kubernetes 入口基本身份验证设置辅助 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57487429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com