Java JDBC ActiveDirectoryAuthentication Azure SQLServer завершается с ошибкой 401 / adfs / services / trust / 13 / windowstransport Исключение - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь запустить приложение Java 1.8 Update 192 на виртуальной машине Azure Windows Server 2016, которая использует драйвер Microsoft SQLServer JDBC 7.2.1.jre8 для подключения к базе данных управляемого экземпляра SQLServer, используя пользователя, прошедшего проверку подлинности на основе ActiveDirectory.экземпляр и запуск приложения от имени этого пользователя, т.е. с использованием Authentication = ActiveDirectoryIntegrated.

Я получаю исключение:

Причина: java.util.concurrent.ExecutionException: com.microsoft.aad.adal4j.AuthenticationException: сервер вернул код ответа HTTP: 401 дляURL: https://xxx/adfs/services/trust/13/windowstransport на com.microsoft.sqlserver.jdbc.SQLServerADAL4JUtils.getSqlFedAuthTokenIntegrated (SQLServerADAL4JUtils.java:113) ... еще 26 причин: com.microsoft.aad.adal4j.AuthenticationException: сервер вернул HTTPException: 401 для URL: https://xxx/adfs/services/trust/13/windowstransport на com.microsoft.sqlserver.jdbc.SQLServerADAL4JUtils.getSqlFedAuthTokenIntegrated (SQLServerADAL4JUtils.java:106) ... еще 26 3119 [main] INFO zzz - Ошибка подключения к базе данных: не удалось аутентифицироватьпользователь в Active Directory (Authentication = ActiveDirectoryIntegrated).

Я не являюсь разработчиком .NET и не имею сведений о конфигурации аутентификации ActiveDirectory, доменах Windows и т. д.

Приведенные выше сообщения об ошибках исключениядля меня ничего не значит.Что они означают?

Я могу подключиться к базе данных, используя аутентифицированного пользователя и пароль SQLServer, но требуется использовать Authentication = ActiveDirectoryIntegrated.

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Я исправил проблему, явно указав в командной строке драйвер jar и dll:

java -cp.; "C: \ Program Files \ Microsoft JDBC DRIVER 7.2 для SQL Server \ sqljdbc_7.2 \enu \ mssql-jdbc-7.2.2.jre8.jar "-Djava.library.path =" C: \ Program Files \ Microsoft JDBC DRIVER 7.2 для SQL Server \ sqljdbc_7.2 \ enu \ auth \ x64 "-Dlog4j.configuration= file: log4j.properties -jar MyJar.jar

Я использую:

    com.microsoft.sqlserver.jdbc.SQLServerDataSource ds =
            new com.microsoft.sqlserver.jdbc.SQLServerDataSource();
    ds.setServerName(dbServerName);
    ds.setPortNumber(dbServerPort);
    ds.setDatabaseName(dbaseName);
    ds.setAuthentication("ActiveDirectoryIntegrated");

Спасибо

0 голосов
/ 03 мая 2019

Следующее исключение указывает, что аутентификация с ActiveDirectory не удалась.

com.microsoft.aad.adal4j.AuthenticationException: Server returned HTTP response code: 401 for URL : https://xxx/adfs/services/trust/13/windowstransport
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...