问题标签 [gssapi]

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 投票
3 回答
8785 浏览

java - GSS-API Java 奇怪的错误

我正在运行以下教程:http: //download.oracle.com/javase/6/docs/technotes/guides/security/jgss/tutorials/BasicClientServer.html

我收到以下提示:

我收到以下错误:

你能确定这件事的根本原因吗?

0 投票
1 回答
443 浏览

java - 用于 java gss-api 的 Kerbtray 领域和 kdc

我在 Win7 上使用 kerbtray.exe。

我如何确切知道 java gss-api 登录的领域和 kdc 是什么?

0 投票
1 回答
1821 浏览

c - GSS-API 错误接受上下文:服务密钥不可用 - Solaris 代码、Windows KDC

我正在尝试获取一个针对 Active Directory 工作的测试 Kerberos 客户端/服务器对。我在公司网络的备用域中创建了三个用户,“RichardC”、“Server1”和“Server2”。我的服务器用户已映射到不同的服务主体名称,一个使用 KRB5_NT_PRINCIPAL,另一个使用 KRB5_NT_SRV_HOST。

这次我没有使用 +DesOnly 选项,希望在今天的系统中我不需要 DES。在这个问题中,我已将真实域名替换为 mydomain 以避免管理问题。

这给了我一个密钥表。我可以列出它:

我什至可以使用 kinit -k 使用密钥表中的密钥登录 - 所以它似乎工作。

我有我自己的测试程序,并且没有来自http://download.oracle.com/docs/cd/E19683-01/816-1331/sampleprogs-1/index.html的测试程序。在该程序中,在服务器上,我使用两个 keytab 将 GSS_C_NT_HOSTBASED_SERVICE 更改为 GSS_C_NT_USER_NAME 以使其识别名称。我正在运行 Oracle 演示服务器

和客户

结果:

在这种情况下和我自己的测试代码中,错误发生在客户端发送其第一个令牌之后,而服务器正在尝试对其进行解码。

klist 显示授予客户端的密钥。它正在使用 ArcFour,它位于 keytab 中

可以想象,UNIX 机器(塞尔维亚)可能属于另一个领域(我在这里称为 mydomain.com),尽管它似乎没有设置 Kerberos。我正在使用指向 BENCHMARKING.RDDEV.LOCAL 领域的本地 krb5.conf 文件,但如果机器尝试使用带有其主机名的 DNS,它可能会得到错误的答案。我的 krb5.conf 有

看起来像 default_tkt_types 之类的选项无效。

问题是 - 我该如何解决我的错误?

谢谢 - 理查德

0 投票
3 回答
187 浏览

c - 出于某种原因,当我链接到 Oracle GSS 时开始表现不同(Solaris)

我的测试程序运行良好。我可以创建一个客户端和一个服务器并将它们相互运行。我可以设置我的 KRB5_CONFIG 环境变量并使用本地配置进行测试。

出于某种原因,当我将代码放在我们的生产软件中时,它失败了。即使我将 main() 函数剥离为仅使用硬编码名称调用 gss_import_name() ,我最终也会收到消息“无法打开配置文件”。

如果我运行 truss,那么我会看到很多 Oracle 正在运行。它尝试打开许多不同的 Oracle 跟踪文件。它也试图打开

而不是我指定的文件。

就好像 Oracle 给了我们错误的 gss,或者我们庞大而复杂的构建系统中的其他选项。我注意到 -L/usr/lib/sparcv9 虽然这是在我的 -lgss 之后,如果这很重要的话(因为我经常在 C 中工作太久了!)。该目录中的 libgss.so.1 比 /usr/lib 中的大 - 尽管将该选项放入我的测试程序的链接命令中并不会破坏它。

有什么帮助吗?

谢谢 - 理查德

0 投票
1 回答
101 浏览

java - 填充 LoginContext

无论如何我可以填充一个 LoginContext 而不是使用回调处理程序?我的程序将收到用户名和密码(callbakchandler 处理的内容),我想使用它们而不是手动输入信息。

有没有办法做到这一点?

0 投票
1 回答
978 浏览

java - 将在 Java 中获得的 TGT 用于 SSH/其他应用程序

目前,我能够通过使用 JAAS 并获取从运行 Active Directory 的 Windows 服务器发送的票证授予票证来验证 Java 应用程序中的用户。这很容易用Krb5LoginModulein java 完成。

现在我想从我的 java 应用程序运行一个 ssh 命令并使用我的 TGT 来启用 ssh 不询问密码。我看过一些让 ssh 与 kerberos 一起工作的教程( OpenSSH 和 Kerberoskinit ),但它们用于获取他们的 TGT,并且票证存储在 /tmp/krbcc_XXX 中。然后在生成票证后,他们可以自由地 ssh。

我可以将 TGT 写入磁盘并将其存储在 /tmp/krbcc_XXX 中,或者我可以在 a 中运行 ssh 命令PrivilegedAction,但是我不知道是否可以工作。有没有公​​认的方法来做到这一点?

基本上,我想打电话给这样的东西,它不会要求我输入密码:

0 投票
1 回答
1157 浏览

python - 如何使用 python suds 客户端进行 kerberos 身份验证

我有一个基于 Windows 的 Web 服务,它执行证书吊销。它提供了一个 WSDL 文件,我希望 pythonsuds包使用它来允许我撤销证书。

该服务通过 Kerberos/GSSAPI 进行保护,因此有一个 keytab 文件来提供凭据。如何告诉suds客户端使用 keytab 文件向 Web 服务提供凭据?

换句话说,我想做这样的事情:

0 投票
1 回答
4553 浏览

sasl - SASL 与 gssapi

我正在做一个涉及身份验证的项目,但我不太了解 SASL 和 gssapi 之间的区别。gssapi 是否在 SASL 的掩护下使用?我可以在没有 SASL 的情况下使用 gssapi 吗?正确的做法是什么?

如果我使用 libsasl,是否需要与 libgssapi_* 链接?

谢谢。

0 投票
2 回答
980 浏览

java - 为基于主机的服务更正 Kerberos 主体类型

几种类型的 Kerberos 主体。一个普通的用户princpal就像michael-o@COMPANY.COMKRB_NT_PRINCIPAL。但是像这样的服务HTTP/host.company.com@COMPANY.COM呢?有几种可能的类型,例如KRB_NT_SRV_{INST|HST|XHST}. 什么是正确的?

据我了解INST,仅适用于 TGT。我认为正确的答案应该是HST。我无法在 Oracle 的 JDK 源代码中找到线索,但这两个矛盾点:1 vs. 2

0 投票
1 回答
348 浏览

java - Java GSSAPI:比较两个 GSSCredential 实例

我的代码目前可以很好地为我的网站用户执行 SPNEGO (Kerberos) 身份验证。我有一个特殊的缓存机制来加速一些基于用户身份确认的决策。对于普通密码身份验证,这很简单——将“当前”用户+密码组合与“旧”组合进行比较——如果没有变化,仍然可以缓存决策。否则,他们需要重新评估。

我正在尝试为 Kerberos 做同样的事情。我已经让它大部分工作了,但我很困惑为什么GSSCredential.equals()不能工作。特别是,我在验证每个请求后获得的 GSSCredential 实例是“相同的”,因为它们是针对同一个用户、相同的服务,甚至是在相同的情况下获得的(我认为)。如果我做 atoString()并且比较输出它们是相同的(是的,我知道这无关紧要,但这仍然很好地表明它们可能应该相等)。

但是,GSSCredential_1.equals(GSSCredential_2)在请求之间总是返回 false。这可能是因为每个都是使用不同的 SPNEGO 票证获得的(根据 Kerberos,这是必要的,以避免重播场景),但这些票证仍然属于同一个主体,并且“针对”同一个服务主体。

我需要做出的代码决策最好这样表述:

这些新凭证是否代表与以前使用的相同的安全主体?到期、目的有效性和其他问题单独评估,然后再评估。

比较他们的名字“有效”,但我希望有一些更强大的东西。

有任何想法吗?