gpt4 book ai didi

go - 使用 vault API 包的身份验证方法

转载 作者:IT王子 更新时间:2023-10-29 01:26:36 26 4
gpt4 key购买 nike

我正在尝试使用 Vault Golang Package使用 API 进行身份验证。

我创建了一个新客户端,然后可以设置我的 token :

client, err := api.NewClient(&api.Config{Address: vaultAddr, HttpClient: httpClient})

if err != nil {
return nil, errors.Wrap(err, "could not create vault client")
}

client.SetToken(token)

这很好,但我想使用其他身份验证方法(LDAP、用户密码等)之一对 API 进行身份验证

这可能吗?如何使用 API 检索 token ?

我想我可以只使用 net/http 通过 API 调用检索 token ,但是是否有任何方法可以以另一种方式进行实际身份验证?

最佳答案

我最终设法解决了这个问题。这不是很明显,但很有道理。

Vault 有一个 generic write method它用于写入数据。您可以利用它通过简单地构建 URL 并向该端点发送 PUT 请求来使用 API 执行登录

看起来有点像这样:

// create a vault client
client, err := api.NewClient(&api.Config{Address: url, HttpClient: httpClient})
if err != nil {
panic(err)
}

// to pass the password
options := map[string]interface{}{
"password": password,
}

// the login path
// this is configurable, change userpass to ldap etc
path := fmt.Sprintf("auth/userpass/login/%s", username)

// PUT call to get a token
secret, err := client.Logical().Write(path, options)

关于go - 使用 vault API 包的身份验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42515866/

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