首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VaultSharp的Hashicorp Vault Kerberos身份验证

使用VaultSharp的Hashicorp Vault Kerberos身份验证
EN

Stack Overflow用户
提问于 2020-11-10 18:02:04
回答 1查看 315关注 0票数 0

我很难让Kerberos Auth使用VaultSharp与Vault一起工作。

我不能控制Vault服务器,但我被告知它已配置好,可以使用了。

我正在使用在IIS中运行的.NET,并且我希望使用运行IIS的服务帐户,这样我就不需要存储额外的秘密或用户/密码。

下面是我使用的代码和错误:

代码语言:javascript
复制
public string GetSecretWithKerberosAuthUsingVaultSharp(string keyName, string vaultBaseAddress, string vaultResourcePath, string mountPoint)
{
    IAuthMethodInfo authMethod = new KerberosAuthMethodInfo(); // uses network credential by default.
    var vaultClientSettings = new VaultClientSettings(vaultBaseAddress, authMethod);
    IVaultClient vaultClient = new VaultClient(vaultClientSettings);

    var result = vaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(vaultResourcePath, mountPoint: mountPoint).Result;
    //Above line gives this error message:
    //{"request_id":"a85dfbb3-b283-3513-7cd3-01ad757eed1b","lease_id":"","renewable":false,"lease_duration":0,"data":null,"wrap_info":null,"warnings":["Unauthorised.\n\n"],"auth":null}

    var resultData = result.Data;
    string secret = resultData.Data[keyName].ToString();

    return secret;
}

我已经设法让它工作使用令牌身份验证以及通过CLI,但这并不完全是我想要的。

authMethod.Credentials.UserName/Domain都是空字符串。不知道在这种情况下是否应该填充它们,但文档说明它“默认使用网络凭据”

感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-12-06 17:03:23

您的web应用程序是否在集成的Windows身份验证模式下运行,并禁用了匿名身份验证?

如果不是,请使您的web应用程序在该模式下具有Windows集成身份验证上下文,以便从VaultSharp到Vault API的web调用可以具有安全上下文。

如果是,那么你能尝试几件事吗?

代码语言:javascript
复制
var kerberosAuthInfo = new KerberosAuthMethodInfo(CredentialCache.DefaultCredentials);

如果上述方法不起作用,您可以尝试显式凭据。

代码语言:javascript
复制
var kerberosAuthInfo = new KerberosAuthMethodInfo(new NetworkCredential(userName, password, domain));

理想情况下,web应用程序上下文应该带有集成的windows上下文,这样你就不需要提供明确的凭证,但可能值得尝试确保它首先工作,然后我们可以追溯为什么上下文没有被传递。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64766709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档