使用kinit + chromedriver进行硒测试



我在Linux VM上运行时使用java硒程序通过Google Chrome测试网站。

此站点需要 Kerberos 身份验证。

我需要ChromeDriver来创建具有我的有效密钥表+等的Chrome实例。

KEYTAB_FILE_PATH="/home/me/my.keytab"
KERBEROS_PRINCIPAL_NAME="HTTP/myuser@MY.DOMAIN.COM"
kinit -kt "${KEYTAB_FILE_PATH}" "${KERBEROS_PRINCIPAL_NAME}"
echo "Kerberos kinit login was successful!"
java -jar myapp.jar

chrome Web 驱动程序创建的 chrome 似乎没有有效的 kerberos 票证。

有没有办法确保我的 kerberos ksession 被传递给由 chromedriver exe 分叉的 chrome 进程?我在这里错过了什么?

我上面提供的信息是处理遵循协商身份验证的 Selenium 测试的正确方法。

  • 运行一个 kinit
  • 在 kinit 运行后启动你的 Selenium Java 程序。
  • 在硒计划中,确保正确设置--auth-server-whitelist--auto-negotiate-delegate-whitelist,以允许 kerberos 票证提供商参与身份验证握手。(例如,您的活动目录服务器(。

这应该会导致所有 Chromium 进程也具有相同的 kinit,并且能够进行协商身份验证。

但是,在无头模式下运行时,存在影响许多版本的 chromium 的错误。 https://bugs.chromium.org/p/chromium/issues/detail?id=924746

因此,如果您恢复到 chromium 70.x,它将起作用。虽然我还没有验证,但看起来这已经固定在铬的未来版本上。因此,如果您迁移到最新版本的Chromium,这也应该可以解决问题。

相关内容

  • 没有找到相关文章

最新更新