Tedious: Otentikasi Windows memerlukan menentukan nama pengguna/kata sandi

Dibuat pada 1 Agu 2016  ·  17Komentar  ·  Sumber: tediousjs/tedious

Membosankan mengharuskan saya untuk menentukan nama pengguna/kata sandi untuk Otentikasi Windows meskipun saya berada di domain yang sama. Saya tidak perlu menentukan nama pengguna/kata sandi dalam skenario ini dengan ADO.NET. Saya berasumsi bahwa driver mendapatkan token Kerberos dari toko Credential.

Apakah kemampuan ini saat ini tidak tersedia dengan Tedious? Atau apakah ada beberapa konfigurasi yang akan membuat Otentikasi Windows berfungsi tanpa harus menentukan nama pengguna/kata sandi?

@arobson @arthurschreiber - Tolong pikirkan .

Follow up Response needed

Komentar yang paling membantu

Saya menggabungkan sesuatu untuk mengintegrasikan sspi-client ke yang membosankan dan melihat apakah itu berhasil dan berhasil! Saya dapat terhubung menggunakan ntlm, kerberos, dan menegosiasikan paket keamanan tanpa menentukan kata sandi!

@arthurschreiber Anda dapat menemukan peretasan di sini. Ini belum siap untuk PR dengan cara apa pun, tetapi beri tahu saya jika Anda melihat masalah di tingkat tinggi.
https://github.com/tvrprasad/tedious/tree/windows-integrated-auth-draft

Semua 17 komentar

Saya menyelidiki ini beberapa. Apa yang saya pelajari sejauh ini adalah bahwa dukungan untuk Windows Integrated Authentication menggunakan SSPI dan NodeJS saat ini tidak mendukung SSPI. Ada paket node-sspi npm tetapi itu hanya memiliki dukungan untuk sisi server. Juga hanya berfungsi untuk server HTTP. Ini adalah implementasi asli dengan pengikatan JavaScript. Implementasi SSPI sisi klien juga harus berupa kode asli dengan binding JavaScript.

Proposal saya adalah membangun dukungan SSPI sisi klien dalam paket npm baru dengan API yang cocok untuk dikonsumsi oleh Tedious dan membuat Tedious bergantung pada paket untuk SQL Server Windows Integrated Auth.

Akan menghargai pemikiran apa pun. Terima kasih.

Yup, kedengarannya masuk akal. Saya tidak berpikir modul biner harus menjadi bagian yang membosankan, jadi 👍 pada gagasan menjadikannya sebagai modul npm yang terpisah.

Dingin. Pemotongan pertama kemungkinan hanya akan memiliki dukungan untuk Windows. Apakah kami setuju dengan fitur Windows saja untuk memulai?

Windows dan Linux memiliki API yang berbeda untuk mendukung Windows Integrated Authentication. Kami harus dapat membangun dukungan untuk kedua platform menjadi satu paket. Tetapi bertanya-tanya apakah ada preseden untuk dependensi pada paket yang berbeda untuk Windows vs Linux.

Dingin. Pemotongan pertama kemungkinan hanya akan memiliki dukungan untuk Windows. Apakah kami setuju dengan fitur Windows saja untuk memulai?

Ya itu baik baik saja. Saya membayangkan ini akan menjadi fitur opsional, jadi hanya mendukung Windows pada awalnya tidak masalah. 👍

Saya membagikan cuplikan singkat menggunakan antarmuka kelas ClientSspi yang ada dalam pikiran saya. Silakan bagikan umpan balik apa pun tentang bentuk API.

ClientSspi = require('ClientSspi');

serverName = 'servername.example.com';

// Server name should be the only configuration. Windows SSPI APIs will get
// the tokens to be presented to the server to authenticate the logged in user.
clientSspi = new ClientSspi(serverName);

// authprotocol parameter can take three values.
// Negotiate, Kerberos, Ntlm
// Negotiate: With this option client will negotiate with the server
// on security protocol using SPNEGO.
//
// If nothing is specified, the first supported protocol will be used. The
// protocols will be attempted in the sequence listed above.
clientSspi.initialize(authprotocol, function(errorCode, errorString) {
  if (errorCode || errorString) {
    throw('SSPI intialization failed: ', errorCode, ': ', errorString);
  }

  var sspiServerResponse = new Uint8Array([]);
  var sspiDone = false;

  while (!sspiDone) {
    // This call gets the next set of bytes to send to the server as part of the
    // SSPI dance.
    clientSspi.getNextSspiBlob(sspiServerResponse, function (sspiClientResponse, isDone, errorCode, errorString) {
      if (errorCode || errorString) {
        throw('SSPI intialization failed: ', errorCode, ': ', errorString);
      }

      sspiDone = isDone;

      // This function will send the sspiClientResponse to the server and invokes the
      // callback when the response from the server becomes available.
      SendSspiBlobToSqlServerAndGetResponse(sspiClientResponse, function (serverResponse, errorString) {
        if (errorString) {
          throw(errorString);
        }

        sspiServerResponse = serverResponse;
      });
    });
  }
});

Saya memiliki implementasi rintisan API di https://github.com/tvrprasad/sspi-client.

@arthurschreiber Tolong buat umpan cepat ketika Anda mendapat kesempatan. Kirimi saya umpan balik atau masalah terbuka terhadap repositori. Setelah saya mengisi implementasi, saya berencana untuk menggunakannya untuk mengimplementasikan Otentikasi Terintegrasi Windows di Tedious.

Saya menggabungkan sesuatu untuk mengintegrasikan sspi-client ke yang membosankan dan melihat apakah itu berhasil dan berhasil! Saya dapat terhubung menggunakan ntlm, kerberos, dan menegosiasikan paket keamanan tanpa menentukan kata sandi!

@arthurschreiber Anda dapat menemukan peretasan di sini. Ini belum siap untuk PR dengan cara apa pun, tetapi beri tahu saya jika Anda melihat masalah di tingkat tinggi.
https://github.com/tvrprasad/tedious/tree/windows-integrated-auth-draft

Membuka kembali masalah ini untuk melacak autentikasi terintegrasi Windows hingga dapat dipasang, lebih detail di https://github.com/tediousjs/tedious/commit/f5a2260f.

@v-suhame apa yang terbaru dengan ini? Apakah Anda hanya menunggu di # 624?

Apakah ada yang bisa saya lakukan untuk membantunya bergerak?

@kevinkuszyk Terima kasih atas tawaran bantuannya Looping di @arthurschreiber untuk mendapatkan pembaruan terbaru.

Apakah otentikasi terintegrasi windows di server Linux tersedia sekarang?

@sxpati2 Otentikasi terintegrasi Windows, seperti namanya, menonjol untuk OS Windows. Untuk Linux itu akan menjadi Kerberos Integrated auth. Membosankan saat ini tidak mendukung autentikasi terintegrasi Windows atau Kerberos, itu ada dalam rencana masa depan kami.

Saya hanya ingin memeriksa ini. Sepertinya ada refactor utama. Apakah ada cara agar saya bisa mengulang msnodesqlv8 menjadi membosankan? Saya pikir msnodesqlv8 hanya akan masuk ke sekuel tetapi tidak.

@arthurschreiber Sepertinya PR #497 Windows Integrated Authentication digabungkan yang memungkinkan otentikasi jendela tanpa memerlukan nama pengguna/kata sandi, tetapi sepertinya saya tidak dapat menemukannya lagi di versi terbaru yang membosankan. Hanya ingin tahu apa yang terjadi dengan fitur itu?

Apakah situasinya berubah sejak saat itu? Atau apakah fitur itu sementara hilang di refactor?

Apakah situasinya berubah sejak saat itu? Atau apakah fitur itu sementara hilang di refactor?

Saya ingin tahu juga!

Salam, apa kata dengan fitur ini? Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat