У меня есть приложение, которому необходимо подключиться к Azure SQL Server и которое использует Sequelize в качестве ORM. Я пытаюсь сделать решение более безопасным, аутентифицируя его с помощью субъекта-службы. Я использую модуль @ azure / ms-rest-nodeauth для получения токена доступа и передачи его в Sequelize в моем инициализаторе БД. Функция loginWithServicePrincipalSecret получает токен доступа, передавая учетные данные SPN.
const sequelize = new Sequelize({
database: AZURE_SQL_DB,
host: AZURE_SQL_SERVER,
dialect: 'mssql',
logging: true,
dialectOptions: {
authentication: {
type: 'azure-active-directory-access-token',
options: {
token: accessToken,
},
}
}
})
Проблема в том, что, хотя это работает для установления соединения, срок действия токенов доступа истекает через 1 час. Это нарушит работу решения, поскольку оно продолжает прослушивать новые запросы, и срок действия токена истечет.
Есть ли способ «обновить» токен или, может быть, какой-нибудь элегантный способ справиться с получением нового токена?