问题标签 [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 回答
39533 浏览

java - 针对 Active Directory 的 Java 身份验证,身份验证不匹配?

所以我有一些我正在测试的代码,以确保它可以很好地用于身份验证。它对直接 kerberos 效果很好,所以我认为 AD 应该只有一些小问题。不幸的是,我无法绕过 KrbException:KDC 不支持加密类型 (14)。

我知道错误是加密类型不匹配。但是我可以很好地启动,它只是在我遇到问题的代码中。我没有设置任何东西,所以我认为它应该继承与 kinit 相同的默认值,但显然情况并非如此。

编码-

和 jaas.conf

而且,堆栈跟踪-

0 投票
1 回答
1873 浏览

python - Windows 上的 SASL-GSSAPI 在绑定期间失败

我在 RHEL 上尝试了下面的代码行,效果非常好。在 Linux 上,我只需要获得 Kerberos 票。

然后我将同样的东西复制到安装了 ActivePython-2.7","python-ldap-2.4.10","openssl-0.9.8o","setup-sasl-1.5.27" 的 Windows 2k3 服务器中。

有人可以帮我吗?

0 投票
2 回答
3896 浏览

java - KDC - 我们从哪里得到服务器?

我正在尝试使用 java 执行 kerberos 身份验证。

我启用了调试。

当尝试使用 tgt 连接到 LDAP 时,我得到了(服务器名称已更改):

我的回答是:

  1. 从哪里获得 kdc 服务器 (server123.myserver.com)?

  2. 我可以改变它吗?

谢谢。

0 投票
2 回答
2900 浏览

c# - C# 中的 GSSAPI 和 Active Directory

这可能是一个愚蠢的问题,但是否可以从 Active Directory 获取当前登录用户的 GSSAPI 令牌?

我有一个连接到服务器的简单库。我可以传递用户名、密码和域名或 GSS 令牌(base64)。目前第一种方法对我有用,但用户必须输入密码让他们很恼火。

我找不到任何关于 GSSAPI 的信息以及它与 Active Directory 的集成。

在 C# 中可能吗?

基于@Harvey Kwok 评论的更多信息: Library is called Altair COMand it is used for document management

以下是有关使用 GSS 登录的一些 API 参考:

以下是VB中的示例用法:

和VC++的用法

这是我掌握的所有信息。


我发现了一些显示登录过程的代码片段:

但是我必须输入该令牌,并且我仍在尝试为当前用户生成它。

0 投票
1 回答
4840 浏览

java - 节俭的 Kerberos?

我有一个简单的基于 Thrift 的 java 应用程序。它真的非常简单,只不过是在 java 中使用 Thrift 进行“Hello World”消息传输。有人告诉我,我需要在我的消息中添加 Kerberos 支持。我做了一些谷歌搜索,很惊讶 Thrift 还没有某种形式的 Kerberos 支持(或者如果有,我找不到它)。我考虑过使用 GSSAPI 编写自己的包装器,但我无法包装/解开我的 Thrift 消息,因为这会破坏 Thrift 消息格式。

有没有人曾经使用 Kerberized Thrift?.. 或者知道它会怎么做?

提前致谢。

0 投票
3 回答
3065 浏览

java - 在没有 krb5.conf 的情况下配置 kerberos

我正在使用 kerberos 身份验证登录到 ActiveDirectory。我正在使用 GSSAPI 进行操作。

目前,我正在使用 krb5.conf 文件,该文件描述了领域、加密算法等,并且身份验证工作正常。

我想避免使用这个文件。我可以在不使用此文件的情况下以编程方式配置 kerberos 吗?

谢谢。

0 投票
1 回答
448 浏览

java - Java 中的可发布 Kerberos 票证

我需要在我的 Java 应用程序中使用可发布日期的Kerberos 票证。但是我没有在GSSContext界面中找到任何方法。Java 不支持此 Kerberos 功能吗?

目的如下:在我们的应用程序中,用户可以设置一个批处理,该批处理将在将来运行一段时间。并且应用程序服务器将不得不使用在批处理执行时有效的委托票证,而原始票证可能已过期。

编辑:澄清我的第一个陈述:我发现GSSContext,GSSContextImpl以及GSSContextImpl不允许访问setAuthTime()仅在Krb5Context. 在没有深入研究所有细节的情况下,似乎只能通过对未记录类的某些直接访问来实现后验身份验证。

由于让客户端浏览器发送带有正确标志的票证似乎还有其他问题 - 正如@Michael-O指出的那样 - 我想我将不得不找到另一个解决方案,也许只是询问用户用户名和密码,将它们与批处理一起加密保存,然后在批处理开始时请求新票。

过期票的概念听起来很适合我的问题,但似乎缺乏实际用途,导致现有环境无法很好地支持它。

0 投票
1 回答
448 浏览

c++ - 想澄清一些 GSS-API kerberos 编程的一般概念

我是 GSS-API 的新手。我在一个项目中,其目标是实现 KERBEROS。
我阅读了麻省理工学院的应用程序开发人员文档 - http://web.mit.edu/kerberos/krb5-latest/doc/appdev/index.html链接。
并阅读 RFC-2744 GSS-API C BINDINGS。

我的问题是,
* KERBEROS 协议包括 -
AS-REQ、AS-REP、TGS_REQ、TGS-REP、AP-REQ、AP-REP
* GSS-API包括 -
凭证管理例程(例如 gss_acquire_cred)、上下文级别例程(例如 gss_init_sec_context)等

如何利用 GS​​S-API 例程来实现 kerberos?
因为,我没有看到 kerberos 中有任何 TICKET 生成例程、TIMESTAMP 嵌入例程等?

提前致谢。

0 投票
4 回答
8277 浏览

java - 人们如何让 Java SPNEGO 客户端在 Windows 中工作?

为了在 Windows 上使用 Java 进行客户端 HTTP SPNEGO 身份验证,您需要设置 Windows 注册表项allowtgtsessionkey。这是有据可查的。我不明白的是人们如何解决这个问题?大多数公司网站永远不会接受为了单个软件而在 Windows 中更改此注册表项。如果需要在组织中的每个工作站上进行更改,还要考虑一下麻烦。但这只是理论,因为到目前为止我无法说服我们的任何客户更改此注册表项。

我不怪他们。大多数公司管理员会认为这是一种放松安全措施,因此会反对。

我读过这篇文章: Java 或命令行实用程序中是否有办法使用本机 SSPI API 获取服务的 Kerberos 票证?

但它现在已经很旧了。

所以我真的,真的不明白人们如何让 Windows + Java 客户端 + Kerberos 在大学环境、家庭用户等之外的任何地方工作。

我从企业管理员那里得到的问题是“当 IE 和 Firefox 等应用程序在不设置此键的情况下执行 SPNEGO没有问题时,为什么我们需要设置此注册表键?”。嗯,我知道答案是什么。这是因为(很可能)IE 和 Firefox 等应用程序基于 Windows 原生 GSS API (SSPI),而 Sun 的 Java 使用自己的实现。

我假设使用类似WAFFLE的东西可以解决问题,但我更喜欢纯 Java 解决方案。我还假设使用基于 Java 的解决方案(例如 Spring security 或 Apache HttpClient)将无济于事,因为它们都会遇到这个问题。

任何帮助或指示将不胜感激。

更新1

我发现在 Oracle 的错误数据库中有一个RFE。Oracle 员工也提交了一个补丁,并在 JDK 邮件列表中讨论了这个特性。除了据我所知,这在当前的 Java 7 中是不可用的,甚至不是实验性的,这并没有让我变得更聪明。正确的?

更新2

这个问题现在在 OpenJDK 安全开发邮件列表中再次出现。

0 投票
1 回答
1642 浏览

c++ - GSSAPI 获取用户名密码和构建凭证不适用于非登录用户

我正在开发一个使用 GSSAPI 登录服务器的 C++ 客户端。对于凭证,我使用 gss 方法来构建凭证对象(在下面的代码中解释)。我这部分的代码是

现在我正在打印主要状态(gssapi 级别状态)和次要状态(机制级别状态)——在这种情况下是 Kerberos。当我给登录用户(即 asanyal)时,状态 printf 消息为两个值都给出 0(一切顺利)

但是,当我使用不同的用户名(这个用户名在 Active Directory 中注册但我没有以他的身份登录)时,我得到了

进一步调查显示,此次要状态消息对应于错误

我确定我正在为未登录的用户传递正确的凭据(用户名密码))

Is this something wrong with GSSAPI internally(maybe its unable to get a ticket or something) or am I making some mistake?

Configuration used : Windows Active Directory (Windows Server 2008) and MIT kerberos libraries - version 4.0.1