【发布时间】:2021-08-11 15:06:30
【问题描述】:
抱歉,这个小问题我可能会被否定。
我正在尝试使用 Windows 身份验证从带有 C# ASP.NET Core 应用程序的 kubernetes pod 连接到 SQL Server。
连接字符串应该是什么样的?
<connectionStrings>
<add name="AveenoData"
connectionString="data source=localhost;
initial catalog=NP_DB;persist security info=True;
Integrated Security=SSPI;" />
</connectionStrings>
或者如何将我的 Windows 凭据添加到 Kubernetes pod?
【问题讨论】:
-
通常,当服务器和客户端运行在 Windows 身份验证困难的不同网络中时,我只需更改为普通用户/通过并完全放弃 Windows 的东西。它只是让事情变得更简单。
-
不是连接字符串。我假设您在 Linux 上运行 Kubernetes,这意味着 Windows 身份验证不可用。不过,Windows 身份验证使用 Kerberos,因此您需要在 pod 和服务器的 AD 域之间设置 Kerberos 身份验证。这是a supported scenario,因为 Windows 客户端需要能够在没有硬编码凭据的情况下连接到 Linux 上的 SQL Server。
-
@Alejandro 不,它没有。把婴儿和洗澡水一起扔出去从来都不是一个好的解决办法。现在您必须管理密码、安全存储密码、定期更改密码无需服务器或操作系统的任何支持。用户现在应该记住另一个密码吗?还是应该将密码存储在文件中?
-
官方文档可能有点啰嗦。 This blog post 表明,一旦你加入 AD 域上的 Linux 主机,你只需运行
kinit my.name@MY-DOMAIN.LOCAL以获取当前会话的 Kerberos 令牌,之后你可以使用集成身份验证进行连接 -
使用用户名和密码创建连接字符串。使用 Helm Secrets 确保其安全。这意味着您将拥有一个开发环境和一个生产环境。用户名和密码将由系统管理员在部署时使用 Helm 机密或其他 k8s 加密进行编辑。欢迎使用 Kubernetes 和敏感数据的自我管理。
标签: sql-server asp.net-core kubernetes windows-authentication