Tedious: تتطلب مصادقة Windows تحديد اسم المستخدم / كلمة المرور

تم إنشاؤها على ١ أغسطس ٢٠١٦  ·  17تعليقات  ·  مصدر: tediousjs/tedious

يتطلب مملاً مني تحديد اسم المستخدم / كلمة المرور لمصادقة Windows على الرغم من أنني في نفس المجال. لست بحاجة إلى تحديد اسم المستخدم / كلمة المرور في هذا السيناريو مع ADO.NET. أفترض أن السائق يحصل على رمز Kerberos المميز من متجر Credential.

هل هذه القدرة غير متوفرة حاليًا مع Tedious؟ أم أن هناك بعض التهيئة التي من شأنها أن تجعل مصادقة Windows تعمل دون الحاجة إلى تحديد اسم المستخدم / كلمة المرور؟

arthurschreiberarobson - أفكار من فضلك.

Follow up Response needed

التعليق الأكثر فائدة

لقد جمعت شيئًا ما معًا لدمج عميل sspi ليكون مملاً ومعرفة ما إذا كان يعمل وينجح! تمكنت من الاتصال باستخدام ntlm و kerberos والتفاوض بشأن حزم الأمان دون تحديد كلمة المرور!

arthurschreiber يمكنك العثور على الاختراق هنا. هذا ليس جاهزًا للعلاقات العامة بأي شكل من الأشكال ، ولكن يرجى إعلامي إذا رأيت مشكلات على مستوى عالٍ.
https://github.com/tvrprasad/tedious/tree/windows-integrated-auth-draft

ال 17 كومينتر

لقد حققت في هذا بعض الشيء. ما تعلمته حتى الآن هو أن دعم المصادقة المتكاملة لـ Windows يستخدم SSPI و NodeJS حاليًا لا يدعم SSPI. توجد حزمة node-sspi npm ولكن هذا يدعم جانب الخادم فقط. كما أنه يعمل فقط لخادم HTTP. إنه تطبيق أصلي مع ربط JavaScript. يجب أن يكون تطبيق SSPI من جانب العميل رمزًا أصليًا مع روابط JavaScript.

اقتراحي هو بناء دعم SSPI من جانب العميل في حزمة npm جديدة مع واجهة برمجة تطبيقات مناسبة للاستهلاك من قبل Tedious ولديها اعتماد Tedious على الحزمة لـ SQL Server Windows Integrated Auth.

نقدر أي أفكار. شكرا.

نعم ، هذا يبدو معقولا. لا أعتقد أن الوحدة الثنائية يجب أن تكون جزءًا من مملة ، لذا على فكرة امتلاكها كوحدة npm منفصلة.

رائع. من المحتمل أن يدعم القطع الأول نظام Windows فقط. هل نحن موافقون على ميزة Windows فقط لتبدأ بها؟

يحتوي Windows و Linux على واجهة برمجة تطبيقات مختلفة لدعم مصادقة Windows المتكاملة. يجب أن نكون قادرين على بناء الدعم لكلا النظامين الأساسيين في حزمة واحدة. لكن أتساءل عما إذا كانت هناك سابقة للاعتماديات على الحزم المختلفة لنظامي التشغيل Windows مقابل Linux.

رائع. من المحتمل أن يدعم القطع الأول نظام Windows فقط. هل نحن موافقون على ميزة Windows فقط لتبدأ بها؟

أجل هذا جيد. أتخيل أن هذه ستكون ميزة اختيارية ، لذا فإن دعم Windows فقط في البداية جيد. 👍

أشارك مقتطفًا قصيرًا باستخدام واجهة فئة ClientSspi التي أفكر فيها. يرجى مشاركة أي ملاحظات حول شكل واجهة برمجة التطبيقات.

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;
      });
    });
  }
});

لديّ تنفيذ أساسي لواجهة برمجة التطبيقات على https://github.com/tvrprasad/sspi-client.

arthurschreiber من فضلك قم بتمرير سريع عندما تحصل على فرصة. أرسل لي أي ملاحظات أو فتح قضايا ضد المستودع. بمجرد ملء التطبيق ، أخطط لاستخدام ذلك لتنفيذ مصادقة Windows المتكاملة في Tedious.

لقد جمعت شيئًا ما معًا لدمج عميل sspi ليكون مملاً ومعرفة ما إذا كان يعمل وينجح! تمكنت من الاتصال باستخدام ntlm و kerberos والتفاوض بشأن حزم الأمان دون تحديد كلمة المرور!

arthurschreiber يمكنك العثور على الاختراق هنا. هذا ليس جاهزًا للعلاقات العامة بأي شكل من الأشكال ، ولكن يرجى إعلامي إذا رأيت مشكلات على مستوى عالٍ.
https://github.com/tvrprasad/tedious/tree/windows-integrated-auth-draft

إعادة فتح هذه المشكلة لتتبع مصادقة Windows المتكاملة حتى تصبح قابلة للتوصيل ، ومزيد من التفاصيل في https://github.com/tediousjs/tedious/commit/f5a2260f.

@ v-suhame ما هو آخر شيء بهذا؟ هل أنت فقط تنتظر # 624؟

هل هناك أي شيء يمكنني القيام به للمساعدة في تحريكه؟

kevinkuszyk شكرًا على عرض المساعدة 😃 Looping inarthurschreiber للحصول على آخر تحديث.

هل مصادقة Windows المدمجة على خادم Linux متاحة الآن؟

@ sxpati2 مصادقة Windows المتكاملة ، كما يوحي الاسم ، هي juts لنظام التشغيل Windows. بالنسبة إلى Linux ، ستكون المصادقة المتكاملة من Kerberos. لا تدعم Tedious حاليًا المصادقة المتكاملة لـ Windows أو Kerberos ، فهي في خطتنا المستقبلية.

أود فقط التحقق من هذا. يبدو أنه كان هناك عامل إعادة بناء كبير. هل هناك طريقة يمكنني من خلالها مجرد حلقة msnodesqlv8 لتصبح مملة؟ اعتقدت أن msnodesqlv8 سوف يسقط في الجزء الثاني لكنه لم يفعل.

arthurschreiber يبدو أنه تم دمج مصادقة Windows المتكاملة PR # 497 والتي تسمح بمصادقة النافذة دون الحاجة إلى اسم مستخدم / كلمة مرور ، ولكن لا يمكنني العثور على ذلك بعد الآن في أحدث إصدار مملة. فقط أتساءل ماذا حدث لتلك الميزة؟

هل تغير الوضع منذ ذلك الحين؟ أو هل فقدت هذه الميزة مؤقتًا في إعادة البناء؟

هل تغير الوضع منذ ذلك الحين؟ أو هل فقدت هذه الميزة مؤقتًا في إعادة البناء؟

أود أن أعرف أيضًا!

تحياتي ، ما هي الكلمة بهذه الميزة؟ شكرا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات