Как подключиться к базе данных SQL Azure с паролем AD, используя конфигурацию JDBC? - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь подключиться из моего веб-приложения Spring Boot (2.0.1) к базе данных SQL Azure с помощью Azure AD (с приложением в качестве пользователя базы данных), но не удается соединить точки.

Я выполнил следующие действия для Подключение с помощью Azure AD Auth Тем не менее, я получаю неудачный вход в систему.

Я предполагаю, что это потому, что без установки свойства 'authentication' в URL JDBC, он просто выполняет аутентификацию непосредственно в базе данных (пользователь создан с помощью CREATE USER <> FROM EXTERNAL PROVIDERиз инструкции)?

Есть ли способ настроить библиотеки spring datasource / jdbc для использования правильной аутентификации Azure AD (adal4j-1.6.3) при подключении?Пример делает это в коде, но у меня возникают проблемы с поиском правильных конфигураций.

Я пытался использовать «authentication = ActiveDirectoryPassword», но продолжал получать «AADSTS50034: учетная запись пользователя не существует в каталоге»ошибка.

spring.datasource.url = "jdbc: sqlserver: //myServer.database.windows.net: 1433; database = myDB; encrypt = true; trustServerCertificate = false; hostNameInCertificate = *. database.windows.net; loginTimeout = 30; applicationName = myApp; "

spring.datasource.username: <user>
spring.datasource.accessToken: <key>

Большая цель - обеспечить доступ моей базы данных к определенным приложениям.Я добавил свое приложение как Reader на свой сервер и в идеале должен был бы аутентифицироваться как это приложение для отслеживания использования / аналитики / и т. Д. Из этого приложения.

Я извиняюсь, если это не так, я новичок в Azure иOAuth.Благодаря.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Невозможно настроить Spring для использования ключа Id + приложения из Azure AD вместо имени пользователя / пароля при подключении к базе данных SQL Azure.Единственным способом, который я нашел, было изменение кода и создание метода @Bean, который возвращал источник SQLServerDataSource, где я вручную извлекаю токен доступа Client Credential и передаю его в источник данных.

Подключение с использованием токена доступа - показывает, как извлечь токен и установить источник данных

Создание пользовательского источника данных - показывает, как использовать Spring для создания и использования пользовательского источника данных

Также помните об управлении токенами ( см. Мой другой вопрос ).

0 голосов
/ 01 января 2019

Пожалуйста, подтвердите, что вы используете пользователя, который существует в базе данных и является пользователем того же арендатора, где существует ваша база данных.Если вы используете версию драйвера Microsoft JDBC, более раннюю, чем версия 4.0, вам также необходимо добавить имя сервера к идентификатору пользователя в строку подключения.

https://docs.microsoft.com/en-us/sql/connect/jdbc/connecting-to-an-azure-sql-database?view=sql-server-2017

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...