问题标签 [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 投票
1 回答
546 浏览

windows - 如何更改用于登录的 SharePoint Windows 身份验证提示时间?

在我的环境中,我的 SharePoint 2010 在带有 IIS7 的 Windows Server 2008 R2 上运行。添加 SPN 后的预期行为是默认提示用户 3 次。如何配置提示次数?也许2或5次?

0 投票
1 回答
4254 浏览

java - Java/SPNEGO:不需要的 SPN 规范化?

我目前正在尝试使用 SourceForge 中的SPNEGO 库(服务器使用相同的库)将 Java 客户端实现到受 SPNEGO 保护的 Web 服务。我无法让它成功验证,我的请求总是以

这类似于我从具有不适当主机名的浏览器访问 Web 服务时得到的症状,并且确实 Wireshark 中的一些调试显示客户端发送了错误的 SPN 与请求 - 我发送到service-test.client.com注册为 SPN并且在 DNS 中有A记录,但在 Windows 域中注册为server-1234.client.corp. 即使我将请求发送到http://service-test.client.com(请参阅匹配Host的标头),Java 请求票证的 SPN 是“内部”Windows 名称:

HTTP 请求的 Wireshark 解码

从 Chrome 或 IE 发送的相同内容具有匹配的Host标头和 SPN:

在此处输入图像描述

由于在我的代码或 SPNEGO 库中没有发生这种转换,我认为它一定是在 JRE 中发生的。我一直在研究 JGSS 源代码,但有点难以理解。谁能告诉我如何跳过这个翻译并获得正确 SPN 的票?

客户端代码:

0 投票
0 回答
1236 浏览

security - kerberos匿名登录

我正在尝试在 Java 上实现 Kerberos 身份验证以使用 Sharepoint 2010。
已经进行了大量配置:SPN、委托、权限、网络。使用 org.ietf.jgss 实现 Kerberos。

当前状态如下: IE 工作正常,Java 应用程序工作不正确。

我现在几乎唯一的区别是在事件查看器\Windows 日志\安全中。
如果我使用 Internet Explorer 登录,它会显示:

帐户已成功登录。
...
新登录:
安全 ID:COMPANYDOMAIN\myusername
帐户名称:myusername
帐户域:COMPANYDOMAIN
...
详细身份验证信息:
登录过程:Kerberos

使用我的 JavaApp 登录:

帐户已成功登录。
...
新登录:
安全 ID:匿名登录 ------> ???
帐户名:myusername
帐户域:COMPANYDOMAIN.NET ------> .NET(!)
...
详细的身份验证信息:
登录过程:Kerberos

使用 Wireshark,我可以看到票证在端点被成功接受,除了加密令牌的大小之外没有任何区别,甚至更多 - SharePoint 确实适用于我的 java 客户端。为什么它在匿名登录下工作的问题是不同的,我应该在某个地方关闭它。

主要问题是为什么安全 ID 是“匿名登录”,而帐户名和域是有效的?委派\模拟问题?但是 IE 在即使不在 Active Directory 之外的机器上也能正常工作。

如果需要,我可以提供其他信息:网络流量、SPN、应用程序池、权限、AD 配置。

============================

已解决:通过取消选中 Active Directory 用户帐户属性(选项卡帐户,帐户选项部分)中的复选框“不需要 Kerberos 预身份验证”来解决问题。

0 投票
2 回答
952 浏览

asp.net - 如何使用窗口服务帐户使用窗口身份验证托管 asp.net 应用程序

我正在一个使用 Active Directory 进行任何类型的应用程序身份验证的组织工作。

我们最近在 ASP.NET 上创建了一个 Web 应用程序,使用 Sql Server 进行数据库连接。在开发过程中,我们使用窗口身份验证连接到 Sql Server 2008。当应用程序完成时,是时候在 IIS 上托管这个应用程序了。

挑战

我们被要求使用窗口服务帐户在服务器上托管此应用程序。我们不应该在任何地方使用任何类型的用户名密码。它应该是活动目录驱动和窗口身份验证驱动的。

现在我不知道如何进行此操作。我是否需要对 Web 配置进行任何更改以配置模拟,或者我需要更改我的连接字符串。

我只知道我们必须使用 Window 身份验证。

任何指导方针都会有很大帮助

0 投票
2 回答
1490 浏览

powershell - 无法从 PowerShell 调用 setspn

我需要从 PowerShell 调用 Setspn.exe。但任何尝试都失败了:

但我可以启动 cmd,并且可以从命令行调用 setspn。

0 投票
1 回答
17994 浏览

kerberos - Kerberos:UPN 和 SPN 之间的区别

我现在正在使用 GSSAPI 对跨平台应用程序进行 kerberizing。虽然我不清楚 UPN 和 SPN 之间的区别。

开发环境是 CentOS 6.4 上的 Samba4 AD DC 服务器,带有 Windows server 2008 R2 域中的成员框,例如EXAMPLE.COM(您可能会好奇为什么不直接使用 Win2008 作为 DC。正如我之前所说,该应用程序是跨平台的,我现在正在这个设置中测试。正常的 Win DC-Linux MEM 设置工作正常。)。我创建了一个新用户foobar:users来运行应用程序。当我使用foobar@EXAMPLE.COMUPN 来针对 Kerberos 对应用程序进行身份验证时,我不断收到

Kerberos:主体可能无法充当服务器错误

在Samba 邮件列表上的一个线程app/dc.example.com之后,我想我应该为 UPN 创建一个服务主体名称,例如samba-tool

这次我会收到另一个错误

Samba4 KDC - 在 hdb 中找不到这样的条目

我的问题是 UPN 和 SPN 之间有什么区别?通过samba-tool spn list foobar,它说foobar servicePrincipalName app/dc.example.com。如何将 UPN 与 SPN 关联?

非常感谢。

0 投票
1 回答
255 浏览

spn - MPJ-Express 错误 mpjdev.MPJDevException:在 Comm.irecv() 中,请求的源 1 在大小为 1 的通信器中不存在

我正在尝试运行在http://alchemy.cs.washington.edu/spn/找到的一些 Sum Product Network 代码

当我尝试在我的 mac (ver 10.8.4) 上运行它时,我遇到了以下错误:

这发生在我给出的任何 np 值上。我假设这不是 SPN 代码的问题,而是我正在使用 MPJ-Express 做的事情。我已经为 MPJ-Express 尝试了 0.40 和 0.37 版本并得到了相同的结果。

谢谢你的时间。

0 投票
1 回答
419 浏览

kerberos - Kerberos - SPN 和密钥表

我有一个嵌入了启用 SPNEGO 的码头的项目。我希望能够在本地运行这个项目以用于开发目的(启用 SPNEGO!)

我的问题是,SPN 和 keytab 是否与特定服务器相关联,或者我可以在我的服务的多个实例上使用相同的集合吗?

0 投票
0 回答
376 浏览

c# - kerberos 如何识别 SPN 条目

问题一:有没有办法让setspn.exe在不需要重启电脑的情况下生效?

问题 2:我确实设置了 SPN 并在服务器上运行了我的 WCF 服务。客户端使用 Kerberos 连接,然后我更改了客户端的 Identity 元素并再次尝试。我发现它使用的是 NTLM 而不是 Kerberos,但这很好。

当我确实更改了 WCF 服务配置文件中的 SPN 并重新运行服务(不更改注册的 SPN)时,我发现它在客户端使用了 Kerberos 身份验证。为什么更改 WCF 服务的标识元素没有任何效果?怎么会这样?

注意:我正在使用提琴手来检查身份验证。

服务器端配置文件:

客户端配置文件:

0 投票
1 回答
397 浏览

wcf - WCF 客户端默认 SPN 生成

WCF 客户端如何动态生成目标服务的 SPN 以获取 Spnego 用例中的 kerberos 票证?例如,如果目标服务在域机器帐户下运行,则与该服务关联的 SPN 将采用“主机/机器名”的形式。

如果我们尝试使用 wcf 客户端调用服务,wcf 客户端能够获取主机/机器名的票证。我最初认为 wcf 客户端可能默认使用硬编码字符串 host/+domainname。

但是如果我将目标服务更改为在域用户下运行并将名为“http/machinename”的 SPN 与域用户相关联,wcf 客户端仍然能够成功生成该服务的票证。

WCF 客户端如何决定在这些场景中使用前缀“host/”还是“http/”。

我知道有一种方法可以在端点元素下的客户端添加自定义 spn,但我很想知道默认情况下它是如何工作的。