問題タブ [http-negotiate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - WCF クライアント認証方式「ネゴシエート」で HTTP 要求が許可されていません
IIS で Windows Aut を使用して WCF サービスをホストしています。ローカル マシンのクライアント アプリケーション (WPF) からサービスに接続できますが、他のマシンからサービスにアクセスしようとすると、次のエラーが発生します。
HTTP 要求は、クライアント認証方式 'Negotiate' では許可されていません。サーバーから受信した認証ヘッダーは「Negotiate,NTLM」でした。---> System.Net.WebException: リモート サーバーがエラーを返しました: (401) Unauthorized.
IISでプロバイダーを確認したところ、「ネゴシエート」が最初のプロバイダーで、次に「NTLM」です。「NTLM」も削除しようとしましたが、それも役に立ちませんでした。
App.configに次の構成があります
angularjs - Unauthorized Error : Negotiate token ベアラー トークンの代わりに IE に来る
angularjs と web api を使用して web アプリケーションを開発しました。アプリケーションは IIS 8.5 に展開されます。ユーザーは AD ドメインにあり、私たちのサイトはローカル イントラネット ゾーンに追加され、イントラネット ゾーン オプションでのみ自動ログインが選択されています。
アプリケーションで OWIN を使用して Web API トークン ベースの認証を使用しています。そのため、匿名認証以外のすべての IIS 認証方法を無効にしました。アプリケーションへのログイン中にサーバー側でトークンが生成され、このトークンがクライアント側に送り返されます。このトークンを sessionStorage に保存し、「Authorization : Bearer auth_token」のように http リクエスト ヘッダーに添付します。
しかし、場合によっては、ほとんどの場合、1 分以上待つと、"Authorization: Negotiate some_token" が API 呼び出しで送信されていることがわかります。そのため、サーバーは 401 無許可エラーで応答します。
同じことを経験した人はいますか?前もって感謝します
ntlm - BASIC 認証 (NTLM、ネゴシエート) で Service Worker を使用する方法
IIS がホストする Web サイト内で、サイトの静的コンテンツの一部をキャッシュする Service Worker を使用しようとしています。このサイトは、Windows 認証を使用する内部アプリケーションです。それほど手間をかけずに Service Worker を登録して実行することができましたが、キャッシュを開いてファイルをキャッシュに追加し始めるとすぐに、認証エラーで約束が失敗します。返された HTTP 結果は 401 Unauthorized です。これは、ブラウザーとサーバーが承認をネゴシエートできるようになるまでの最初のいくつかの要求に対する通常の応答です。
説明に役立つコードをすぐに投稿します。
編集
excel - Excel VBA: VBA-Web / WinHttp での NTLM / Kerberos & ネゴシエート認証
.PFX
デジタル証明書 (ファイル) (NTLM 認証) を使用するか、Windows ドメイン認証 (Kerberos & ネゴシエート認証) を使用して、authentication を必要とする Web サイト (EXCEL VBA) の REST API とやり取りしたいと考えています。後者が推奨されますが、どちらの方法もわかりません。これらの認証のいずれかを行う方法について誰かがコードを共有できることを望んでいました。サポートされていないため、他の認証方法 (基本など) を使用できません。
現在、私は VBA-Web ( github:VBA-tools:VBA-Web
) を使用しており、API とのインターフェイスに成功しましたが、非常に奇妙な方法でした。Chrome から Web サイトへのネットワーク呼び出しを追跡したところ、すべての呼び出しのヘッダーに Cookie が追加されていることがわかりました。したがって、私のリクエストでは、次のように追加します。
ただし、これは明らかに煩わしく、ユーザーフレンドリーではありません。Excel vba コードを使用するたびに Cookie を見つけなければならないからです。
さらに、Chrome で認証のネットワーク呼び出しを追跡した後、さまざまなリダイレクトを通過し、リダイレクトされるたびにすべての Cookie を収集していることに気付きました。1 つの特定の呼び出し中に、"negotiate"
認証を行います。
VBA-Web は に基づいているようです。そのため、いろいろ調べてみましたが、これらの認証を行うために (または WinINet などと) やり取りWinHTTP
する方法に本当に迷いました。メソッドLinkWinHTTP
を見てきましたが、NTLM または Negotiate のユーザー名とパスワードがどうなるかわかりませんか?setCredentials
または、代わりにデジタル証明書を使用しようとしましたが、PFX ファイルがあるため、それを直接使用する方法がわかりません。Linkを見たことがありますが、PFX のインストール後に証明書がどこに保存されているか完全にはわかりません。インストール時に Personal を選択しましたが、これは LOCAL_MACHINE\Personal にあるということですか? さらに重要なことに、サブジェクト名が何であるかわかりません。
Microsoft のドキュメントはC++
またはJScript
にあるため、どちらも役に立ちません。
したがって、認証して Cookie を取得できれば、残りは問題ありません。VBA を使用して、Excel で 2 つの認証方法のいずれかを使用してこれを行うにはどうすればよいですか?
PS私の質問が明確であることを願っています。ご不明な点がございましたらお気軽にお問い合わせください。私が見つけたすべての答えは基本認証に戻りますが、それはできません。私が接続しようとしている Web サイトを紹介したいと思いますが、それはイントラネット上にあります。
c# - NTLM/Authenticate/Negotiate Web 認証とは
基本認証とダイジェスト認証を理解しています。しかし、私はたくさん検索しましたが、NTLM、認証、およびネゴシエートに苦労しています。
NTLM と Authenticate は同じプロトコルを表す 2 つの用語であると思います。間違っている場合は訂正してください。
そしてネゴシエートは、最初に NTLM を試行し、次にダイジェストにフォールバックし、次にベーシックにフォールバックして接続します。
あれは正しいですか?その場合、C# で NTLM のみとネゴシエートの両方で接続する方法の良い例はどこにありますか。
2 つの使用例があります。1 つ目は、1 つのファイルをプルダウンする必要があることです。リクエストを行い、レスポンスとして XML ファイルを取得し、読み込んで完了です。
2 つ目は、OData に対してクエリを実行するため、数百から数千の Web 要求があり、それぞれが JSON (または XML) を応答として提供します。