问题标签 [integrated-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10539 浏览

java - 使用 jTDS 驱动程序的 Kerberos 和集成安全性

到目前为止,我们使用 MS JDBC Driver 4.0 使用集成安全性和 Java Kerberos 连接到 SQL Server 2008,一切正常。

这是代码:

弹簧上下文:

login.conf 文件:

krb5.conf 文件:

我们在运行项目时传递了以下参数:

现在,我们决定使用 jTDS 代替 MS JDBC 驱动程序,我对上述配置进行了以下更改:

  1. 将驱动程序类从更改com.microsoft.sqlserver.jdbc.SQLServerDrivernet.sourceforge.jtds.jdbc.Driver
  2. 将连接字符串从更改jdbc:sqlserver://...jdbc:jtds:sqlserver://...
  3. 将 jTDS JAR 和 NTLM 身份验证 DLL 文件添加到类路径

但它给了我以下错误:

org.apache.commons 的线程“main” org.apache.commons.dbcp.SQLNestedException 中的异常:无法创建 PoolableConnectionFactory(I/O 错误:GSS 失败:未提供有效凭据(机制级别:找不到任何 Kerberos tgt)) .dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) 在 org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) 在 org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044 ) at org.foo.utils.Foo.main(Foo.java:51) 原因:java.sql.SQLException:I/O 错误:GSS 失败:未提供有效凭据(机制级别:找不到任何 Kerberos tgt)在 net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:654) 在 net.sourceforge.jtds.jdbc.JtdsConnection.(JtdsConnection.java:371) 在 net。sourceforge.jtds.jdbc.Driver.connect(Driver.java:184) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory. java:582) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) ... 3 更多原因: java.io.IOException:GSS 失败:net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1976) 在 net.sourceforge.jtds 中未提供有效凭据(机制级别:无法找到任何 Kerberos tgt)。 jdbc.TdsCore.login(TdsCore.java:617) ... 还有 9 个DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) at org .apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) ... 3 更多原因:java.io.IOException:GSS 失败:未提供有效凭据(机制级别:找不到任何 Kerberos tgt) net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1976) 在 net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:617) ... 9 更多DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) at org .apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) ... 3 更多原因:java.io.IOException:GSS 失败:未提供有效凭据(机制级别:找不到任何 Kerberos tgt) net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1976) 在 net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:617) ... 9 更多java:582) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) ... 3 更多原因: java.io.IOException:GSS 失败:net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1976) 在 net.sourceforge.jtds 中未提供有效凭据(机制级别:无法找到任何 Kerberos tgt)。 jdbc.TdsCore.login(TdsCore.java:617) ... 还有 9 个java:582) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) ... 3 更多原因: java.io.IOException:GSS 失败:net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1976) 在 net.sourceforge.jtds 中未提供有效凭据(机制级别:无法找到任何 Kerberos tgt)。 jdbc.TdsCore.login(TdsCore.java:617) ... 还有 9 个无法在 net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1976) 在 net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:617) 找到任何 Kerberos tgt) ... 还有 9 个无法在 net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1976) 在 net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:617) 找到任何 Kerberos tgt) ... 还有 9 个

我已经尝试过的事情:

  1. useKerberos=true;尝试将和附加useNTLMv2=true;到连接字符串
  2. 尝试附加domain=org.foo.com到连接字符串

但这似乎不起作用。我尝试在互联网上搜索,但找不到任何解决方案。

如果有人可以帮助我,将不胜感激。

0 投票
1 回答
590 浏览

c# - 在 .Net 中强制 URL 的特定 SPN

使用 .Net 框架(C# 和 Powershell)访问 Kerberized HTTP 服务时,我遇到了不一致的行为。它与我们的 DNS 配置以及我们使用CNAME而不是 Kerberized 服务的 A 记录有关。Microsoft 建议的解决方法是确保您使用 A 记录作为主机名,但这在我的公司环境中不是一个选项。

我需要一个允许我为特定 URL 强制使用特定 SPN 的解决方案,确保我对 SPN 使用与 URL 相同的主机名。或者,强制使用一致的策略将 URL 解析为 SPN 的选项。

0 投票
1 回答
1002 浏览

docker - 在以自定义用户身份运行的 Docker 中运行 ASP.NET Core 应用程序

我有一个 ASP.NET Core 应用程序使用Integrated Security=True连接字符串连接到数据库,因此运行该应用程序的用户的凭据用于连接到数据库,因此我不必在其中添加用户名和User Id=username;Password=password密码连接字符串。

如何使用我域中的用户帐户运行上述应用程序的 Docker 容器。这甚至是我能做的事情吗?如果是这样,它仍然是推荐的方法吗?这似乎可以使用 Windows 容器,但是 linux 呢?

0 投票
1 回答
4300 浏览

sql-server - 使用来自 Azure AD 的凭据进行本地 SQL Server 访问

我正在尝试从 Azure 访问本地资源(数据库)。我想使用在 Azure AD 用户(AD 组)上设置的权限来避免用户获得对数据库数据的过多访问权限。

因此,我有一个 Azure AD 用户和一个 Web 应用程序通过 azure 混合连接连接到本地数据库(本地)。当我访问数据库时,Azure 使用内置 IIS 帐户而不是登录用户(与本地域 AD 用户同步的 Azure 用户)。这可能吗,如何做到这一点?

0 投票
0 回答
132 浏览

sql-server - 在 Google Docs Script 中使用 DB 连接的集成安全性?

我想使用 Script 通过 Script 在 Google docs 中建立与 MS SQL 的连接integrated security = SSIP,基本上是使用我的集成 Windows 身份验证连接到服务器。但是,Google 告诉我“集成安全”连接属性不受支持。我尝试了不同的措辞(trusted_security 等),但没有任何效果。

有谁知道解决方法?

我使用了谷歌下面提供的查询。

0 投票
0 回答
796 浏览

oracle - 使用带有 Windows 身份验证的 OLEDB 连接到 Oracle

我有一个 Active Directory 帐户“Contoso\SomeWinAccount”,我需要使用它来连接到 Oracle 数据库。当我以用户 Contoso\SomeWinAccount 运行命令提示符时,我可以像这样成功连接到 Oracle:

SELECT user FROM dual;返回 OracleUserName。这很好用,这正是我所需要的。

问题是,我需要使用 PowerShell 和 OLEDB 来实现相同的目标。使用此连接字符串,我可以连接,但SELECT user FROM dual返回 SomeWinAccount:

为了能够在连接时充当 OracleUserName,我需要进行哪些更改?OLEDB提供商甚至可以吗?

版本:Oracle 12.2

0 投票
1 回答
25 浏览

sql-server - 即使在设置了默认架构和默认数据库之后,也没有应用默认架构

我有一个有趣的问题!让我为你铺垫:

1) Windows 身份验证

2) 已为登录 XCORP\USERA 的用户设置了默认模式 identityiq

3) 已为登录 XCORP\USERA 的用户设置了默认数据库 identityiq

4) XCORP\USERA 没有系统管理员

5) XCORP\USERA 是数据库的所有者

6)尝试运行新的数据库设置脚本(删除并重建数据库)

好的,正如我所提到的 - 这很有趣,原因如下 - 我有一个数据库帐户(我们将其称为 IdentityIQUSER),它使用 SQL 登录身份验证和完全相同的设置,可以正常工作!(完全相同的设置意味着我可以在漂亮的小方框中选中和取消选中)我可以在 SQL 帐户上毫无问题地拨打电话。只有当我使用 windows 帐户时,我才发现问题。在做了一些灵魂搜索之后,我运行了以下命令,引导我找到了出错的路径(可能与登录有关)选择 SCHEMA_NAME(); 有趣的是,返回的不是identityiq,而是dbo,所以我做了更多的挖掘,发现了大量的有效访问。如果有帮助,我可以提供一份清单。所以这是我的三个问题。

问题 1:是否可以授予任何有效访问权限,这会导致 DBO 成为默认架构(类似于 sysadmin 发生的情况)

问题 2:AD 组可以控制您在服务器上获得的有效访问权限吗?如果这里的答案是肯定的,有谁知道我如何追踪 AD 中的哪个组授予这些有效的访问权限?

问题 3:我从未在数据库中如此深入 - 所以我可能没有看正确的事情,所以如果这不是前进的正确方向,我应该去哪里看?

另外作为旁注,我正在寻找是否可以使用显式访问覆盖有效访问(因为我相信拒绝优先)并且令人讨厌的是,当我重新登录时,我的所有访问都已恢复......我可能是第一个抱怨过多访问的人。大声笑感谢您花时间看。

0 投票
1 回答
3653 浏览

sql-server - SSIS 错误:用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败

我们将 2012 SSIS 包转换为 2016 SSIS(TargetServerVersion = SQL Server 2016)。

SSIS 包读取的数据库之一是 SQL Server 2012 数据库。

使用 Native OLE DB\SQL Server Native Client 11.0 连接或使用 SQL Server 的 OLE DB 提供程序连接都会产生相同的错误。

从 SSMS 运行 SSIS 包时(使用对 2012 数据库具有 dbOwner 权限的用户运行 SSMS,即 myDomain\myUser),我在从 2012 数据库读取表的步骤中遇到错误

在 Visual Studio(使用 myDomain\myUser 运行)上,我能够成功运行 SSIS 包。

myDomain\myUser 在 SSISDB 数据库中还具有 ssis_admin、ssis_logreader、db_owner、app_dbowner 角色。

我该如何解决这个错误?谢谢你。

0 投票
0 回答
70 浏览

android - 是否可以使用具有集成安全性的 JDBC 建立从 Android 到 Sql 服务器的连接?

我是安卓新手。

当我想将 Android 连接到 SQL Server 时,我遇到了问题。在这条线上:

con = DriverManager.getConnection(ConnURL);

我收到一个错误:

java.lang.NoClassDefFoundError:解析失败:Lorg/ietf/jgss/GSSManager;

有人知道如何解决吗?是否可以为 Android 制作“integratedSecurity=true”?谢谢你。

我的代码:

0 投票
0 回答
167 浏览

authentication - Sharepoint Online - CSOM - 使用集成身份验证进行身份验证

我正在从本地 Sharepoint 2010 迁移到 Sharepoint Online。

我有 Office 插件,它使用具有代码 CSOM 的 Web 方法来在线使用 Sharepoint。Web 服务托管在 IIS 中,并在 Windows 2016 域中集成了 NTLM 安全性。此域与 AzureAD 同步,并且我们配置了“单点登录”。

我需要使用 SPS 自动对使用 Office 插件的用户进行身份验证。我已经使用以下代码测试了代码:

这很好用,但我需要这样的东西:

所以:用户在他的 PC 中使用 Office、CALL webservice (IIS)、CALL Sharepoint Online 进行身份验证

如何使用集成安全性自动进行身份验证?