问题标签 [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.
c - 如何正确使用 gss_import_name?
我在客户端使用 gss_import_name 使用 GSS_C_NT_HOSTBASED_SERVICE 来获取像 service/server-host@realm 这样的主体。
我这样打电话,
gss_import_name(状态,“服务”,GSS_C_HOSTBASED_SERVICE,输出名称);
但我得到了像 service/local-machine@realm 这样的委托人。从手册页中我了解到,它在内部使用 krb5_sname_to_principal 来获取主机名,如果为 NULL,则使用 localhost 名称。现在我的问题是如何将正确的主机名(服务器主机)传递给 gss-api 以创建主体?
apache - 如何使 SPNEGO 与 mod_auth_kerb 一起工作?
这是我的问题:
上下文:两种 webapps 的 kerberos 身份验证,一种使用 Apache mod_auth_kerb,另一种使用 Tomcat 的 SPNEGO (GSSAPI)。我使用 mod_jk 将 Tomcat 连接到 Apache。
问题:来自客户端 Tomcat 的 kerberos 标头似乎被 Apache 修改,这导致身份验证失败(机制级别:校验和失败)。
问题:我怎样才能为 SPNEGO webapps 配置/禁用 mod_auth_kerb(或 mod_jk)并让它为其他应用程序工作?还有其他解决方案吗?
谢谢!
java - Java/VNC 中的单点登录
背景
在我从事的项目中,我们在几个不同的服务器上运行 GUI 应用程序。由于他们的用户界面相似,我正在研究将他们的 OMI 组合成一个统一的界面。目前,这些应用程序都可以通过 VNC 远程查看。我计划通过让主显示器在后台运行多个 VNC 查看器并围绕这些 VNC 会话包装一个界面来使它们看起来像本机应用程序,从而利用这一点。
问题
我正在寻找构建单点登录解决方案的指针。我想消除每个应用程序的单独登录,而是让用户只登录统一显示。当他们这样做时,他们将自动登录到每个单独的应用程序。
约束
- 这些应用程序都是在 Linux 上运行的基于 Swing 的 Java 应用程序。
- 身份验证由具有 Active Directory 的 Windows 2003 Server 计算机执行。
- 我更喜欢现成的解决方案而不是定制的解决方案。
想法
我的调查将我指向Kerberos和GSSAPI。Kerberos 的基于票据的机制似乎非常适合这项任务。
一个棘手的问题是这些应用程序总是在运行。当用户登录时,我需要统一显示以某种方式“告诉”他们。这与普通的 Kerberized 程序不同,他们将在启动时执行 Kerberos 登录。
如果我使用 Kerberos,我不确定如何将票证传输到各种应用程序服务器。有没有标准的方式来转移它们?我只是使用“scp”还是什么?或者我是否开发自己的基于套接字的网络协议并让 Java 程序相互连接并以这种方式传输票证?
不过,我不想太拘泥于细节。我什至会欣赏诸如“您考虑过技术 X 吗?”之类的一般性想法。或“尝试使用 XYZ 而不是 VNC,它会为您做到这一点。”
更新
我将在此处编辑答案和说明...
您是否考虑过无论如何都必须进行某些身份验证,并且 VNC 仅将视图导出到正在运行的程序,因此 VNC 会话不能传输票证?
确实是的。Java + VNC 就是我们现在所拥有的。如果有更好的远程查看应用程序的方法,我可以将 VNC 换成其他东西。不用重写它们,就是这样。理想的解决方案是将它们分成不同的客户端和服务器部分,并将所有 GUI 代码放入客户端,但这是 5 星难度,我需要 1 星或 2 星。
有没有考虑过两个用户同时登录的情况?他们会看到相同的应用程序吗?或者这会被禁止吗?
是的,我考虑过。他们要么会看到相同的应用程序,要么会被禁止。就这个特定系统而言,任何一种解决方案都可以,所以这没什么大不了的。
您是否考虑过只在本地主机上使用 X 服务器并导出客户端应用程序窗口?
是的,这会很棒。这可以用已经运行的应用程序完成吗?我必须在它们已经启动后连接到这些应用程序。当有人启动中央查看器时,我无法按需启动它们。
java - 跨域/域认证
这是我的问题:我找不到任何关于使用 java+kerberos 进行跨域身份验证的文档。我必须针对其他领域的远程 LDAP 进行身份验证。我们如何在java中做到这一点?
谢谢
编辑:
这是我的 krb5.conf:
[libdefaults]
default_realm = REALM1
dns_lookup_realm = 假
dns_lookup_kdc = 假
可转发=真
[领域]
领域1 = {
kdc = kerberos.my.url.domain1:88
admin_server = kerberos.my.url.domain1:749
默认域 = 。
}
领域2 = {
kdc = kerberos.my.url.domain2:88
admin_server = kerberos.my.url.domain2:749
}
[domain_realm]
.my.url.domain1 = REALM1
.my.url.domain2 = REALM2
当我在 domain1 上执行时,跨领域在命令行中工作
ldapsearch -H "ldap:/my.url.domain2"
所以我想我的 krb5.conf 很好
java - Kerberos SSO implemented with Java
i am trying to created a JAVA program that will get my windows users credentials, then connect to the kerberos on my unix box and authenticate and allow me to use a service, for an example an LDAP server.
All examples i have found tend to on run ask me for my password, i do not want this - I wish to be able to run the program and 'if by magic' im kerberos authenticated.
Any links and example are appreciated.
linux - 用于 sshd 和私钥身份验证的 GSSAPI 的服务器端
我正在寻找一种对连接到 SSH 守护程序的用户进行身份验证的方法。我所问的内容可能存在一些很大的误解,但据我所知,GSSAPI 可以用作 SSH 守护程序的身份验证提供程序后端。
有没有办法以这种方式提供用户的公钥?我想保留私钥/公钥身份验证方案,但以特定方式从外部进程提供用户详细信息和密钥。
另外,是否有任何提供编程信息的 GSSAPI 指南?到目前为止,我发现的唯一指南是面向管理员的非常低级的协议描述或服务器配置指南......虽然我仍然缺少一些关于如何处理 GSSAPI 以及如何使用它编写东西的实用信息(或者是否这个是可能的)。
java - 解密 OpenLDAP 密码
我的 OpenLDAP 中有一组用户,我希望从他们那里获取一些信息,例如“cn”和“userPassword”。
但是,当我检索这些详细信息时,即使在我的 LDAP 服务器中设置了密码,密码也不是纯文本。
任何想法如何解决这个问题?
c++ - 用于 NTLM 身份验证的 GSSAPI
是否可以使用 GSSAPI 进行 NTLM v1/v2 身份验证?我正在尝试构建一个 Web 服务器,非常像 squid / apache,但我想使用 NTLM / Negotiate 协议对可能使用 IE / FireFox 的客户端进行身份验证。我尝试使用 heimdal 库,但根本无法让 gss_accept_sec_context 工作。它只是因“请求了不受支持的机制”而失败。我可以确认,在尝试 gss_accept_sec_context 之前调用 gss_acquire_cred 时,服务主体名称、spnego 的 OID 等确实正确发生。是的,当然,我通过 base64 解码授权标头提取了从客户端收到的令牌。我正在使用 C++,并在 debian 上进行试验。我相信这里有一位出色的黑客知道更多,希望能分享一些重要的线索。
提前致谢。
java - Java Kerberos 身份验证似乎有效,但仍被拒绝
我有一个 Java 客户端应用程序和一个 Java 服务器应用程序,我正在尝试通过 Kerberos 对服务器进行身份验证。客户端基本上使用 http-components 和 SPNEGO 进行 HTTP GET 调用,但我总是得到401 Unauthorized
结果。
我无法在下面的 Kerberos 登录序列中发现错误,也许你们可以:
c - 如何连接到 GSS 中的多服务器机器?
有一些机器:客户端C1,服务器:master,s1,s2
C1连接master并进行身份验证,然后在s1和s2创建job runner,C1和s1,s2需要安全通信。如何通过 Kerberos/GSS-API 做到这一点。master , s1 和 s2 是安全连接的。
谢谢
DMA