подключиться к Sql Server с Active Directory из nodejs на машине с Linux - PullRequest
8 голосов
/ 06 мая 2019

У меня есть служба nodejs, которая работает на машине linux .Мне нужно подключиться к Sql Server (Mssql).

Я использую пакет mssql и не вижу никакой поддержки при подключении к AD.

Существует также Azure Keyvault, которым мы являемсявозможность подключиться к MSI, подключенному к машине, по телефону:

import * as msRestAzure from 'ms-rest-azure'
msRestAzure.loginWithVmMSI({ resource: this.azureKeyVaultResourceName })

Есть ли способ использовать учетные данные, полученные от loginWithVmMSI, и подключиться к Sql Server?Есть ли способ вызвать Sql Server напрямую с AD?

Есть ли поддержка для него в другом драйвере?утомительно или nodemssql?

1 Ответ

5 голосов
/ 15 мая 2019

Если вы можете использовать Tedious (поддерживает Azure AD от tedious@4.1.0).

Существует опция верхнего уровня authentication, которая позволяет указать метод аутентификации для использования:

new Connection({
  'config': {
    'server': '<server>',
    'authentication': {
      'type': 'azure-active-directory-password',
      'options': {
        'userName': '<userName>',
        'password': '<password>'
      }
    },
    'options': {
      'encrypt': true
    }
  }
})

Что касается интегрированной части безопасности (поддержка аутентификации MSI), то в настоящее время (19.5.2019) на github ожидает рассмотрения pull . Если он будет одобрен / принят, вы получите поддержку - вы также можете добавить ее вручную.

Конфигурация будет выглядеть так

Простая конфигурация соединения:

var connectionADMSI = {
    server: [Server Name], 
    options: {
        database:[Database Name],
        encrypt: true
    },
    authentication: {
        type: "azure-active-directory-MSI",
        // Option client id, if provided, then the token will be only valid for that user
        options: {
        clientID: [Client ID For User Assigned Identity]
        }
    }
};

Если вы используете msnodesqlv8, вам не повезло. Это решение для Windows и пока не поддерживается в Linux. В информационных целях я включаю, как с ним связаться:

// Init connection string
var dbConfig = {    
    driver: 'msnodesqlv8',
    connectionString:'Driver={SQL Server Native Client 11.0};Server={localhost\\SQLNode};Database={nodedb};Trusted_Connection={yes};'
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...