Tedious: Windows認証では、ユーザー名/パスワードを指定する必要があります

作成日 2016年08月01日  ·  17コメント  ·  ソース: tediousjs/tedious

同じドメインを使用している場合でも、面倒なため、Windows認証のユーザー名/パスワードを指定する必要があります。 このシナリオでは、ADO.NETでユーザー名/パスワードを指定する必要はありません。 ドライバーが資格情報ストアからKerberosトークンを取得していると思います。

この機能は現在Tediousでは利用できませんか? または、ユーザー名/パスワードを指定せずにWindows認証を機能させる構成はありますか?

@ arobson @ arthurschreiber-考えてください。

Follow up Response needed

最も参考になるコメント

私はsspi-clientを退屈なものに統合するために何かを一緒に投げて、それが機能するかどうかを確認しました! パスワードを指定せずに、ntlm、kerberosを使用して接続し、セキュリティパッケージをネゴシエートすることができました。

@arthurschreiberここでハックを見つけることができます。 これは決してPRの準備ができていませんが、高いレベルで問題が発生した場合はお知らせください。
https://github.com/tvrprasad/tedious/tree/windows-integrated-auth-draft

全てのコメント17件

私はこれをいくつか調査しました。 これまでに学んだことは、Windows統合認証のサポートはSSPIを使用し、NodeJSは現在SSPIをサポートしていないということです。 node-sspi npmパッケージがありますが、これはサーバー側のみをサポートしています。 また、HTTPサーバーでのみ機能します。 これは、JavaScriptバインディングを使用したネイティブ実装です。 クライアント側のSSPI実装も、JavaScriptバインディングを備えたネイティブコードである必要があります。

私の提案は、Tediousによる使用に適したAPIを備えた新しいnpmパッケージでクライアント側のSSPIサポートを構築し、TediousにSQL Server Windows IntegratedAuthのパッケージへの依存関係を持たせることです。

どんな考えでもいただければ幸いです。 ありがとう。

うん、それは合理的に聞こえる。 バイナリモジュールは退屈なものの一部であるべきではないと思うので、👍それを別個のnpmモジュールとして持つという考えについて。

いいね。 最初のカットは、Windowsのみをサポートする可能性があります。 そもそもWindowsのみの機能で大丈夫ですか?

WindowsとLinuxには、Windows統合認証をサポートするための異なるAPIがあります。 両方のプラットフォームのサポートを1つのパッケージに組み込むことができるはずです。 しかし、WindowsとLinuxの異なるパッケージへの依存関係の前例があるかどうか疑問に思います。

いいね。 最初のカットは、Windowsのみをサポートする可能性があります。 そもそもWindowsのみの機能で大丈夫ですか?

はい、大丈夫です。 これはオプション機能になると思いますので、最初はWindowsのみをサポートしても問題ありません。 👍

念頭に置いているClientSspiクラスインターフェイスを使用して短いスニペットを共有しています。 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;
      });
    });
  }
});

https://github.com/tvrprasad/sspi-clientにAPIのスタブ実装があります

@arthurschreiber機会があれば、クイックパスを作ってください。 リポジトリに対するフィードバックや未解決の問題を送ってください。 実装を入力したら、それを使用してTediousでWindows統合認証を実装する予定です。

私はsspi-clientを退屈なものに統合するために何かを一緒に投げて、それが機能するかどうかを確認しました! パスワードを指定せずに、ntlm、kerberosを使用して接続し、セキュリティパッケージをネゴシエートすることができました。

@arthurschreiberここでハックを見つけることができます。 これは決してPRの準備ができていませんが、高いレベルで問題が発生した場合はお知らせください。
https://github.com/tvrprasad/tedious/tree/windows-integrated-auth-draft

この問題を再度開いて、プラグイン可能になるまでWindows統合認証を追跡します。詳細については、

@ v-suhameこれで最新のものは何ですか? #624を待っているだけですか?

それを動かすのを助けるために私ができることはありますか?

@kevinkuszyk支援の申し出をありがとう😃最新のアップデートを取得するために@arthurschreiberでループします。

LinuxサーバーでのWindows統合認証は現在利用できますか?

@ sxpati2 Windows統合認証は、その名前が示すように、WindowsOSの特徴です。 Linuxの場合、Kerberos統合認証になります。 Tediousは現在、WindowsまたはKerberos統合認証をサポートしていません。これは、将来の計画に含まれています。

これをチェックインしたいのですが。 大きなリファクタリングがあったようです。 msnodesqlv8を退屈にループさせる方法はありますか? msnodesqlv8はsequelizeに入ると思っていましたが、そうではありませんでした。

@arthurschreiberユーザー名/パスワードを必要とせずにウィンドウ認証を可能にするPR#497 Windows統合認証が統合されたようですが、最新の面倒なバージョンではもうそれを見つけることができないようです。 その機能に何が起こったのか疑問に思っていますか?

それ以来、状況は変わりましたか? または、その機能はリファクタリングで一時的に失われましたか?

それ以来、状況は変わりましたか? または、その機能はリファクタリングで一時的に失われましたか?

私も知りたいです!

ご挨拶、この機能の言葉は何ですか? ありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

aniltomar10 picture aniltomar10  ·  5コメント

anthonylau picture anthonylau  ·  8コメント

SaloniSonpal picture SaloniSonpal  ·  5コメント

David-Engel picture David-Engel  ·  5コメント

ghost picture ghost  ·  5コメント