jboss Wildfly 17.0.1 - 静默身份验证质询文件的正确位置是什么?



您好,在互联网上阅读了很多文章后,我知道 jboss wildfly 在 tmp 目录中编写了一个挑战文件以进行静默身份验证(JBOSS-LOCAL-USER 机制(。

根据我的理解,挑战文件应该位于,例如$JBOSS_HOME/standalone/tmp/auth/local2639861357474361285.challenge。如果管理 cli 客户端可以在同一台计算机上成功访问该文件,则静默身份验证成功。

比方说: 应用服务器

主机名:应用服务器

JBos野蝇版本:17.0.1

野蝇作为服务帐户运行 - 野蝇:野蝇

我的作品帐户:迈克

如果我使用 mike ssh 到 appserver,然后运行 $JBOSS_HOME/bin/jboss-cli.sh -c,我认为我应该失败静默身份验证,但它最终成功了。然后我尝试:

  1. tcpdump监听9990,看看是否有有价值的信息,并发现:

0x0000: 4500 0060 abf6 4000 4006 9721 0a3f 7181 E..`..@.@..!.?q.

0x0010: 0a3f 7181 276a 932e 7a86 87cf 5604 7121 .?问'J..z...V.q!

0x0020: 8018 0058 f7d2 0000 0101 080a 0FCC 2e80 ...X............

0x0030: 0FCC 2e6a 0000 0028 032F 746d 702F 6C6F ...j...(./tmp/lo0x0040: 6361 6C35 3336 3339 3030 3330 3638 3933 cal5363900306893

0x0050: 3137 3238 3532 2e63 6861 6c6c 656e 6765172852.challenge

  1. auditctl 各种路径查看是否有有价值的信息,并发现在/tmp/处创建了质询文件

是否有任何系统属性来设置质询文件的位置?感谢任何帮助!

Wildfly 似乎正在使用java.io.tmpdir系统属性。 覆盖此问题的一种方法是使用命令行运行standalone.sh。 例如,如果我运行$WILDFLY_HOME/bin/standalone.sh -Djava.io.tmpdir=/var/tmp我可以在启动日志中看到:

...
java.io.tmpdir = /var/tmp
...

没有它,我得到:

...
java.io.tmpdir = /tmp
...

事实证明,当我根据 https://docs.jboss.org/author/display/WFLY/Elytron+Subsystem#ElytronSubsystem-usedefaultelytronmgmtauth 配置 http 接口时,我的 http 接口设置变为:

<management-interfaces>
<http-interface http-authentication-factory="management-http-authentication" ssl-context="httpsSSC">
<http-upgrade enabled="true" sasl-authentication-factory="management-sasl-authentication"/>
<socket-binding http="management-http" https="management-https"/>
</http-interface>
</management-interfaces>

挑战文件将在/tmp/localxxxx.challenge 中创建。

最后,我决定坚持默认设置,而不是使用 elytron 进行管理身份验证。

最新更新