2

次の Web ページでは、コード (ASP.NET) での偽装の使用について説明しています: http://support.microsoft.com/kb/306158。コードのクラスを作成することを考えています。その後、アプリケーションは impersonateValidUser と undoimpersonation を呼び出すことができます。

ILDASM のようなツールを使用すると、誰でもそれらを見ることができるので、コードにユーザー名とパスワードを入れることについて心配しています。これらのパスワードを隠す最善の方法は何ですか?

この記事には、「IIS で認証されたアカウントまたはユーザーを偽装する」というセクションがあります。Web.Config で偽装ユーザーを作成することも考えましたが、これはアプリケーション全体が偽装ユーザーとして実行されることを意味します。Active Directory にアクセスして更新する必要がある場合に、アプリケーションのごく一部のみを偽装ユーザーとして実行したいと考えています。

4

1 に答える 1

1

AD の更新を実行するアプリケーションの一部のみを高度な特権アカウントで実行するという意図が本当に気に入っています。また、パスワードを web.config またはコードに保存することについての懸念も共有します。

2 つの選択肢が考えられます。

  1. アカウントの詳細を web.config に保存し、web.configのその部分を暗号化します。これにより、Web サーバーの管理者だけがパスワードを取得できるようになります。他の誰かが web.config を手に入れても、パスワードのことは理解できません。

  2. AD 更新コードを使用して、小さな別の WCF サービスを作成します。次に、別のアプリケーション プールでその WCF サービスを実行します。アプリケーション プールは、Active Directory へのアクセス権を持つユーザーの ID に設定されます。WCF の制限付きの localhost 専用エンドポイントをセットアップします。WCF サービスには、専用アカウントからのアクセスのみを許可するアクセス制御が必要です。そのアカウントは、メイン Web サイトのアプリ プールの ID として設定する必要があります。

オプション 1 は実装がより簡単で、パスワードを適切に保護します。オプション 2 では、パスワードが web.config にまったく保存されないため、パスワードの保護が強化されます。パスワードは IIS 構成の一部です。オプション 2 では、別のプロセスで AD 更新コードを実行するため、特権コードとシステムの残りの部分との間の完全な分離も追加されます。このように分離することで、AD コードのコード レビューを行い、セキュリティの問題をチェックすることがはるかに簡単になります。

于 2012-05-26T18:41:41.507 に答える