微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

浏览器未使用 MSSQL JDBC 驱动程序 MFA 身份验证在客户端打开

如何解决浏览器未使用 MSSQL JDBC 驱动程序 MFA 身份验证在客户端打开

目前我们在 Azure 上有一个数据库。我们在 Headless linux 服务器上部署了一个 Web 应用程序。我们使用 Active Directory 用户从我们的应用程序连接到这个数据库。此 Active Directory 用户已在 Azure 上启用 MFA。该应用程序使用 MSsql JDBC 驱动程序 (mssql-jdbc-9.2.1) 以交互模式对该数据库进行身份验证。

驱动程序具有以下代码,用于在身份验证期间打开浏览器以在 Microsoft 门户上提供 AD 凭据。

private void openDefaultSystembrowser(URL url) {
  try {
    if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Action.broWSE)) {
      Desktop.getDesktop().browse(url.toURI());
      LOG.debug("Opened default system browser");
    } else {
      throw new MsalClientException("Unable to open default system browser","desktop_browser_not_supported");
    }
  } catch (IOException | URISyntaxException var3) {
    throw new MsalClientException(var3);
  }
}

我们期望驱动程序会在客户端打开浏览器,因为我们的 Web 服务器正在无头模式下运行。因此,当驱动程序尝试打开浏览器时,我们收到以下异常:

com.microsoft.aad.msal4j.MsalClientException: Unable to open default system browser
    at com.microsoft.aad.msal4j.AcquiretokenByInteractiveFlowsupplier.openDefaultSystembrowser(AcquiretokenByInteractiveFlowsupplier.java:116)
    at com.microsoft.aad.msal4j.AcquiretokenByInteractiveFlowsupplier.getAuthorizationResult(AcquiretokenByInteractiveFlowsupplier.java:61)
    at com.microsoft.aad.msal4j.AcquiretokenByInteractiveFlowsupplier.execute(AcquiretokenByInteractiveFlowsupplier.java:37)
    at com.microsoft.aad.msal4j.AuthenticationResultsupplier.get(AuthenticationResultsupplier.java:59)
    at com.microsoft.aad.msal4j.AuthenticationResultsupplier.get(AuthenticationResultsupplier.java:17)
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

有什么方法可以将浏览器打开请求从无头 linux 服务器委托给客户端吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。