问题标签 [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.
java - 使用 jTDS 驱动程序的 Kerberos 和集成安全性
到目前为止,我们使用 MS JDBC Driver 4.0 使用集成安全性和 Java Kerberos 连接到 SQL Server 2008,一切正常。
这是代码:
弹簧上下文:
login.conf 文件:
krb5.conf 文件:
我们在运行项目时传递了以下参数:
现在,我们决定使用 jTDS 代替 MS JDBC 驱动程序,我对上述配置进行了以下更改:
- 将驱动程序类从更改
com.microsoft.sqlserver.jdbc.SQLServerDriver
为net.sourceforge.jtds.jdbc.Driver
- 将连接字符串从更改
jdbc:sqlserver://...
为jdbc:jtds:sqlserver://...
- 将 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 个
我已经尝试过的事情:
useKerberos=true;
尝试将和附加useNTLMv2=true;
到连接字符串- 尝试附加
domain=org.foo.com
到连接字符串
但这似乎不起作用。我尝试在互联网上搜索,但找不到任何解决方案。
如果有人可以帮助我,将不胜感激。
c# - 在 .Net 中强制 URL 的特定 SPN
使用 .Net 框架(C# 和 Powershell)访问 Kerberized HTTP 服务时,我遇到了不一致的行为。它与我们的 DNS 配置以及我们使用CNAME而不是 Kerberized 服务的 A 记录有关。Microsoft 建议的解决方法是确保您使用 A 记录作为主机名,但这在我的公司环境中不是一个选项。
我需要一个允许我为特定 URL 强制使用特定 SPN 的解决方案,确保我对 SPN 使用与 URL 相同的主机名。或者,强制使用一致的策略将 URL 解析为 SPN 的选项。
docker - 在以自定义用户身份运行的 Docker 中运行 ASP.NET Core 应用程序
我有一个 ASP.NET Core 应用程序使用Integrated Security=True
连接字符串连接到数据库,因此运行该应用程序的用户的凭据用于连接到数据库,因此我不必在其中添加用户名和User Id=username;Password=password
密码连接字符串。
如何使用我域中的用户帐户运行上述应用程序的 Docker 容器。这甚至是我能做的事情吗?如果是这样,它仍然是推荐的方法吗?这似乎可以使用 Windows 容器,但是 linux 呢?
sql-server - 使用来自 Azure AD 的凭据进行本地 SQL Server 访问
我正在尝试从 Azure 访问本地资源(数据库)。我想使用在 Azure AD 用户(AD 组)上设置的权限来避免用户获得对数据库数据的过多访问权限。
因此,我有一个 Azure AD 用户和一个 Web 应用程序通过 azure 混合连接连接到本地数据库(本地)。当我访问数据库时,Azure 使用内置 IIS 帐户而不是登录用户(与本地域 AD 用户同步的 Azure 用户)。这可能吗,如何做到这一点?
sql-server - 在 Google Docs Script 中使用 DB 连接的集成安全性?
我想使用 Script 通过 Script 在 Google docs 中建立与 MS SQL 的连接integrated security = SSIP
,基本上是使用我的集成 Windows 身份验证连接到服务器。但是,Google 告诉我“集成安全”连接属性不受支持。我尝试了不同的措辞(trusted_security 等),但没有任何效果。
有谁知道解决方法?
我使用了谷歌下面提供的查询。
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
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:我从未在数据库中如此深入 - 所以我可能没有看正确的事情,所以如果这不是前进的正确方向,我应该去哪里看?
另外作为旁注,我正在寻找是否可以使用显式访问覆盖有效访问(因为我相信拒绝优先)并且令人讨厌的是,当我重新登录时,我的所有访问都已恢复......我可能是第一个抱怨过多访问的人。大声笑感谢您花时间看。
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 角色。
我该如何解决这个错误?谢谢你。
android - 是否可以使用具有集成安全性的 JDBC 建立从 Android 到 Sql 服务器的连接?
我是安卓新手。
当我想将 Android 连接到 SQL Server 时,我遇到了问题。在这条线上:
con = DriverManager.getConnection(ConnURL);
我收到一个错误:
java.lang.NoClassDefFoundError:解析失败:Lorg/ietf/jgss/GSSManager;
有人知道如何解决吗?是否可以为 Android 制作“integratedSecurity=true”?谢谢你。
我的代码:
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 进行身份验证
如何使用集成安全性自动进行身份验证?