web-dev-qa-db-ja.com

[email protected]:something」としてログインする意味は何ですか

Windows 2008R2マシンがドメインに参加しています。

ログオン画面で、ユーザー名として「[email protected]:something」と入力しても、正常にログオンできます。最後に「:something」を追加するとどうなりますか?

ユーザーの切り替え画面で、現在のユーザーが「[email protected]:something」として表示されていることもわかります。 Windowsの機能ですか?それとも単なるバグですか?それが機能である場合、「[email protected]」としてログインすることと「[email protected]:something」としてログインすることの違いは何ですか?

「mydomain\username:something」と「mydomain.com:something\username」のようなさまざまな組み合わせを試したことに注意してください。 「[email protected]:something」以外は機能しません。

2012年9月10日更新

Justinが提起したRunAsの問題は、解決したい問題と似ていますが、まったく同じではありません。もしあなたがそうするなら

runas /user:[email protected]:anything

あなたは得るでしょう

RUNAS ERROR: Unable to acquire user password

ユーザー名として[email protected]:anythingが表示されている場合、RunAsがLSAを呼び出すことすらしないことを確認しました。 RunAsは入力の検証を行い、そこでエラーを返すはずです。

WinLogonは異なります。この入力形式を受け入れ、「[email protected]:anything」をLSAに渡します。 kerberos.dll内のLogonUserEx2が呼び出されました。 WinLogonの入力検証ロジックにバグがあるか、これが一部の非表示機能で実際に許容できる形式であるかのいずれかです。

2012年9月26日更新

マイクロソフトプレミアサポートにケースを提出しました。彼らから更新があれば、ここで更新します。

35
Harvey Kwok

Microsoft PremierSupportでケースを開きました。これが私とマイクロソフトサポートの間のメールです。彼らは基本的にそれは既知の問題であると言います。これはバグではなく、機能でもありません。

バックエンドはユーザー名を解析し、不正な文字を適切に取り除きます。他のサードパーティのログオンUIが存在する可能性があるため、フロントエンドはUI検証を行いません。ユーザー名に対する要件は異なる場合があります。彼らが言及しているのは、サードパーティの資格情報プロバイダーだと思います。

2012年10月5日朝

私は彼らのエンジニアの一人と電話で話しました。問題全体をもう一度彼に説明してください。彼は:somethingは、現時点では内部的に特別な意味はありませんが、将来的に意味があることを保証できません。

しかし、彼はそれを確認するためのソースコードを持っていません。彼はそれを確認するためにソースコードを添えて他の誰かにメールを送るつもりです。

2012年10月3日の夜-私の返信

情報をありがとう。しかし、私は他のいくつかの違法な文字を試しました。および|。

ログオンUIはそれを正常に検出し、ユーザー名またはパスワードが正しくないことを通知します。

フロントエンドが本当に入力検証を行わず、バックエンドが本当にすべての不正な文字を取り除くことができる場合、なぜログオンUIで[email protected]|somethingまたは[email protected]としてログインできないのでしょうか。 [email protected]:something以外の何か。

この奇妙な動作は「:」でのみ発生します。

-ハーベイ

2012年10月3日午後-MSサポートの返信

こんにちはハーベイ、

フロントエンドは検証を実行しないため、フロントエンドの検証にバグはありません。資格情報を入力してログインしようとすると、検証が実行されます。その後、バックグラウンドで検証が実行され、それぞれのエラーが表示されます。

検証を前に実行しない理由は、使用されている他のサードパーティのログオンUIOがあり、ユーザーの動作と認証の要件が異なる可能性があるためです。一部のUIでは、diff形式のユーザー名が必要になる場合があるため、ユーザーが資格情報を入力しているときに検証を実行すると、それらのUIが破損します。

バックエンドに関しては、フロントエンドに存在するUIに関係なく、すべてのUIがバックエンド認証APIを呼び出します。したがって、バックエンドで検証を実行すると、適切な認証が保証されます

よろしくXXXX

2012年10月3日午後-私の返信

私はプログラマーでもあるので、フロントエンドとバックエンドでの異なる処理についての説明を理解しています。

したがって、バックエンドにはバグはありませんが、フロントエンドUI入力検証ロジックのマイナーバグのように聞こえます。

Runas.exeを使用して同じことを実行しようとしたことにも注意してください。 runas.exeは、不正な形式のユーザー名をバックエンドに渡す前にエラーメッセージを表示しました。したがって、私にとってrunas.exeは正しい入力検証を行っています。

それでもUIフロントエンドにバグがないと思われる場合は、エンドユーザーが不正なユーザー名を入力して画面に表示できるようにする目的を説明できますか?

ありがとう、ハーベイ

2012年10月3日午前-MSサポートの返信

こんにちはハーベイ、

遅れて申し訳ありません。私はあなたの質問を私のSMEに転送しました、そしてここに彼の返事があります:バグはありません。UIはあなたが入力したものを表示します。バックエンドは文字列を解析してドメインとユーザー名を決定します。 :は不正な文字です。

それがあなたの質問を明確にするかどうか、または私があなたをさらに助けることができるかどうか私に知らせてください。

XXXXXよろしく

13
Harvey Kwok