社内の企業ユーザー向けにC#Winformとしてセルフサービスパスワードリセットツールを作成しました。Windowsのログイン画面でセルフサービスC#Winformを実行する
このアプリケーションは、HTTPSとクライアント証明書ベースの認証を使用して、ランダムな6桁のコードを生成してモバイルデバイスに送信するか、ユーザーが設定した3つのセキュリティ質問を取得するために、セルフサービスに登録されています。
コード/アンサーはウェブサービスに送り返されます。確認されると、ユーザーのADアカウントはロック解除され、パスワードはサーバー側にリセットされます。
私があるため、ユーザーが自分のマシンにアクセス傾けるということで、問題の性質上、しかし...、他のユーザーのマシンからアクセスした場合、これは任意のSSPRツールですべてのかなり一般的であり、すべてが正常に動作していると思います
パスワードをリセットする必要があるときに、このアプリをWindowsのログイン画面から起動できるかどうか尋ねられました。
私はWindows 7のログイン画面に新しい「タイル」を追加し、クリックしたときに自分のアプリを起動するPOCカスタム認証プロバイダを作成しましたが、これは本当に悪い考えかもしれないと思っています。
これは、どこから起動されているのですか?私はすでに緊張しているローカルのSYSTEMユーザーのコンテキストでアプリが実行されます。
「支払った」SSPRツールを見ると、外見上の価値があり、ログイン画面で外部アプリを実行しているようなものがありますか?
winlogin画面でシステムとしてSYSTEMを実行していますか?
もしそうでない場合は、脆弱性をインストールするために私が従うべき推奨事項はありますか?
- は私がリスク軽減するために何ができる何かあります(私のプログラムが最初に実行されるときに偽装/デ標高のいくつかの並べ替えは?)あなたはどちらかにそれを得ることができ、Windowsの資格プロバイダで
メインログオンUIはSYSTEMとして実行されるため、まったくばかげたことではありません。実際には、セキュリティで保護されたログオン画面にUIを表示するために、*あなたがSYSTEMとして実行されている*と思われます。 (私は確信していません)とにかく、最低限の特権で実行されているサブプロセスで、ネットワーク攻撃を行うのは悪い考えではないかもしれません。 –
この質問の答えは、これは本当に悪い考えですが、詳細には入っていません: http://stackoverflow.com/questions/13292060/adding-a-button-to-the-windows-7-logon- screen 私は、そこに示唆されたルートに行って、一般的なドメインユーザーをセットアップし、そのユーザーのシェルを私のアプリケーションに置き換えたいと思っています。 私のアプリを起動するはずのタイルをクリックしたときに、一般ユーザーと一緒に自動的にログオンするように、資格プロバイダを修正できるはずですが、SYSTEMではなく標準ドメインユーザーのコンテキストで行う必要があります。 – prwilliams1982
がグループポリシーを使用して元のタイルを非表示にすると、CPサンプルは各プロバイダの新しいタイルを作成します。あなたは元のマイクロソフトタイルのGUIDが必要です – n981x