问题标签 [kerberos-delegation]

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 投票
2 回答
6545 浏览

curl - curl 与 Kerberos 错误:选项 --negotiate:安装的 libcurl 版本不支持此

我想将 curl 与 Kerberos 一起使用

或者

但我得到了错误:

我的操作系统:OS X El Capitan

卷发版:

有任何想法吗?

0 投票
1 回答
1056 浏览

python - Pywinrm 和 Active Directory PowerShell cmdlet

我在使用 pywinrm 模块的 Python 代码中遇到了一个奇怪的问题。让我解释一下。我有一个 Linux 服务器,我在其中启动以下 python 脚本:

这将连接到 Windows 服务器(不是 DC)的 HTTPS 侦听器,然后启动组创建命令。

当我直接在 Windows 服务器上启动 AD cmdlet 时,它运行良好,并且在 AD 中创建了安全组。但是通过脚本,我得到以下响应:

我还想注意,如果我用一个基本命令替换当前的 PowerShell 命令(例如,在 Windows 服务器上创建一个文件夹),它就可以工作。

因此,即使安装了 RSAT,它也可以在本地 Windows 服务器上运行,但不能与 AD cmdlet 一起使用......您以前有过这个主题的经验吗?

谢谢您的帮助。

0 投票
0 回答
3731 浏览

hadoop - 在缓存中找不到 HDFS_DELEGATION_TOKEN

我正在运行一个部署在 yarn 客户端模式下的 spark 流作业,它会经常处理 HDFS,我们的 hadoop 集群版本是 hadoop-2.6.0-cdh5.7.3,并且 jira HDFS-9276 中的补丁文件已被引入此版本,但是几天后(主要是 7 天),我仍然遇到以下错误:

顺便说一句: 1. NameNode HA 已启用。2. Kerberos 已启用。3. HDFS Delegation Token(不是 Keytab 或 TGT)用于与 NameNode 通信。

我尝试使用配置“--conf spark.hadoop.fs.hdfs.impl.disable.cache=true”,但没有成功。所以任何人都可以帮助我,我真的很感激!

0 投票
1 回答
1457 浏览

java - 如何在运行 Tomcat 的 linux 服务器上委派 kerberos 客户端凭据?

这与如何将 kerberos 客户端凭据委托给服务器几乎是相同的问题?

但是没有答案。这就是为什么我再次提出这个问题。希望有人可以提供帮助。

是否可以在服务器端为客户端(远程用户)获​​取服务票证,以便使用该票证对另一个后端进行身份验证?

场景:用户 (IE) ==> AppServer(Tomcat,Linux 下)==> 后端(webservice - Windows 上的 REST 服务)

  • 我们让 SPNEGO auth 在 AppServer 中运行和工作

  • AppServer 上 keytab 文件中的 AD 用户有权进行委派(希望如此)

  • GSSManager 可以创建可用于委托的凭证的前提条件是什么?(“context.getDelegCred()”不应该在“GSSManager.getInstance().createContext(this.serverCredentials)”之后失败?

一定有人解决了这个问题?

“Forwardable Ticket true”是否意味着来自 keytab 文件的用户具有委托权限?有人知道吗?

提前致谢

HelloKDC.java 的输出(请参阅下面的摘录)

从 HelloKDC.java 中提取(也来自 net.sourceforge.spnego):


jaas.conf:


krb5.ini


来自 net.sourceforge.spnego.SpnegoAuthenticator.java

创建以下异常:

0 投票
0 回答
837 浏览

solr - 使用 Kerberos 委派创建 CloudSolrClient 的正确方法是什么?

首先,我想检查一下我对如何实施的理解是否正确。

在阅读了Solr 6.6.0 Kerberos 文档(我在下面包含了一些代码片段)之后,我相信我需要创建一个初始 CloudSolrClient 来从 Solr 检索令牌,方法是将 cloudSolrClient 传递给该getDelegationToken(...)方法。

然后看起来我需要创建另一个 CloudSolrClient 对象,该对象HttpSolrClient使用上面检索到的令牌:

我对上面代码的第一个问题是client.getParser()- 客户端尚未初始化,怎么可能在这里使用它?

另外我有多个用户,根据上面的代码,我必须CloudSolrClient为每个用户创建两个对象?第一个检索令牌getDelegationToken,第二个对象使用提供的令牌查询 Solr new CloudSolrClient.Builder() .... .withKerberosDelegationToken(token)更新:我也许可以重用用于检索令牌的 SolrClient。

最后,我不明白更新器是如何工作的 - 我知道令牌可能会过期并且必须更新,但是将字符串作为更新器传递如何帮助更新令牌以及这个字符串应该是什么?如果有人可以向我指出一些有用的文档或提供清晰的解释,我将不胜感激。 更新:我可能错了,但是对于更新者来说,值应该是“zookeeper”我从这里的文档中发现,zookeeper 用于存储和管理令牌信息。

0 投票
1 回答
230 浏览

tomcat - 领域和域语法

我正在尝试设置一个 tomcat 服务器来使用 Kerberos 身份验证。此服务器是 Spotfire 应用程序服务器的基础。我像这样设置我的 krb5.config 文件:

此应用程序服务器需要将用户的凭据委托给另一个名为“anotherserver.mycompany.com”的服务器这对我和某些用户来说效果很好;但是对于其他一些用户组,它不起作用,并且会触发有关特定于该服务器的委托的错误:RequireDelegationStrategy.login。我更改了 krb5 文件中的 domain_realm 条目,我可以使用自己的凭据重现该问题,只需更改以下内容:

请注意,我添加了一个“。” 到“MYCOMPANY.COM”条目。我可以摆脱“。” 并恢复正常工作。因此,这让我认为该问题必须与该特定条目有关,并且我可能必须为该特定服务器添加一个条目。我如下所示添加了它,然后它对任何用户都不起作用。我们都遇到了相同的委派错误:

我的问题是,我是否缺少在文件中添加此条目的语法?如果是这样,在域 relam 中添加这些服务器的正确语法是什么?

0 投票
0 回答
861 浏览

python-3.x - Chrome headless 不支持注册表中的 Chrome 策略

我正在使用 Google Chrome (v.65 stable) 访问使用 kerberos 凭据身份验证的公司 Intranet 站点。为此,我将注册表 Google Chrome 策略编辑为以下内容:

这使我能够成功访问 Intranet 站点。我已经能够使用 Selenium Chromedriver(可以查看 GUI Chrome 浏览器)在启用了 kerberos 的 Intranet 站点上自动化一些进程。但是,如果我在“无头”模式下使用 Chrome,我会返回

错误:需要 HTTP 401 身份验证。

以及未启用 kerberos 凭据委派的消息。下面是 Python 代码。

Chrome headless 可以合并注册表 Google Chrome 策略吗?

0 投票
2 回答
33621 浏览

windows - Ansible playbook,在提升模式下使用特定(域)用户运行 powershell 脚本的正确语法是什么?

在离线环境中运行 Ansible 2.4.2,使用 kerberos 进行身份验证,

通过 ansible playbook,使用特定(域)用户运行 powershell 脚本的正确语法是什么:DOMAIN\someuser,在提升模式下?

提升模式是指在 Windows 界面中,我将通过以 DOMAIN\someuser 身份登录来运行脚本,然后右键单击 cmd 或 powershell 提示快捷方式,选择“以管理员身份运行”。这当然并不意味着我可以使用本地用户运行脚本:“管理员”。

我要运行的是:

我在 become.yml 中尝试的内容:

脚本运行,但与它相关的错误未在高程中运行。对 win_shell 和 raw 进行了同样的尝试。在没有 become_user 和 become_password 的情况下尝试(yml 使用 someuser@DOMAIN.local 用户和密码运行,所以我真的不知道是否需要成为)。

我正在拖过这个并通过成为: http ://docs.ansible.com/ansible/latest/become.html 找不到对解决方案的引用

有任何想法吗?

0 投票
1 回答
2515 浏览

powershell - PowerShell 远程处理、第二跳和委派

我正在寻找在出现第二跳的情况下实施 WinRM 的最安全方法。具体来说,我想从任意但单一的管理机器运行脚本,并使用单个特定管理用户的传递凭据在所有工作站上启动远程会话。那里的那些远程会话需要能够第二跳到文件服务器上的特定共享,以访问适当的资源。我知道 CredSSD 很弱,所以我正在寻找更好的东西。Richard Siddaway在这里提到了“基于 AD 的委派” ,但我发现的关于委派的最佳信息来自 MS这里,并且所有委派选项都显示“不支持 WinRM 的第二个跃点”。那么,是否有一种安全的方法可以通过 Active Directory 为单个指定的用户或组启用 Second Hopping?理想情况下,我希望将第二跳限制为仅指定的第三个服务器/共享,并且仅适用于指定的用户或组。因此,任何使用不同凭据的远程会话都不能第二跳,正确的凭据也不能第二跳到其他资源。这甚至是远程可行的吗?

0 投票
0 回答
150 浏览

wcf - KerbRetrieveEncodedTicketMessage 因受约束委派而失败

我们正在使用带有 KerbRetrieveEncodedTicketMessage 类型的 KERB_RETRIEVE_TKT_REQUEST 的 LsaCa​​llAuthenticationPackage。

我们模拟一个 Windows 身份,然后使用 LsaCa​​llAuthenticationPackage 来获取票证。

使用无约束委派时,我们能够检索票证(tgt 和服务票证)。当我们尝试约束委派时,对 LsaCa​​llAuthenticationPackage 的调用失败并显示:LsaStatus 2148074254:指定的登录会话不存在。它可能已经被终止

我们的服务通过集成 Windows 身份验证接收初始 Windows 身份。

我们已经检查并重新检查了约束委派配置和 SPN ......一切似乎都很好。

我们观察到,使用 IWA,一旦服务帐户设置为使用约束委派,WindowsIdentity 的模拟级别就会从委派更改为模拟(这可能与我们的问题相关,也可能不相关)。我们正在运行接收标识的非 IIS 托管 WCF Web 服务。

我们想知道 KERB_RETRIEVE_TKT_REQUEST 的设置是否存在一些差异,以便在使用约束委派时检索票证。

或者,也许有一些 WCF 设置需要以不同的方式完成。

谢谢,