問題タブ [networkcredentials]

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.

0 投票する
0 に答える
436 参照

httpwebrequest - NetworkCredential が設定された後続の HttpWebRequest は、最近変更されたドメイン パスワードを尊重します

Windows ドメインのユーザー名とパスワードを収集し、Web フロント エンドを介して Cookie に保存します。これらの資格情報と特定のデータの要求は、最終的に Windows サービスでホストされている WCF 呼び出しを介して継続的に渡されます。WCF 呼び出し自体は、新しい REST 呼び出しとして、Windows 認証が構成された IIS の下の別のサーバー セットアップにリダイレクトします。これは HttpWebRequest を使用して行われます...

したがって、Cookie ドメイン パスワード A に保存する場合は、上記の方法でリクエストを行い (すべて正常に動作します)、Windows ドメイン パスワードを B に変更します。その後のリクエストで見つかったのは、上記のコードです (再び Windows として実行されます)。サービス) は、NetworkCredential で A を受信して​​設定するときに問題なく認証されます (Cookie がまだ古いパスワードでぶら下がっているため、A を受信します)。サービスをすぐに再起動すると、パスワード A で HttpWebRequest と NetworkCredential を使用しようとすると 401 が生成されます。再起動するまで古いドメイン パスワードが使用されるのはなぜですか? どうやってその行動を止めますか?

0 投票する
1 に答える
1136 参照

wcf - NetworkCredentials オブジェクトを WCF サービスに渡す

編集-この質問を(うまくいけば)より適切に焦点を当てるために言い直しました。

対話する必要があるコンポーネントは次のとおりです。 ASP.NET Web サイト <--> WCF サービス <--> サード パーティの Web サービス

サード パーティの Web サービスには、プロキシの構築中にネットワーク資格情報を指定することによる Windows 認証が必要です。例えば:

私の知る限り、これは、WCF サービスがユーザーをサード パーティの Web サービスに偽装できる唯一の方法です。Windows 認証 (ネットワーク資格情報経由) は、サポートされている唯一の偽装手段です。サード パーティの Web サービスと WCF サービスの間にある種の信頼を設定する機能はありません。

Web サイトは、個々のユーザーのアカウントではなく、サービス アカウントで実行されます。ユーザーが Web サイトにログインすると、ActiveDirectory で検証しますが、AD を使用して「はい、それは有効な名前とパスワードの組み合わせです」と言うだけです。

Web サイトで知っている情報 (ユーザー名、パスワード) を取得し、それを WCF サービスのネットワーク資格情報に変換する方法が必要です。私が読んだ限りでは、ユーザー名/パスワード、またはネットワーク資格情報オブジェクト (可能であれば) を渡すことは、大きなセキュリティ リスクであり、本当に悪い習慣であると述べています。

Web サイトがユーザーのアカウントで実行されていない場合に、Web サイト ユーザーの Windows ID を WCF サービスで使用できるようにするために、どのようなオプション/手法を使用できますか?

洞察をありがとう。

PS 私はこの投稿を見つけました: How do you pass user credentials from one process to another for Impersonation in .NET 1.1? 質問を投稿した後、その内容を使用しています。

0 投票する
1 に答える
4289 参照

c# - 基本認証を使用した HttpWebRequest が DefaultNetworkCredentials の 401 エラーで失敗する

ローカル Web サーバー (IIS、Windows 8) を使用してアプリケーションをテストしています。サイトには基本認証が必要です。資格情報を明示的に渡す限り、すべて正常に動作します。

しかし、統合セキュリティを使用したいので、最初の行を次のように変更してみました。

(DefaultCredentialsも試しました)

Fiddler でネットワーク トラフィックを確認したところ、2 番目のケースでは HTTP 要求が承認ヘッダーなしで送信されていることがわかりました。したがって、失敗しても驚くことではありません。しかし、なぜ?

アップデート。デフォルトの資格情報の概念を誤解していると思います。DefaultNetworkCredentials を使用して基本認証ヘッダーを生成することはできません。ユーザーとパスワードのペアである必要があります。したがって、この動作は仕様です。

0 投票する
1 に答える
663 参照

authentication - NTLM-認証は失敗しますが、基本認証は機能します

アプリケーションがローカルIISでHTTP要求を呼び出すと、ローカルサーバーで何が起こるかを次に示します。

リクエストを実行すると、Fiddlerで次の一連のHTTP呼び出しを確認できます。

  1. 許可ヘッダーなしで要求すると、結果はWWWで401になります-NTLM+Negotiateを認証します
  2. 承認を伴うリクエスト:ネゴシエート(Base64文字列1)、結果はWWWで401になります-認証:ネゴシエート(Base64文字列2)
  3. 承認を伴うリクエスト:ネゴシエート(Base64文字列3)、結果はWWWで401になります-認証:ネゴシエート(Base64文字列4)
  4. 承認を伴う要求:ネゴシエート(Base64文字列3)、結果はWWWで401になります-NTLM+Negotiateを認証します

どうやらクライアントとサーバー(両方とも同じマシン上で実行されている)がハンドシェイクを試みていますが、最終的に認証は失敗します。

奇妙なことに、サイトのWindows認証を無効にし、基本認証を有効にして、user / pwdを明示的に送信すると、すべてが機能します。NTLM認証を使用して、資格情報を指定してブラウザーからサイトにアクセスしようとした場合にも機能します。

0 投票する
0 に答える
641 参照

c# - Windows 8 は FormsAuthentication を介して SharePoint REST インターフェイスを使用していますか?

_vti_bin/ListData.svc のような REST Api を使用して SharePoint 2010 リスト データを取得する Windows 8 アプリケーションのサンプルを作成しました。NetworkCredential を使用してリストにアクセスしています。FormsAuthentication を使用して同じ結果を得るにはどうすればよいですか? NetworkCredential のコード:

0 投票する
1 に答える
5531 参照

asp.net - Windows認証が有効でサービスアカウントを持つWebサーバーで実行されているWebアプリケーションからクライアントユーザー名を取得する

アプリケーションをWebサーバーにデプロイしているときに、次の問題が発生しました。

私が持っているコードは「Usercheck=My.User.Name」でしたが、Webアプリを実行しているインスタンスのサービスアカウントが返されるため、現在のWindowsクレデンシャルである「evilla」を表示する必要があります。初めてWebアプリに接続すると、ネットワークのクレデンシャルが要求されます。

サービスアカウントではなく、Windowsのユーザー名を取得することはできますか?(私はアプリにリモートで接続しています)

私が試してみました:

私は何かが足りないのですか?

注:上記のコード「NA / SRS-SA」(サービスアカウント)から取得しています

ありがとうございました!!

0 投票する
1 に答える
7394 参照

powershell - Powershell: runas /netonly から起動したときにデフォルトのネットワーク資格情報を検出する

現在のセッションのネットワーク資格情報を、後で渡すことができる変数にキャプチャする方法を探しています...

要点は、アカウント アクセス/権限がある外部ドメインでコマンドを実行することですが、ソース ドメインとターゲット ドメインの間に信頼関係はありません。

まず、runas コマンド (runas /netonly /user:domian\account powershell) を使用して生成された powershell 内で実行します。

ここから、ユーザー名/パスワードをコマンド ラインにハードコーディングせずに、タスク スケジューラでイベントを作成することを除いて、ほとんどすべてのことを行うことができます。

invoke-command -computer $destination -scriptblock {schtasks -ru domain\account -rp password}

私がやろうとしていることは次のようなものです

$username = Get Current Session Network Username ($(whoami) は、PowerShell ウィンドウを生成した runas アカウントではなく、実際のローカル longon アカウントを起動します)

$password = RunAs コマンドの実行時に入力されたパスワードを取得します

0 投票する
1 に答える
191 参照

wcf - リフレクション、WCF Web サービス、LoadFrom アセンブリ、なんてこった。ネットワーク資格情報に関する問題

.LoadFile('from assembly') でロードされた DLL を使用して、他の webservices/db 接続を動的に呼び出すことができる WCF Web サービスを作成しました。これらのアセンブリの 1 つの内部で、別の Web サービスが次のように渡されたネットワーク資格情報を使用して動的に呼び出されます。

//残りのコード。.OpenRead で 401 エラーが発生しています (認証されていません)。

テスト コンソール アプリケーションからデバッグ モードでこれを実行し、次のようにネットワーク資格情報を作成すると、次のようになります。

これはうまくいきます。

失敗したコードは、次のように networkcredentials を提供しています

どんな助けでも大歓迎です。