通过Kerberos与SQL Server的Docker .NET Core API连接

问题描述 投票:0回答:1

有人成功通过Kerberos将Dockerized .NET Core API 2.2与位于外部客户端云服务器中的SQL Server连接成功吗?

这里我们正面临这些问题:

场景1:如果我们使用这样的连接字符串:

服务器= tcp:SERVER_IP_ADDRESS,1433;数据库= DB_NAME;用户ID = USER;密码=密码;

然后,它需要很长时间并引发如下异常:

SqlException:已成功与服务器建立连接,但是在登录过程中发生了错误。 (提供者:TCP提供程序,错误:0-成功)

方案2:如果我们使用这样的连接字符串:

服务器= tcp:SERVER_IP_ADDRESS,1433;数据库= DB_NAME;用户ID = USER;密码= PASSWORD; Trusted_Connection =真;

然后,例外是:

SqlException:无法使用Kerberos进行身份验证。确保已使用“ kinit”在客户端上初始化了Kerberos,并且已为SQL Server注册了服务主体名称以允许Kerberos身份验证。ErrorCode =内部错误,异常= Interop + NetSecurityNative + GssApiException:GSSAPI操作失败,并显示错误-未指定GSS故障。次要代码可能会提供更多信息(SPNEGO无法找到协商机制)。

所以,我们的双手被绑住了,我们不知道该在哪里跑步。

您能帮我们吗?

谢谢。

sql-server docker .net-core kerberos
1个回答
0
投票

如果您不需要严格的kerberos进行身份验证,只需使用sql用户名和密码即可。

为此,仅在sql服务器上创建一个用户(不在Windows中,使用ssms来执行此操作或使用sql脚本),然后使用该用户,而不是Windows上的用户。

似乎您没有使用sql server身份验证,至少您没有使用sql server用户,但是Windows one和sql server尝试在AD中对用户进行身份验证,而不是在sql server上进行本地身份验证。

但是,如果要使用Windows身份验证,则可能需要使用Windows容器和gMSA帐户,请参见https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/gmsa-run-container

© www.soinside.com 2019 - 2024. All rights reserved.