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

weblogic - kerberos 身份验证-功能组

我有一些 AD 用户,它们链接到一个功能组。我的问题是如何在 keytab 命令中提到这个功能组?据我了解,keytab 使用 AD 用户名和密码。还必须在 keytab 命令中提及密码吗?

句法:

ktpass –princ HTTP/@ -mapuser –pass 密码 -crypto all -ptype KRB5_NT_PRINCIPAL –out

0 投票
0 回答
195 浏览

kerberos - 如何从 kerberos 缓存访问服务票证的值?

我正在尝试调试 kerberos 配置中的问题。kgetcred我使用该实用程序生成了一张服务票。我想访问服务票证的值,以便可以将其放入对受保护资源的请求的授权标头中。

我运行了以下内容:

我可以通过运行看到票存在

我查看了 /tmp/krb5cc_1000 文件,但这似乎以某种方式加密了编码。

在向受保护资源发出 HTTP 请求时,如何获取此票证的值以放入 Authorization 标头中?

0 投票
1 回答
1649 浏览

spring-security - Kerberos:跨域/领域问题

我在帮助客户为我们的软件配置 SSO(使用 Kerberos)时遇到了一个问题。

但首先,让我们给你一些背景:

正如您在附加的 krb5.ini 中看到的那样,我们想做跨域/领域 Kerberos,并且我们有四个不同的(Active Directory;都具有 2008 R2 森林/域功能级别)域。

1) test.local 2) subdomain.test.local (这显然是 test.local 的子域) 3) example.local 4) dummy.local

在 test.local 和 example.local 之间以及在 test.local 和 example.local 之间(手动)设置了双向传递信任。

并且(当然)test.local 和 subdomain.test.local 之间存在默认信任。

跨域名解析工作得很好。

网络服务器是一个 linux 机器(如果我没记错的话,它是一个 RedHat 或 CentOS 安装)。fqdn 是 web001.test.local。

客户端(与它们所属的域不同)将 fqdn web001.test.local 视为本地 Intranet 区域的成员。

我们成功地为 web 服务器创建了一个服务用户和一个相应的 keytab 文件。

如果我们查询 test.local 并搜索 spn,我们会得到正确的响应:

之后我们开始测试并且 Kerberos 工作得很好(如果用户是 test.local 或 subdomain.test.local 的成员),直到我们尝试使用来自 dummy.local 和 example.local 的测试用户登录。

每次用户尝试从这些特定域登录时,我们都会得到以下堆栈跟踪:

正如我之前所说:Kerberos 与 test.local 和 subdomain.test.local 领域/域中的客户端/用户一起工作。

但我不明白为什么它不能与其他域/领域一起使用。

有人可以启发我或至少给我一个提示吗?

提前致谢。

PS 关于调试/响应:我没有直接访问客户域(活动目录)和网络服务器的权限。因此调试和回复您的答案可能需要几天时间。

0 投票
1 回答
350 浏览

mapreduce - 从 Oozie 工作流运行的 mapreduce 中的 HBase 连接失败

我正在将我的 mapreduce 作业作为来自 Oozie 工作流的 java 操作运行。当我在我的 hadoop 集群中运行我的 mapreduce 时,它​​运行成功,但是当我使用 Oozie 工作流中的相同 jar 运行时,它会抛出

这是我的工作流程 .xml

当我在 YARN 中看到日志时,以下是我的异常。即使显示为成功,但未生成输出文件。

0 投票
1 回答
1514 浏览

c# - Windows 身份验证模拟 - 第二个请求获取错误的用户身份

我有以下架构:

我正在为我的服务器端应用程序/api 使用 ASP.NET,并且应该通过“Windows 集成身份验证”对用户进行身份验证。

如您所见,从 server1 到 server2 有第二个跃点。如果两个 WebAPI 不在同一台服务器上,NTML 不支持第二个跃点。所以我配置了一个 AD 域来支持“kerberos”。

它现在适用于第二跳。我的 test-WebAPIs 像这样输出用户的身份:

但是,如果我更改 Client1 上的登录用户并执行与“otherUser2”相同的请求,则只有第一跳获得正确的身份:

在第二个跃点上显示第一个请求的旧用户。我测试了多个场景:如果以下请求来自另一个客户端和另一个 Windows 用户,则行为相同......

看起来第一个请求的 Windows 身份缓存在 server2 上...这对我来说是个大问题,我认为这应该是不可能的...如果在错误的用户中执行请求,这是一个很大的安全漏洞语境!

这是一个已知问题吗?我做错什么了吗?有没有解决方案或更好的配置?

在第一个 ASP.NET WebAPI 上,我使用这样的模拟:

  • 我使用 .NET 的 WebClient 类。
  • 两台 IIS 服务器都配置了“协商”和“NTML”的“Windows 身份验证”。
  • Server1 是域控制器、DNS 和 DHCP 服务器 (+IIS)
  • Server2 只是安装了 IIS 的普通服务器。
  • 所有计算机都在同一个域中。

我无法向我解释这种行为......这对我来说毫无意义。为什么第一个传入请求的身份应该缓存在“server2”上?如果我重新启动 IIS 并使用另一个 Windows 身份重新执行请求,这是“第一个工作请求”,其他人在“server2”上获得他的身份。

0 投票
0 回答
463 浏览

kerberos - 在 ImpersonateSecurityContext 不返回凭据后调用 AcquireCredentialsHandle

我正在编写一个支持 Kerberos 的服务器,它需要接受来自客户端的委托凭据,模拟该客户端,并与充当客户端的远程服务器执行另一个 kerberos 对话。

目前,服务器使用 AcceptSecurityContext 完成与客户端的协商。在为标志调用 QuerySecurityContext 之后,它们指示 ASC_RET_DELEGATE 和 ASC_RET_MUTUAL_AUTH。然后我调用 ImpersonateSecurityContext 成功(SEC_E_OK)。

在这一点上,我有点不清楚该怎么做。作为客户端,我假设我应该调用没有 SEC_WINNT_AUTH_IDENTITY 结构的 AcquireCredentialsHandle 来获取当前“线程”的默认凭据,这应该是我刚刚模拟的那些。但是,此调用始终返回 SEC_E_NO_CREDENTIALS。

我似乎找不到任何执行此操作的代码示例,并且通过委托/模拟清单运行所有这些都表明在 Active Directory 中正确检查了“框”。

我应该做什么或者我做错了什么?我可以根据要求提供更多信息,只是不确定会是什么。

0 投票
1 回答
1824 浏览

java - 使用 jdbc 和 Kerberos 委派连接到 SAP HANA 数据库

是否可以使用 jdbc 和 Kerberos 委派从我的 java 应用程序连接到 SAP HANA DB?

现在我可以创建与 SAP HANA DB 的 jdbc 连接,而无需输入数据库登录名和密码,只使​​用 Windows 登录名。为此,我在 SAP HANA 管理控制台 (user1@domain_name) 中为 db 用户设置 Kerberos 外部 ID,并在创建 jdbc 连接时使用属性“NativeAuthentification=true”。然后我通过 user1 登录到 Windows 并运行我的应用程序,我可以连接到 SAP HANA DB 并选择数据。

但是我需要在客户端计算机上登录到 Windows,运行我的客户端 java 应用程序,连接到我的应用程序服务器,应用程序服务器必须连接到 SAP HANA DB 并具有已连接用户的权限并选择授予此用户的数据。

在客户端 java 应用程序中,我使用 waffle-jna 库获得了 kerberos 令牌,然后我使用它使用 Spring Security 连接到我的应用程序服务器(它有效),但我无法使用此令牌创建到 SAP HANA DB 的 jdbc 连接。我不能使用 Kerberos 委派。

有人通过 jdbc 了解 SAP HANA DB 中的 Kerberos 委派吗?谢谢。

0 投票
1 回答
555 浏览

kerberos - 如何在 Jboss EAP 中为 Kerberos 实现配置组?

我已经为 jboss-eap 中的特定用户配置了使用 Kerberos 身份验证的应用程序,它工作正常。但是要在组的基础上进行相同的配置,即特定组中的用户将能够进行身份验证。

用户的 Standalone.xml 配置:-

我的环境包括:

带有 JBoss EAP 6.2 客户端站的 linux 服务器,带有 Windows 7 64 位 + Chrome Windows Server 2008 Active Directory(充当 KDC)

应用大战地点:- https://github.com/kwart/spnego-demo

有没有人经历过这一切并以某种方式解决了它?

提前谢谢你,悉达多

0 投票
0 回答
363 浏览

spring-security - 在微服务架构中使用 OAuth2 进行委派

我有一个关于 OAuth2 授权的一般性问题。我观看了Dave Syer 关于微服务安全的精彩教程。据我了解,他建议单个微服务将成为Resource servers。这完全没问题。

我还阅读了spring cloud security中的令牌中继部分,据我了解,当您计划转发令牌(但仅此而已)时,这会让您的生活更轻松。

令牌中继实际上代表用户(或上游服务)。允许哪个资源服务器代表用户执行哪些操作是否有任何限制?因为对我来说,允许用户执行操作这一事实与允许任何资源服务器代表用户执行该操作不同。

我记得在 Kerberos 中进行委派很重要。个别服务通过 SPN 获得他们可以委托的权限(对我来说,设置总是很糟糕,但我理解这是必要的)。

这是 OAuth2 中考虑的实现细节还是我在那里遗漏了一些明显的概念?

0 投票
0 回答
1712 浏览

apache-spark - Spark 作业错误:无法更新令牌:种类:TIMELINE_DELEGATION_TOKEN

我正在提交一个火花,它将使用以下命令写入 Kerborized 集群。我没有在 spark 程序中添加任何代码来启用身份验证等。我刚刚通过 spark-submit 传递了 principal 和 keytab。但我收到“无法更新令牌”错误。我的 spark 程序可以连接到 hive 元存储。

我能知道是什么原因造成的吗?

2011 年 7 月 17 日 18:02:42 INFO yarn.Client:客户端令牌:N/A 诊断:无法更新令牌:种类:TIMELINE_DELEGATION_TOKEN,服务:172.27.30.133:8188,标识:(所有者 = 我的所有者,更新者 = 纱线, realUser=, issueDate=1499796160528, maxDate=1500400960528, sequenceNumber=74505, masterKeyId=294) ApplicationMaster 主机:N/A ApplicationMaster RPC 端口:-1 队列:默认开始时间:1499796160725 最终状态:FAILED 跟踪 URL:http:// abcd.net:8088/proxy/application_1499697586013_1727/ 用户:myowner