【发布时间】:2021-02-23 16:44:01
【问题描述】:
我有一个应用程序需要连接到 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 小时后过期。这会破坏解决方案,因为它一直在侦听新请求并且令牌将过期。
有没有办法“刷新”令牌,或者有什么优雅的方式来处理获取新令牌?
【问题讨论】:
标签: node.js azure azure-active-directory sequelize.js service-principal