无法续订 LDAP 用户登录生成的 Hashicorp Vault 令牌
Cannot renew Hashicorp Vault token generate by LDAP user login
我有一个由 Consul 集群支持并与我的 LDAP 服务器集成的 Vault 服务器,它与我的 LDAP 服务器一起工作正常并且一切顺利,但唯一的问题是我无法更新这些生成的令牌登录。
重现
重现该行为的步骤:
- 运行
vault login -method=ldap username=myusername -renewable=true
得到token如下:
Password (will be hidden):
Success! You are now authenticated. The token information displayed below
is already stored in the token helper. You do NOT need to run "vault login"
again. Future Vault requests will automatically use this token.
Key Value
--- -----
token s.wCQedkMmX61EJszE64HqPzhC
token_accessor qcxkggK00WxgwmxOC9Ht9vpc
token_duration 24h
token_renewable true
token_policies ["default"]
identity_policies []
policies ["default"]
token_meta_username myusername
- 以
root
用户身份登录并 运行 vault token lookup s.wCQedkMmX61EJszE64HqPzhC
检查令牌状态和 ttl:
Key Value
--- -----
accessor qcxkggK00WxgwmxOC9Ht9vpc
creation_time 1576051650
creation_ttl 24h
display_name ldap-myusername
entity_id 1fc1f68d-face-f9f1-468f-36b94e10fb3b
expire_time 2019-12-12T08:07:30.56805754Z
explicit_max_ttl 0s
id s.wCQedkMmX61EJszE64HqPzhC
issue_time 2019-12-11T08:07:30.568070919Z
meta map[username:myusername]
num_uses 0
orphan true
path auth/ldap/login/myusername
policies [default]
**renewable true**
ttl 23h55m5s
type service
很明显token的renewable
属性是true
,type
是service
,所以可以更新。
运行 vault token renew s.wCQedkMmX61EJszE64HqPzhC
更新上面给出的令牌。
当我再次查找令牌时,它的 ttl
没有任何变化。 运行 vault token lookup s.wCQedkMmX61EJszE64HqPzhC
:
Key Value
--- -----
accessor qcxkggK00WxgwmxOC9Ht9vpc
creation_time 1576051650
creation_ttl 24h
display_name ldap-myusername
entity_id 1fc1f68d-face-f9f1-468f-36b94e10fb3b
expire_time 2019-12-12T08:07:30.56805754Z
explicit_max_ttl 0s
id s.wCQedkMmX61EJszE64HqPzhC
issue_time 2019-12-11T08:07:30.568070919Z
meta map[username:myusername]
num_uses 0
orphan true
path auth/ldap/login/myusername
policies [default]
renewable true
ttl 23h53m24s
type service
注意: 我尝试了使用 API 调用和自我更新的上述步骤,但结果与上面相同。
预期行为
对于 LDAP 令牌,我的预期行为是在 运行 vault token renew s.wCQedkMmX61EJszE64HqPzhC
之后,因为 root
令牌的 ttl
返回到 creation_ttl
值。
环境:
- Vault 服务器版本:
root@ubuntu:~# vault status
Key Value
--- -----
Seal Type shamir
Initialized true
Sealed false
Total Shares 5
Threshold 3
Version 1.3.0
Cluster Name vault-cluster-11d62d58
Cluster ID a9704841-7f1c-1986-a880-a2c252f23ed2
HA Enabled true
HA Cluster https://10.1.10.1:8201
HA Mode active
- Vault CLI 版本:
root@ubuntu:~# vault version
Vault v1.3.0
- 服务器运行System/Architecture:
我的 OS 是 Ubuntu 18.04,信息如下:
root@ubuntu:~# uname -a
Linux ubuntu 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Vault 服务器配置文件:
listener "tcp" {
address = "0.0.0.0:8200"
cluster_address = "10.1.10.1:8201"
tls_disable = "true"
}
storage "consul" {
address = "127.0.0.1:8500"
path = "vault/"
}
ui = true
api_addr = "http://10.1.10.1:8200"
cluster_addr = "https://10.1.10.1:8201"
更新:
您可以使用这个示例免费 LDAP 服务器配置。重现情况:
#Test LDAP server
vault write auth/ldap/config \
url="ldap://ldap.forumsys.com:389" \
userdn="uid=tesla,dc=example,dc=com" \
userattr="uid" \
groupattr="cn" \
groupdn="dc=example,dc=com" \
binddn="uid=tesla,dc=example,dc=com" \
bindpass='password' \
starttls=false
登录使用:vault login -method=ldap username=tesla
和 password
作为密码,然后尝试更新生成的令牌。
我有一个由 Consul 集群支持并与我的 LDAP 服务器集成的 Vault 服务器,它与我的 LDAP 服务器一起工作正常并且一切顺利,但唯一的问题是我无法更新这些生成的令牌登录。
重现
重现该行为的步骤:
- 运行
vault login -method=ldap username=myusername -renewable=true
得到token如下:
Password (will be hidden):
Success! You are now authenticated. The token information displayed below
is already stored in the token helper. You do NOT need to run "vault login"
again. Future Vault requests will automatically use this token.
Key Value
--- -----
token s.wCQedkMmX61EJszE64HqPzhC
token_accessor qcxkggK00WxgwmxOC9Ht9vpc
token_duration 24h
token_renewable true
token_policies ["default"]
identity_policies []
policies ["default"]
token_meta_username myusername
- 以
root
用户身份登录并 运行vault token lookup s.wCQedkMmX61EJszE64HqPzhC
检查令牌状态和 ttl:
Key Value
--- -----
accessor qcxkggK00WxgwmxOC9Ht9vpc
creation_time 1576051650
creation_ttl 24h
display_name ldap-myusername
entity_id 1fc1f68d-face-f9f1-468f-36b94e10fb3b
expire_time 2019-12-12T08:07:30.56805754Z
explicit_max_ttl 0s
id s.wCQedkMmX61EJszE64HqPzhC
issue_time 2019-12-11T08:07:30.568070919Z
meta map[username:myusername]
num_uses 0
orphan true
path auth/ldap/login/myusername
policies [default]
**renewable true**
ttl 23h55m5s
type service
很明显token的renewable
属性是true
,type
是service
,所以可以更新。
运行
vault token renew s.wCQedkMmX61EJszE64HqPzhC
更新上面给出的令牌。当我再次查找令牌时,它的
ttl
没有任何变化。 运行vault token lookup s.wCQedkMmX61EJszE64HqPzhC
:
Key Value
--- -----
accessor qcxkggK00WxgwmxOC9Ht9vpc
creation_time 1576051650
creation_ttl 24h
display_name ldap-myusername
entity_id 1fc1f68d-face-f9f1-468f-36b94e10fb3b
expire_time 2019-12-12T08:07:30.56805754Z
explicit_max_ttl 0s
id s.wCQedkMmX61EJszE64HqPzhC
issue_time 2019-12-11T08:07:30.568070919Z
meta map[username:myusername]
num_uses 0
orphan true
path auth/ldap/login/myusername
policies [default]
renewable true
ttl 23h53m24s
type service
注意: 我尝试了使用 API 调用和自我更新的上述步骤,但结果与上面相同。
预期行为
对于 LDAP 令牌,我的预期行为是在 运行 vault token renew s.wCQedkMmX61EJszE64HqPzhC
之后,因为 root
令牌的 ttl
返回到 creation_ttl
值。
环境:
- Vault 服务器版本:
root@ubuntu:~# vault status
Key Value
--- -----
Seal Type shamir
Initialized true
Sealed false
Total Shares 5
Threshold 3
Version 1.3.0
Cluster Name vault-cluster-11d62d58
Cluster ID a9704841-7f1c-1986-a880-a2c252f23ed2
HA Enabled true
HA Cluster https://10.1.10.1:8201
HA Mode active
- Vault CLI 版本:
root@ubuntu:~# vault version
Vault v1.3.0
- 服务器运行System/Architecture: 我的 OS 是 Ubuntu 18.04,信息如下:
root@ubuntu:~# uname -a
Linux ubuntu 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Vault 服务器配置文件:
listener "tcp" {
address = "0.0.0.0:8200"
cluster_address = "10.1.10.1:8201"
tls_disable = "true"
}
storage "consul" {
address = "127.0.0.1:8500"
path = "vault/"
}
ui = true
api_addr = "http://10.1.10.1:8200"
cluster_addr = "https://10.1.10.1:8201"
更新:
您可以使用这个示例免费 LDAP 服务器配置。重现情况:
#Test LDAP server
vault write auth/ldap/config \
url="ldap://ldap.forumsys.com:389" \
userdn="uid=tesla,dc=example,dc=com" \
userattr="uid" \
groupattr="cn" \
groupdn="dc=example,dc=com" \
binddn="uid=tesla,dc=example,dc=com" \
bindpass='password' \
starttls=false
登录使用:vault login -method=ldap username=tesla
和 password
作为密码,然后尝试更新生成的令牌。