feat(auth/ldap): allow passing the LDAP password via an env var (#18225)

* feat(auth/ldap): allow passing the LDAP password via an environment variable when authenticating via the CLI

* chore(auth/ldap): add changelog entry for PR 18225
This commit is contained in:
Jakob Beckmann
2023-02-23 17:16:17 +01:00
committed by GitHub
parent 7d52daf715
commit 0d3c0c09c8
2 changed files with 19 additions and 8 deletions

View File

@@ -26,12 +26,15 @@ func (h *CLIHandler) Auth(c *api.Client, m map[string]string) (*api.Secret, erro
} }
password, ok := m["password"] password, ok := m["password"]
if !ok { if !ok {
fmt.Fprintf(os.Stderr, "Password (will be hidden): ") password = passwordFromEnv()
var err error if password == "" {
password, err = pwd.Read(os.Stdin) fmt.Fprintf(os.Stderr, "Password (will be hidden): ")
fmt.Fprintf(os.Stderr, "\n") var err error
if err != nil { password, err = pwd.Read(os.Stdin)
return nil, err fmt.Fprintf(os.Stderr, "\n")
if err != nil {
return nil, err
}
} }
} }
@@ -70,8 +73,9 @@ Usage: vault login -method=ldap [CONFIG K=V...]
Configuration: Configuration:
password=<string> password=<string>
LDAP password to use for authentication. If not provided, the CLI will LDAP password to use for authentication. If not provided, it will use
prompt for this on stdin. the VAULT_LDAP_PASSWORD environment variable. If this is not set, the
CLI will prompt for this on stdin.
username=<string> username=<string>
LDAP username to use for authentication. LDAP username to use for authentication.
@@ -89,3 +93,7 @@ func usernameFromEnv() string {
} }
return "" return ""
} }
func passwordFromEnv() string {
return os.Getenv("VAULT_LDAP_PASSWORD")
}

3
changelog/18225.txt Normal file
View File

@@ -0,0 +1,3 @@
```release-note:improvement
auth/ldap: allow providing the LDAP password via an env var when authenticating via the CLI
```