问题标签 [spn]

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 投票
0 回答
90 浏览

c# - 即使使用 SPN 并允许在计算机上进行委派,ImpersonationLevel 仍然是模拟而不是委派

即使使用 SPN 并允许机器上的 Kerberos 委派,我的 WindowsIdentity 上的 ImpersonationLevel 仍然是模拟而不是委派。

我在开发中有完全相同的设置,在那里我也双跳到开发服务器。我正在尝试将其发布到实时服务器,但我不断收到模拟错误,我无法将模拟级别设置为“委托”

还需要做什么?调试 Kerberos 似乎是不可能的——有没有办法查看它正在检查哪些 SPN?

0 投票
2 回答
1981 浏览

security - Kerberos 中的服务票证 - Hadoop 安全性

我正在尝试使用 kerberos 保护我的 hadoop 集群。我可以使用 kinit 命令生成 TGT。但除此之外,我被困住了。

1)我想知道“serviceTicket”在现实中是什么意思。(不作为描述);使用哪个命令/代码我们可以使用服务票?

2) '.keyTab' 文件和 '.keyStore' 文件有什么用?

Hadoop-Kerberos 故事

  1. 用户使用kinit命令向 KDC 发送身份验证请求。

  2. KDC 发回加密票证。

  3. 用户通过提供他的密码来解密票证。

4. 现在经过身份验证,用户发送服务票证请求。

5. KDC 验证票证并发回服务票证。

  1. 用户将服务票证提交给 hdfs@KERBEROS.com。

  2. hdfs@KERBEROS.com 解密票证,验证用户身份

第四步,“申请服务票”;它实际上是什么意思?要获得 TGT,我们使用“kinit”命令。同样,获得服务票的程序/方法是什么?

我的详细过程:

  • LDAP:活动目录
  • Kerberos:安装在 Ubuntu 中
  • Hadoop 集群:在 Ubuntu 机器上配置,一主一从
  • Ubuntu用户名:labuser
  • Ubuntu 中的领域:KERBEROS.COM

  • 该计划是通过 Kerberos 和 Active Directory 提供 hadoop 安全性

  • 在 Kerberos 服务器机器中为 ActiveDirectory 中存在的用户生成 TGT(使用 kinit 命令)

接下来要将 Kerberos 与 Ubuntu hadoop 集群集成,请执行以下操作,

1)创建委托人的命令:addprinc -randkey namenode/labuser@KERBEROS.COM

2)创建keytab的命令xst -norandkey -k namenode.service.keytab namenode/labuser@KERBEROS.COM (或) ktadd -k namenode.service.keytab namenode/labuser@KERBEROS.COM

3) 分别在 hadoop 配置文件中添加了属性到 Kerberos。

  • 盯着hadoop集群,我们知道所有服务(Namenode,Datanode,Resource Manager和Node Manager)的登录都成功了。

    • 日志信息:INFO org.apache.hadoop.security.UserGroupInformation:用户 dn/labuser@KERBEROS.COM 使用 keytab 文件登录成功 * /home/labuser/hadoopC/etc/hadoop/dn.service.keytab
  • 然而Hadoop 集群没有启动,出现故障,

    • DataNode(java.lang.RuntimeException:没有特权资源无法启动安全集群)

    • NameNode(java.io.FileNotFoundException: /home/labuser/.keystore (没有这样的文件或目录))

请建议上述Kerberos过程是否需要任何更改?如果是,请说明理由

0 投票
1 回答
475 浏览

tomcat - 使用多个 SPN 配置 Tomcat 6

我正在尝试在 Windows Server 2008 上配置 Tomcat 6 以使用识别多个 Kerberos 票证,但运气不佳。我有一个包含多个 SPN 的 keytab,但似乎只能在 spnego 配置中指定一个主体名称。

使用多个 SPN 的原因是,我既可以直接验证与服务器的连接,也可以通过负载平衡器别名验证连接。

有没有人尝试过这个并有任何指示?

登录.conf:

0 投票
1 回答
420 浏览

c# - 检索与 ServicePrincipalName(SPN) 关联的帐户的查询

我们有一个基于 C# 构建的内部站点,并具有用于各种功能的各种工具,以帮助公司查找/修改/添加服务帐户等。这些工具只是自动化这些任务的 C# 代码。/模糊的

我被要求找到/创建一种输入 SPN 并让它返回与其关联的服务帐户的方法。

所以像:

输入:HTTP/server1.company.com

输出:SVC_ACCT_AWESOME

我收到的另一个请求是输入服务帐户名称并让它返回 KVNO。

问题,我以前从未在 C# 中做过任何事情。我已经加载了 Visual Studio 2013,我想学习。我花了几个小时在谷歌上倾注,除了这个之外没有发现任何有用的东西:

https://msdn.microsoft.com/en-us/library/vstudio/system.servicemodel.configuration.identityelement.serviceprincipalname(v=vs.100).aspx

不幸的是,这对我没有任何意义。

任何可以为这些特定任务提供的方向都将非常感激!

谢谢。

0 投票
0 回答
89 浏览

java - 下一个短路数组最短过程

我的数组有

这个数组目前是这样排序的

使用此当前代码

我想要做的是对数组的行进行排序,因此它看起来像这样,取决于B与 的行比较的总和A

因此,当我们将 56+102+125= 283 >200 相加时,我们会得到下一个最小的行6 65 200

我基本上是想实现下一个最短流程

喜欢这张照片

这是我尝试过的代码

0 投票
1 回答
209 浏览

active-directory - 是否在 JAAS 中使用带有 Kerberos 登录模块的 SPN

我正在使用 Jconsole 使用 Jaas 构建一个 Kerberos 登录模块。

Jconsole 将是用于访问具有暴露 MBean 的进程的客户端,kerberos 登录模块将对用户进行身份验证。

用户将通过 Jconsole 登录,Jconsole 会将用户数据传递给登录模块,然后由 Kerberos 登录模块处理用户名和密码,并根据中央活动目录验证用户凭据。

我在为 Kerberos 配置此配置时遇到问题。即。这需要设置 SPN 吗?还是只需要设置一个 KeyTab?

0 投票
1 回答
177 浏览

windows - 使用 SSPI、KERBEROS、SPN 和 127.0.0.1 进行身份验证

我让我的客户端/服务器应用程序在使用 SSPI 的 Windows 系统上通过 KERBEROS 工作并验证客户端。我必须注册一个 SPN 才能完成这项工作,如果我使用 FQDN,一切正常,但是大约需要 4 秒。如果我使用 127.0.0.1 连接,连接几乎是立即的,但身份验证失败。

我注册了以下 SPN:Myapp/127.0.0.1:44555

我想我理解为什么这不起作用,因为它指的是每个系统,而不是专门指一个系统。我不明白的是如何获得使用 127.0.0.1 的所有速度优势,同时还能够执行 KERBEROS 身份验证。

提前感谢,非常感谢您的帮助。

0 投票
49 回答
402519 浏览

sql-server - 目标主体名称不正确。无法生成 SSPI 上下文

我正在努力获得从机器 A 到运行 SQL Server 的机器 B 的 SQL Server 连接。

我用谷歌搜索了很多,我发现的所有东西都没有奏效。他们也不会逐步引导您完成解决此问题的过程。

我们没有使用 Kerberos,而是配置了 NTLM。

在此处输入图像描述

涉及的机器有(出于安全目的,xx 用于掩盖某些机器名称):

  • xxPRODSVR001 - Windows Server 2012 域控制器
  • xxDEVSVR003 - Windows Server 2012(这台机器正在生成错误)
  • xxDEVSVR002 - Windows Server 2012(这台机器正在运行 SQL Server 2012)

以下 SPN 已在 DC (xxPRODSVR001) 上注册。出于安全目的,我用 yyy 遮盖了域:

为 CN=xxDEVSVR002、CN=Computers、DC=yyy、DC=local 注册的 ServicePrincipalNames:

为 CN=xxDEVSVR003、CN=Computers、DC=yyy、DC=local 注册的 ServicePrincipalNames:

现在,如果只有 SQL Server 错误消息更具描述性并告诉我它试图连接的主体名称,我可能能够诊断出这个。

那么任何人都可以指导我如何解决这个问题,或者你能在我提供的内容中看到任何错误吗?

我很乐意生成更多调试信息,请告诉我您需要什么。

0 投票
0 回答
175 浏览

windows - Windows MSA 帐户:我可以在具有 MSA 帐户的两个不同服务器之间执行 WMI / WinRM 命令吗?

Microsoft 允许使用 MSA(托管服务帐户)在两台 Windows 服务器之间建立远程连接,但似乎仅限于有限范围的应用程序(SQL、IIS、Exchange):

据我了解,如果 MSA 帐户可以为其所需的服务注册一个 SPN(服务主体名称),它就可以与另一台服务器进行系统间通信。

以下是我想做的事情:我希望能够使用(Windows 远程监控服务)WinRM / WMI 来运行以下监控命令:

但我不想使用一般的 AD 帐户,因为我不想继续处理 30 天的凭证到期。

0 投票
1 回答
4008 浏览

kerberos - 在哪里运行 setspn 命令?

我正在尝试使用以下命令添加服务主体名称,该命令用于 Windows 身份验证。

我有一个在 IIS 服务器上运行的站点,该站点在连接到域控制器机器的 Windows 2008 服务器上运行。

我必须setspn在 IIS 服务器或域控制器上运行命令吗?