0

I can't seem to stumble upon the correct combination of IIS / ASP.NET settings to accomplish the following:

  1. All users on an internal domain should be able to access IIS site (w/ NTLM authentication), and the ASP.NET application should be able to get the username of the current user (aka the user is authenticated as themselves).
  2. The running ASP.NET application should be able to execute certain actions under an Administrator account. For example, an Active Directory change, or writing files to restricted locations.

You could probably guess, but the point of the application is to be able to let "normal" users make specific "Administrative" changes via the web application. At the same time, the change should be logged with the "normal" user's account, so I don't want to lose the authenticated user's credentials.

Looking for the specific settings in IIS6 to accomplish #1 (any users on the domain to get to the site and be authenticated as themselves), along with the code for #2.

4

2 に答える 2

1

少なくとも 2 つのオプションがあります。

両方に共通:

  • IIS 設定を Windows 認証に設定する必要があります。
  • ユーザーの ID は httpcontext から読み取ることができます。

オプション1:

  • 偽装を設定 = false
  • アプリケーション プールの ID を、AD 変更を行う権限を持つユーザーに設定します。
  • 上記のユーザーを IIS_WPG グループに追加します

オプション 2:

  • AD の変更を行う場合、スレッドの ID を、AD の変更を許可されているユーザーの ID に設定します。

オプション 2 の場合、偽装ユーザーを使用するコード例を次に示します。

http://msdn.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.aspx

于 2009-10-30T21:04:30.340 に答える
0

セキュリティの観点からは、すべての管理操作を、認証はするが偽装しない独自の Web サービスに分離するのが最善の方法です。サイトの Normalpart は、ローカルホスト呼び出しであっても、他のクライアントと同様に、Web サービスを呼び出して管理操作を実行します。

このようにして、通常のアプリ プール (偽装) と特権アプリ プール (管理用) を分離できます。

最後に、これはおそらく髪を分割していますが、NTLM では制約付きの委任が許可されておら、「通常の」アプリケーションがローカル IIS ホストの外部にアクセスする場合、委任に対して有効にする必要があるため、NTLM ではなく Kerberos 認証である必要があります。

于 2009-10-30T21:07:42.627 に答える