문제

다음을 달성하기 위해 IIS / ASP.NET 설정의 올바른 조합을 우연히 발견 할 수 없습니다.

  1. 모든 사용자 내부 도메인 IIS 사이트에 액세스 할 수 있어야합니다 (w/ ntlm 인증). ASP.NET 응용 프로그램은 현재 사용자의 사용자 이름을 얻을 수 있어야합니다 (일명. 사용자는 스스로 인증됩니다).
  2. 실행중인 ASP.NET 응용 프로그램이 가능해야합니다 관리자 계정에 따라 특정 조치를 실행합니다. 예를 들어, Active Directory 변경 또는 제한된 위치에 파일을 작성합니다.

아마도 추측 할 수는 있지만 응용 프로그램의 요점은 웹 응용 프로그램을 통해 "일반"사용자가 특정 "관리"변경을 할 수있게하는 것입니다. 동시에 변경 사항은 "일반"사용자 계정으로 로그인해야하므로 인증 된 사용자의 자격 증명을 잃고 싶지 않습니다.

IIS6의 특정 설정을 찾고 #1 (사이트에 도착하여 사이트에 도달하고 자체로 인증 될 도메인의 모든 사용자)를 달성 할 수 있습니다.

도움이 되었습니까?

해결책

적어도 두 가지 옵션이 있습니다.

둘 다 일반적으로 :

  • IIS 설정은 Windows 인증으로 설정되어야합니다.
  • 사용자의 ID는 HTTPContext에서 읽을 수 있습니다.

옵션 1:

  • 사정 = 거짓을 설정합니다
  • 애플리케이션 풀의 ID를 광고 변경을 할 권리가있는 사용자에게 설정
  • 위의 사용자를 IIS_WPG 그룹에 추가하십시오

Option 2:

  • 광고 변경을 할 때 광고를 변경할 수있는 사용자의 스레드 신분을 설정합니다.

옵션 2의 경우 여기에 가장 한 사용자를 사용하는 코드 예제가 있습니다.

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

다른 팁

보안 관점에서 가장 좋은 방법은 모든 관리 작업을 자체 웹 서비스로 분리하는 것입니다. 사이트의 정상 파트는 다른 클라이언트와 마찬가지로 LocalHost Call이라도 웹 서비스를 호출하여 관리 작업을 수행합니다.

이렇게하면 일반 앱 풀 (가장 한)과 특권 앱 풀 (관리자)을 격리합니다.

마지막으로 이것은 아마도 머리카락을 나누는 것일 수도 있지만 NTLM이 허용하지 않기 때문에 NTLM이 아닌 Kerberos 인증이어야합니다. 제한된 대표단 그리고 '정상'응용 프로그램이 액세스하는 경우 대표단에 활성화되어야합니다. 아무것 로컬 IIS 호스트 외부.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top