问题标签 [keytab]
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.
windows - 在 Windows 中创建与 kinit 一起使用的密钥表
我正在编写一个 pGina 插件以在登录时从我们的 KDC 获取 AFS 令牌和 Kerberos TGT,同时我注意到 kinit 的一个“功能”是它不会让你提供任何输入,除非它来自键盘,我的想法是只是重定向标准输入......
有人建议为主体使用 keytab 文件,这似乎超级简单,直到我意识到我只在 linux 上使用了 kutil,并且在使用 ktpass.exe 的 Windows 版本时遇到了困难。我已经反复尝试使用大量参数组合来创建密钥表,但到目前为止绝对没有成功,我发出的当前命令是:
ktpass /out key.tab /mapuser user$@MERP.EDU /princ user.merp.edu@MERP.EDU /crypto RC4-HMAC-NT /ptype KRB5_NT_PRINCIPAL /pass mahpasswordlol /target MERP.EDU
不幸的是,所有这些输出都是
Using legacy password setting method
FAIL: ldap_bind_s failed: 0x31
根据我的研究,这是一个身份验证/加密问题,我已经尝试过使用其他 DES 设置,但这似乎也不起作用......有人对这可能如何工作有任何经验/想法吗?
java - KrbException:指定版本的密钥不可用 (44)
我已经使用 Spring Security 通过 SPNEGO 实现了 kerberos 身份验证。在我的电脑上一切正常。
我使用了在我的计算机上运行的确切 keytab 文件和 krb5 配置,并将其放入测试环境中。两种环境都使用 tomcat 6,并且我安装了确切的 jdk 版本。
但是,在测试环境中,我得到以下信息:
我已经根据这篇文章在测试机器上测试了我的 keytab 文件,一切看起来都很好。
我的机器-windows 7 pro 测试机-windows server 2008 R2
密钥表在一台机器上有效而不在另一台机器上有效的任何明显原因?
我的下一步是重新生成密钥表,但这只是伏都教,我不喜欢伏都教。
谢谢,里奥
编辑:
我没有直接使用 KRB5ModuleLogin。我使用带有kerberos 扩展的 spring security 。
在幕后它显然在使用模块,但我不知道如何配置它(可能通过 krb5.conf 文件)。
这是我的相关弹簧配置:
注入 GlobalSunJaasKerberosConfig 的 krb5.conf 如下:
编辑 2
我已经调试到测试服务器,并与我的计算机进行了比较。
这是来自我的开发中登录上下文的调试信息(有效):
这是在测试服务器中完成登录时的调试信息:
如您所见,完全一样(除了keytab文件的位置,但正如我所说,keytab文件是相同的)另一个区别是dev支持enc_type 18,而test不支持,但这似乎无关紧要,因为密钥类型是23(RC4-HMAC-NT),并且两者都支持。
那么,看在上帝的份上,为什么当用户尝试登录时测试机器会拒绝 keytab 文件呢?
java - keytab 究竟是如何工作的?
我对使用 keytab 进行身份验证有一些疑问希望这里的好心人能启发我
假设我有用户 A,他将使用在端口 1010 上运行的服务。首先,用户 A 将登录到 Active Directory 以验证自己。
登录后,userA 将尝试连接到服务器以使用其服务 1010。为了让服务器验证 UserA 是他是谁,我需要使用setspn
在 Active Directory 中注册 SPN。例如
然后需要在 Active 目录生成 ktab 文件,例如
然后带到mykeytab.keytab
服务器上。
在服务器上,我会使用带有登录配置的 JAAS 来查询 KDC,例如
从这一点开始,我很困惑。userA 如何得到验证(即 userA 实际上是他是谁?)。
windows - 将 kinit 与 keytab 文件一起使用时会发生什么
希望对 kinit 和 keytab 文件的使用有更多的了解。例如,如果我已经为服务生成了一个 keytab 文件(该服务通过ktpass
-mapuser
to注册到活动目录someuseraccount
)
USERA
当用户调用登录到 Windows 并使用此 keytab 作为 kinit 的输入参数时,真正发生了什么?
是否 为当前登录的或为当前登录的kinit
生成初始凭据?someprincipal
USERA
希望你能解开我的这个困惑。谢谢
hadoop - 使用 keytab 提交 oozie 作业
我正在使用 keytab 文件绕过 kerberos 通过 oozie 运行 shell 脚本。Shell 脚本包含 hbase shell 命令,因此我需要在运行 hbase shell 命令之前执行 kinit。这对我来说很好。
因此,如果我使用协调器启动作业并使用 keytab(服务帐户)在工作流中有多个 shell 脚本,oozie 中是否会发生冲突?因为我使用 oozie 协调器启动作业但工作流中有 keytab 文件的服务帐户。
谢谢,
linux - keytab 有生命周期吗?
我有一个计划每天(仅一次)运行的密钥表来更新它的票。但是,我想知道 keytab 本身是否有生命周期?我认为它不是因为 cron 作业已配置为每天执行,我认为这将创建一个新票而不是续订?
iis - 带有外域密钥表的 IIS 中的 SPNEGO/Kerberos
我在一个域中拥有带有 w2k8 和 IIS7 的服务器,并在其他一些外国域(无信任)中拥有 keytab。是否可以启用 Windows 身份验证 (SPNEGO/Kerberos) 以对来自这些外部域的 Web 应用程序中的用户进行身份验证?
tomcat - 使用多个 SPN 配置 Tomcat 6
我正在尝试在 Windows Server 2008 上配置 Tomcat 6 以使用识别多个 Kerberos 票证,但运气不佳。我有一个包含多个 SPN 的 keytab,但似乎只能在 spnego 配置中指定一个主体名称。
使用多个 SPN 的原因是,我既可以直接验证与服务器的连接,也可以通过负载平衡器别名验证连接。
有没有人尝试过这个并有任何指示?
登录.conf:
security - 安全的 hbase 应用程序 - kerberos 身份验证
我正在运行一个无限循环来测试 kerberos 凭据的过期,我有以下代码。
我预计 kerberos 凭据将在程序启动后约 10 小时到期(Linux shell 上使用 keytab 的 kinit 需要在我们的环境中约 10 小时后重新登录)。
但是大约 10 小时后我在日志中看到的是:
15/03/06 12:39:54 调试 org.apache.hadoop.security.UserGroupInformation:PrivilegedAction 为:*(auth:KERBEROS) 来自:org.apache.hadoop.hbase.ipc.RpcClient$Connection.handleSaslConnectionFailure(RpcClient. java:796) 15/03/06 12:39:54 调试 org.apache.hadoop.security.UserGroupInformation:启动注销 * 15/03/06 12:39:54 调试 org.apache.hadoop.security.UserGroupInformation: hadoop 注销 15/03/06 12:39:54 调试 org.apache.hadoop.security.UserGroupInformation:为 *** 15/03/06 12:39:55 启动重新登录调试 org.apache.hadoop.security。 UserGroupInformation:hadoop 登录
以某种方式调用了 checkTGTAndReloginFromKeytab() 方法。我无法弄清楚这个方法是如何被调用的。这允许程序永久运行。这是设计使然吗?重新登录是做什么的?
gesture - 跳跃动作中 KeyTapGesture 的手指
我想制作一个应用程序来输入与特定手指对应的字符。我已经尝试使用 finger.isExtended 来感知哪个手指是“中风”或弯曲的,但是使用此功能可以检测到手指的移动应该是最大的。
我会尝试使用 KeyTapGesture 的另一个功能,但我不知道这个功能是否可以区分手指或知道哪个手指进行点击。
有谁知道如何确定敲击的特定手指?
我添加了 pointable() ,这是我的 C# 代码:
结果是所有手指都在敲击,即使我只用一根手指敲击。