问题标签 [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.
python - 如何在 Python 2.6 中使用 Keytab 检索 Kerberos 令牌
我正在创建一个 Python 脚本,它将在加入域的 Windows 2012/2016 服务器中作为批处理脚本运行。脚本应该能够从 keytab 创建 Kerberos 令牌。创建 Keytab 是为了存储 Active Directory 服务帐户的凭据。
很少有 Python 模块可以创建 Kerberos 令牌,例如可以在 Windows 环境中使用的 winkerberos、requests_kerebros。但是它们都不允许使用 keytab。
有没有人能够在 Windows 中将 Keytab 与任何 Python 模块一起使用?
谢谢
apache-spark - 如何在 Windows Server 中设置 keytab 文件的路径,以便将 spark 提交到 YARN
很长一段时间以来,我一直在为这件事而苦苦挣扎,我正在绝望地寻求帮助。
语境
我有一个要提交spark-submit
给 YARn 资源管理器的胖 jar。YARN 身份验证由 Kerberos 协议管理,为此我有一个有效的主体和一个 keytab 文件。Keytab 之前已被测试为有效。
YARN 资源管理器和整个集群在 Linux 服务器上的 Cloudera 上运行。我的应用程序需要从 Windows Server 提交。
我已将密钥表文件放在 C:\Kerberos\filename 中。
为了使 Spark 能够自动创建 Kerberos 票证,我想在提交时传递 keytab 和 principal。我通过将以下配置放入spark-defaults.conf
文件中来做到这一点:
- spark.yarn.keytab = C:\Kerberos\文件名
- spark.yarn.principal = user@domain
问题
发生两件事:
在我描述的情况下,当提交开始时,我收到一条登录成功消息,但是当 Spark 上下文启动并转到 YARN 时,我收到一个
No FileSystem for scheme: C
,这让我认为它被解释C
为前缀而不是根。如果我尝试
file:///C/Kerberos/filename
,我会立即得到一个找不到文件的异常。这是由签入引起的SparkSubmit.scala
(检查了2.2 版的源代码- 我正在使用的那个),它永远不会与类似的 URI 一起使用file:///
我到底应该如何指定 keytab 文件的路径?我只能猜测这在某种程度上取决于 Windows Server 作为提交者
tomcat - Tomcat SSO Kerberos 领域
我设法使用 keytab 在我的 Web 应用程序中启用了 SSO。我必须更新以下文件才能使其工作:
Jass.conf
Krb5.conf
Server.xml(领域)
web.xml
它工作正常。我的问题是,当用户已经使用 keytab 进行身份验证时,为什么我需要使用 Realm 再次使用 Active Directory 搜索用户?
我们的应用程序对组织中的所有人开放,所以我只想从 keytab 获取用户主体,不想使用 Realm。
如果我从服务器 xml 中删除领域部分,它就不起作用。
有什么建议么?
python - 如何使用 keytab 连接到 Impala?
我正在尝试使用 keytab 而不是普通的用户/密码组合通过 Python 脚本建立与 impala 数据库的连接,但是我无法在线找到任何教程,我目前使用的代码是:
但是,我想使用 keytab 而不是我的密码进行连接。
single-sign-on - 密钥表验证失败
我正在尝试验证 keytab 文件。我收到以下错误消息
启用跟踪后,我收到以下消息
知道为什么我将 etypes 列表设为空。-crypto ALL
我使用选项创建了密钥表文件。
非常感谢您对此问题的任何帮助
java - 了解为什么执行某些位操作操作
下面是 Java 中 Keytab 实现的源代码。此代码段从 keytab 文件中读取密钥版本。我无法理解这是如何工作的。为什么要执行按位与和左移操作?
我的代码叫什么:
此文件为二进制格式。KeyTabInputStream 读取数据。
hadoop - 使用 JAAS 配置的 Kerberos java 到 impala keytab 身份验证
我正在尝试使用 kerberos KeyTab 身份验证和 JAAS 配置连接到 Impala DB。
我已经能够通过将系统属性 - “java.security.auth.login.config”设置为 JAAS 配置文件来连接到 Impala DB。而且效果很好。这是工作代码:
问题是 JAAS 配置需要 keytab 文件的绝对路径。在我的情况下,这条路径会因环境而异,我不想为每个环境维护不同的 jaas.config。
所以我采用了生成 JAAS 配置的程序化方法。我能够创建“javax.security.auth.login.Configuration”对象并使用
javax.security.auth.login.Configuration.setConfiguration(jaasConfig) 设置它;
但是,当我使用此更改运行代码时,它无法选择 JAAS 配置并且失败并出现以下异常:
获取JDBC连接失败;嵌套异常是 java.sql.SQLException:[Simba]ImpalaJDBCDriver 使用票证缓存创建登录上下文时出错:无法获取用于身份验证的主体名称。
任何人都可以解释为什么当通过系统属性设置配置时代码运行良好,但在以编程方式设置时不工作。
这就是我创建 JAAS 配置的方式:
ldap - 无法使用 Kerberos Keytab 和 kinit 缓存进行身份验证
我正在使用 keytab 并使用我的 Windows 命令行上的 kinit 命令进行设置。我收到消息“新票证存储在缓存文件中”。之后,当我运行我的 java 应用程序以访问密钥的 keytab 文件时,我得到以下错误。
我正在尝试使用 ldap 连接到活动目录。以下是配置设置:
Debug 为 true storeKey true useTicketCache true useKeyTab true doNotPrompt true ticketCache 为 null isInitiator true KeyTab 为
C:\Users\cXXXXXX\Git\abcd.keytab refreshKrb5Config 为假 principal 为 xxxx_dev@xxxx.xxxxxx.COM tryFirstPass 为假 useFirstPass 为假 storePass 为假 clearPass 为假 从缓存获取 TGT
KinitOptions 缓存名称为 C:\Users\cXXXXXX\krb5cc_cXXXXXX 调试客户端主体为 xxxx_dev@xxxx.xxxxxx.COM 调试服务器主体为 krbtgt/xxxx.xxxxxx.COM@Txxxx.xxxxxx.COM 调试密钥类型:23 调试授权时间:周一2019 年 7 月 1 日 14:20:21 EDT 调试开始时间:周一 2019 年 7 月 1 日星期一 14:20:21 EDT 2019 年调试结束时间:2019 年 7 月 2 日星期二 00:20:21 EDT 调试 renew_till 时间:null CCacheInputStream: readFlags() INITIAL; 预授权;主机地址为 /xx.xx.xxx.xx 主机地址为 /xxx:0:0:0:xxxx:xxxx:xxxx:xxxx KrbCreds 在凭证缓存中找到了默认的票据授予票据。Java 配置名称:null 本机配置名称:C:\windows\krb5.ini 从 LSA 获得的 TGT:凭据:client=sxxxx_dev@xxxx.xxxxxx.COM server=krbtgt/Txxxx.xxxxxx。
在添加 kinit 缓存文件之前,我至少能够验证帐户,然后我遇到了 GSSapi 安全问题。试图解决我添加了缓存并且这个新问题开始发生
附在上面
sql-server - 通过 keytab 连接到 SQL Server 时,在 keytab 文件中显示为 SPN 的警告不可用
我对生成用于 SQL 服务器 kerberos 身份验证的 keytab 文件有一些疑问。
SQL server 的 SPN 为:
我已将密钥表文件创建为:
查看 keytab 时,它显示正确的 SPN 为:
但是,在引用 keytab 文件进行身份验证时,会引发以下错误:
请帮我解决这个问题
java - KrbException: S4U2self 需要一个 FORWARDABLE 票
我正在尝试通过我的 java 代码执行 kerberos 约束委派。我有一个 keytab 文件、附加到用户的 SPN,并为该用户启用了 SPN 的委派。当我尝试使用 Keytab 登录时,我得到了 SPN 的 TGT。但是,此票证上的“可转发”标志设置为 false。
为了模拟其他用户,我需要将此标志设置为 true。
注意:在 SPN 用户上设置了 ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION 标志。
非常感谢任何帮助。