同じドメインを使用している場合でも、面倒なため、Windows認証のユーザー名/パスワードを指定する必要があります。 このシナリオでは、ADO.NETでユーザー名/パスワードを指定する必要はありません。 ドライバーが資格情報ストアからKerberosトークンを取得していると思います。
この機能は現在Tediousでは利用できませんか? または、ユーザー名/パスワードを指定せずにWindows認証を機能させる構成はありますか?
@ arobson @ arthurschreiber-考えてください。
私はこれをいくつか調査しました。 これまでに学んだことは、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統合認証が統合されたようですが、最新の面倒なバージョンではもうそれを見つけることができないようです。 その機能に何が起こったのか疑問に思っていますか?
それ以来、状況は変わりましたか? または、その機能はリファクタリングで一時的に失われましたか?
それ以来、状況は変わりましたか? または、その機能はリファクタリングで一時的に失われましたか?
私も知りたいです!
ご挨拶、この機能の言葉は何ですか? ありがとう!
最も参考になるコメント
私はsspi-clientを退屈なものに統合するために何かを一緒に投げて、それが機能するかどうかを確認しました! パスワードを指定せずに、ntlm、kerberosを使用して接続し、セキュリティパッケージをネゴシエートすることができました。
@arthurschreiberここでハックを見つけることができます。 これは決してPRの準備ができていませんが、高いレベルで問題が発生した場合はお知らせください。
https://github.com/tvrprasad/tedious/tree/windows-integrated-auth-draft