問題タブ [sspi]
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.
php - mod_auth_sspi_1.0.4-2.2.2 でログイン プロンプトを無効にする
私がやろうとしていること:
当社のイントラネット上にホームページを作成し、ページの読み込み時にこれらの資格情報の入力を求められることなく、ページを表示しているユーザーのログイン Windows ユーザー名を自動的に取得します。
IT担当者がドメインをセットアップするまでにはしばらく時間がかかるため、現在、ローカルのユーザー名を取得したいだけです。たとえば、現在、プロンプトなしで「(PC-Name)\windows.user.name」をキャプチャする必要があります。
環境:
Windows 7 x64 上の Apache 2.2.21 (本番環境になると、CentOS に搭載されます)。
PHP 5.3.8 (VC9-ZTS)。
Internet Explorer 9.0.8x と Firefox 6.0.2 (Chrome については後で考えます)。
現在のテスト ページは、print_r( $_SERVER ) を呼び出す PHP スクリプトです。
簡単にするために、これをテストしているディレクトリは VirtualHost ではありません。
これまでに行った手順:
SourceForge から mod_sspi_1.0.4-2.2.2 をダウンロードし、mod_auth_sspi.so を Apache モジュール ディレクトリに展開します。
モジュール宣言を追加しました:
LoadModule sspi_auth_module modules/mod_auth_sspi.so
ディレクトリ定義を追加しました:
AllowOverride なし オプション なし 順序を許可、拒否 すべてから許可
about:config に移動し、network.automatic-ntlm-auth.trusted-uris を PHP スクリプトの絶対 URL パスに設定して、Firefox で統合認証を有効にし、Firefox を再起動しました。
私はまだ IE で同等の手順を実行していませんが、内部でサポートされている主なブラウザーである Firefox が動作するようになるとします。
Apache を再起動し、テスト PHP スクリプトのロードを試みました。
結果:
- IE と Firefox の両方で、ページが読み込まれる前にユーザー名とパスワードの入力を求められます。そのプロンプトは必要ありません。プロンプトなしでユーザー名を自動的に検出したい。
これまでのトラブルシューティング:
権限のあるオン/オフなど、さまざまなSSPIオプションを循環させてみました。無効。
「require valid-user」を削除するとプロンプトは表示されなくなりますが、ユーザー名も渡されません (NULL ではなく、単に配列ピリオドに設定されていません)。
プロンプトで [キャンセル] をクリックすると、標準の [認証が必要です] ページが表示されます。
無効なユーザー名を入力した場合、または正しいユーザー名を入力してもパスワードが間違っている場合、ページは読み込まれますが、ユーザー名は "(PC-Name)\Guest" になります。
正しいユーザー名/パスワードを入力すると、Guest の代わりにユーザー名が表示されます。
IE または Firefox でユーザー名/パスワードを入力すると、保存されたパスワードのキャッシュをクリアするか、ブラウザーを再起動するまで、ブラウザーは後続のページのユーザー名を記憶します。
私は過去3時間ほどグーグルとランダムな推測に費やしました. 成功ゼロ。この質問をしている人々の孤立したフォーラム投稿をいくつか見つけましたが、彼らは答えられなかったか、私がすでに試した解決策を提供しましたが成功しませんでした.
繰り返しますが、プロンプトを表示せずにページを読み込み、現在ログオンしている Windows ユーザー名を $_SERVER 配列の出力に表示する必要があります。
私が推測できる限り、これは次のいずれかです。Windows の構成の問題、Apache の構成の問題、またはブラウザーの構成の問題です。それ以外は、私はアイデアがありません。
あなたが提供できるどんな助けにもとても感謝しています。ありがとう!
――クリス
c++ - PSECURITY_STRINGと互換性がありません
http://msdn.microsoft.com/en-us/library/windows/desktop/aa380536(v=VS.85).aspxのコードを使用しようとしています
AcquireCredentialsHandleの行は、2番目の引数がPSECURITY_STRINGと互換性がないことを示しています。私がここで何ができるか誰か知っていますか?
c++ - Microsoft Windows SChannel SSPI 自己テスト?
この質問は、TLS に使用される SChannel モジュールが侵害されていないことを検証するために、使用前に自己テストを実行することを要求する一部の仕様 (FIPS) に関するものです。FIPS はその一例です。オープン ソース ライブラリにはセルフ テストが組み込まれています。SChannel にはこの機能がありますか? これについての言及を見つけることはできませんが、これが除外されるのは奇妙に思えます。
質問が曖昧で曖昧でなくなることを願っています。これは、SChannel API について深い知識を持っている人が合理的に答えることができる質問だと思います。
追加: FIPS レベル 1 とレベル 2 についての私の理解では、アルゴリズムの動作は、最初に認定されたときだけでなく、実行時 (セルフ テスト) にも検証する必要があるということです。さらに、メモリ内のイメージをハッシュなどで検証して、変更されていないことを確認する必要があります。
これらが実行時に実行されない場合、ライブラリにパッチが適用される可能性はありませんか?
wcf - c# Windows サービスへの接続中に WCF SSPI が失敗しました
私はWCFが初めてであることに言及したいと思います。
WCF サービスへの接続で問題が発生しました。
WCF サービスは netTcpBinding で作成され、特定のアカウント (プロパティで定義) で実行される Window Service としてサーバー マシンにインストールされます。クライアント コンピューターから公開されたメソッドを呼び出しているときに、SSPI が失敗したというエラーが表示されます。
特定のアカウントなしで Window Service を実行すると、正常に動作します。このアカウントを追加すると問題が発生します。サービスが DirectorySearch を使用するには資格情報が必要なため、それをスキップすることはできません。
mayby in .cofig の設定を変えたほうがいいのではないかと調べてみました。多分:
助言がありますか?
django - mod_auth_sspi と mod_wsgi を使用して Apache で 2 つの Django アプリを実行する
mod_wsgiを使用してmod_auth_sspiによってシングルサインオンが有効になっているDjangoアプリを1つ実行しています。
Apache/2.2.21 (Win32) mod_wsgi/3.3 Python/2.7.2 mod_auth_sspi/1.0.4
問題は、シングル サインオンも使用したいため、同じモジュールを使用する 2 つ目の Django アプリを追加できないことです。2 番目のアプリを追加すると、Apache は最初に要求されたアプリのみを認証します。2 つ目はエラー 500 - 内部サーバー エラーをスローします。Apache を再起動して、最初に 2 つ目のアプリをリクエストしようとすると、機能します。しかし、最初のアプリをリクエストすると、エラー 500 (最初と同じエラー) がスローされます。
エラーログ:
conf/wsgi.conf:
c:/www/app2/app2.wsgi (app1.wsgi も同様):
両方のアプリをシングル サインオンで動作させるにはどうすればよいか知っていますか? Django のせいなのか、mod_wsgi のせいなのか、mod_auth_sspi のせいなのかわかりません。助けてくれませんか?
編集: mod_auth_sspi モジュールに依存していないようです。
security - LogonUser は、無効なアカウントに対して true を返します
LogonUserを呼び出して、資格情報のセットを検証しようとしています。
また、アカウントが無効になっている場合でもtrueを返します。
また、 SSPI を直接使用して資格情報を検証しようとしましたが、これには次の呼び出しが含まれます。
AcquireCredentialsHandle(..., "Negotiate", SECPKG_CRED_OUTBOUND, ..., ["forest", "stapler", "avatopia.com"], ...)
InitializeSecurityContext(...)
AcquireCredentialsHandle(..., "Negotiate", SECPKG_CRED_INBOUND, ...)
AcceptSecurityContext(...)
InitializeSecurityContext(...)
AcceptSecurityContext(...)
AcquireCredentialsHandle
ほとんどのマシンでは、ユーザー アカウントが無効になっている場合、への最初の呼び出しは失敗します。しかし、私がテストしているこの特定のマシンでは、サイクル全体が完了し、機能します。
無効なパスワードで試してみると、LogonUser
(正しく)失敗します:
falseを返し、 (ログオン失敗: 不明なユーザー名またはパスワード)をGetLastError
返します。1326
無効なパスワードで SSPI を試行しても (正しく) 失敗します。
AcquireCredentialsHandle(..., "Negotiate", SECPKG_CRED_OUTBOUND, ..., ["forest", "adf342sdf3", "avatopia.com"], ...)
InitializeSecurityContext(...)
AcquireCredentialsHandle(..., "Negotiate", SECPKG_CRED_INBOUND, ...)
AcceptSecurityContext(...)
で失敗します8009030C
(ログオン試行に失敗しました)
悪化しているのは、この動作が1台のマシンでのみ発生していることです。
LogonUser
および Security Support Provider Interface 全体が、特定のドメインに参加しているマシンで無効になっているアカウントの資格情報が有効であることを示すのはなぜですか?
- (誤って) 成功するドメイン参加マシン
LogonUser
: Windows XP SP2 LogonUser
(正しく) 失敗するドメイン参加マシン: Windows XP SP2
アップデート:
というローカル ユーザーはありませんForest
:
という名前のローカル ユーザーもいませんForest
。
私が求めているのはavatopia.com\Forest
ではなくであるため、これは無関係ですspeeder\Forest
。
oi vayアクセスを許可されるべきではないものに、障害のあるユーザーがアクセスを許可されたという理由だけで、人々はパンティを束ねます。
c++ - C++でSSPIを使用して安全な接続を実装する-いくつかの用語を明確にする
MicrosoftAPIを使用してクライアントとサーバー間の安全な接続を実装するアプリケーションを作成する必要があります。グーグルは私にたくさんの結果を与えます、そして私は大きな混乱を持っています-私の頭の中で私にいくつかの注文をするために誰かが必要です:
質問:
- SSPIインターフェイスとは何ですか?Schannel.dllライブラリとは何ですか?違いは何ですか?(「SSPI.h」と「Schannel.h」と「security32.h」をインクルードできることがわかります。本当に必要なヘッダーファイルはどれですか?)
安全なソケットを作成する方法を説明する実際の簡単なサンプルを見つけるにはどうすればよいですか?
始める前に知っておくべきガイドラインはありますか?
よろしくお願いします。
.net - SSPI/LSA認証
アイデアは会社のドメイン資格を取得することです。私はRASカードとVPNを使用してネットワークに参加しているユーザーを認証しようとしています。同様のことをしているコードを見つけましたが、何らかの理由でローカルクレデンシャルのみが返されます。しかし、ユーザーがVPNおよびRASカードを使用して接続するために入力する会社のクレデンシャルに興味があります。
何かアドバイスをいただけますか、それともコード例がありますか?
}
ありがとう!!!!!
c++ - InitializeSecurityContext(Schannel)によるTLSハンドシェイクプロセス
SSPIインターフェイスを使用してTLSハンドシェイクプロセスを実装する必要があります。
私のアプリはクライアント側を実装しています。ここから見たように、一般的なフローは次のとおりです。
- InitializeSecurityContext-最初の呼び出しは、SecBufferDesc構造体へのポインターを返します。
- 出力バッファーを使用してsend(= WinSock API)関数を呼び出します。
- recv関数を呼び出す
- バッファーを使用して、InitializeSecurityContextを再度呼び出します。
これらのバッファに関するMSDNの説明:
「最初の呼び出し後のこの関数の呼び出しでは、2つのバッファーが必要です。最初のバッファーのタイプはSECBUFFER_TOKENで、サーバーから受信したトークンが含まれます。2番目のバッファーのタイプはSECBUFFER_EMPTYです。pvBufferメンバーとcbBufferメンバーの両方をゼロに設定してください。」
私の質問:
- もう少し説明が必要です:バッファの意味は何ですか?2番目のバッファには何が含まれていますか?それらは何のため?
- MSDNには、InitializeSecurityContext関数のTargetDataRep入力パラメーターがSchannelに使用されると書かれていますが、私が見た多くのサンプルでは、SECURITY_NATIVE_DREPに設定されています。SECURITY_NATIVE_DREPフラグとは何ですか?なぜMSDNはそれをゼロに設定すると言うのですか?
私は本当にどんな助けにも感謝します。
ありがとう!。
wcf - SecurityNegotiationException: SSPI の呼び出しに失敗しました
NetTcpBinding
トランスポート セキュリティを使用し、 を にclientCredientialType
設定した WCF Web サービスがありnone
ます。このバインディングを使用するエンドポイントで ID が指定されていません。サービスでメソッドを呼び出そうとするたびに、次のエラーが発生します。
クライアント側:
System.ServiceModel.Security.SecurityNegotiationException: SSPI の呼び出しに失敗しました。内部例外を参照してください。
サービス側:
System.ServiceModel.Security.SecurityNegotiationException: リモート側で認証が失敗しました (ストリームは、追加の認証試行に引き続き使用できる可能性があります)。
System.ComponentModel.Win32Exception: 対象のプリンシパル名が正しくありません
これに関する任意の助けをいただければ幸いです
ありがとう
Sj