Невозможно обновить токен Hashicorp Vault, созданный при входе пользователя LDAP - PullRequest
1 голос
/ 11 декабря 2019

У меня есть сервер Vault, поддерживаемый кластером Consul и интегрированный с моим сервером LDAP, он отлично работает с моим сервером LDAP, и все хорошо с ним работает, но единственное, что я не могу обновить токены, сгенерированные этими логинами.

Для воспроизведения

Шаги для воспроизведения поведения:

  1. Запустите 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                              

  • Версия CLI хранилища:
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 в качестве пароля, а затем попробуйте обновить сгенерированный токен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...