У меня есть сервер Vault, поддерживаемый кластером Consul и интегрированный с моим сервером LDAP, он отлично работает с моим сервером LDAP, и все хорошо с ним работает, но единственное, что я не могу обновить токены, сгенерированные этими логинами.
Для воспроизведения
Шаги для воспроизведения поведения:
- Запустите
vault login -method=ldap username=myusername -renewable=true
и получите токен следующим образом:
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
Как очевидно, свойство 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 и самообновление, но результат был таким же, как и выше.
Ожидаемое поведение
Мое ожидаемое поведение было после запуска vault token renew s.wCQedkMmX61EJszE64HqPzhC
для токена LDAP, когда root
ttl
токена возвращается к creation_ttl
vaule.
Среда:
- Версия сервера хранилища:
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
root@ubuntu:~# vault version
Vault v1.3.0
- Операционная система / архитектура сервера: Моя ОС - 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
Файл (-ы) конфигурации сервера хранилища:
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
в качестве пароля, а затем попробуйте обновить сгенерированный токен.