1

mvc 3 응용 프로그램에서 windows 인증을 사용하고 있으며,이 응용 프로그램에 액세스하기 위해 내 활성 디렉토리의 일부 그룹 만 원합니다. 컨트롤러에서 [인증] 특성을 사용하지 않고 web.config 구성 만 사용합니다.활성 디렉토리 그룹과 Windows 인증을 통합합니다. aspnet mvc 3

<system.web> 
    <authentication mode="Windows" /> 
    <authorization> 
    <allow roles="EUsers" /> 
     <deny users="*" /> 
    </authorization> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <security> 
     <authorization> 
      <add accessType="Allow" roles="EUsers" /> 
      <add accessType="Deny" users="*" /> 
     </authorization> 
    </security> 
    </system.webServer> 

가 나는 또한 내 IIS 권한 부여 섹션에서 Windows 인증 및 ASP.NET Impersation을 사용할 수 :

이것은 어떻게 설정 내 Web.config의입니다. 사용자와 함께 앱에 액세스하려고하는데 (나는 EU 회원의 회원입니다.) 항상 내 사용자와 비밀번호를 요구합니다. 내가 뭔가 잊었 니? 내가 뭔가 잘못하고 있는거야?

답변

3

내 컨트롤러에서 [권한 부여] 속성을 사용하지 않는, 그냥 내 Web.config의 구성.

간단히 잘못되었습니다. ASp.NET MVC 응용 프로그램에서는 web.config를 사용하여 권한을 제어하지 마십시오. [Authorize] 특성을 사용해야합니다. 따라서 :

[Authorize(Roles = "EUsers")] 
+1

거기에 web.config를 사용할 방법이 없습니까? –

+0

web.config를 사용하는 것은 잘못입니다. 이것을 사용할 수는 있지만 ASP.NET MVC 응용 프로그램에서 권한을 제어하는 ​​것은 권장되지 않습니다. –

+0

인증 섹션을 제거하고 내 컨트롤러에서 [Authorize (Roles = "EUsers")]를 사용했지만 여전히 작동하지 않습니다. 추가 구성이 필요합니까? –

1

나는 그것이 여전히 작동하지 않는다는 것을 볼 수 있습니다.

권한은 일반적으로 우선 "거부":이 = "*"및 권한 우선 순위 규칙 여기

권한 충돌을 해결하기위한 몇 가지 규칙이있는가 "거부"명시 적으로 사용자에게 할당되는 결과가 될 수있다 생각 "허용"권한 이상. 개체에 직접 적용된 사용 권한 (명시 적 사용 권한)은 부모 (예 : 그룹)에서 상속 된 사용 권한보다 우선합니다. 친척으로부터 상속 된 사용 권한은 먼 선행자로부터 상속 된 사용 권한보다 우선합니다. 따라서 개체의 상위 폴더에서 상속 된 사용 권한은 개체의 "할아버지"폴더에서 상속 된 사용 권한보다 우선합니다. 동일한 수준에있는 다른 사용자 그룹의 사용 권한 (직접 설정 또는 상속 및 "거부"또는 "허용"과 관련하여)은 누적됩니다. 따라서 사용자가 "허용"권한이 "읽기"이고 다른 권한이 "쓰기"권한 인 두 그룹의 구성원 인 경우 사용자는 읽기 및 쓰기 권한을 가지게됩니다 물론 위의 다른 규칙들. 일반적으로 거부 권한이 허용 권한보다 우선하지만, 항상 그런 것은 아닙니다. 명시 적 "허용"권한은 상속 된 "거부"권한보다 우선 할 수 있습니다.

권한의 우선 계층은 더 높은 우선 권한리스트의 상단에 나열하여, 다음과 같이 요약 될 수있다 :

  1. 노골적인
  2. 노골적인
  3. 은 상속 된 거부 허용을 거부
  4. Inherited Allow
+0

문제를 해결하기위한 해결책을 알고 있습니까?그룹을 명시 적으로 허용하도록하려면 어떻게해야합니까? 또는 그룹이 거부에 대해 우선 순위를 둡니까? 지금까지 모든 사용자 (거부 *)를 차단 한 다음 보안 그룹이 사이트에 액세스하도록 허용하려는 이유는 무엇입니까? – markwilde

+0

그룹이 명시 적으로 허용되지 않으면 액세스 할 수 없다고 생각합니다. 우선 순위는 누군가가 액세스 권한이 부여 된 그룹과 액세스가 거부 된 그룹 중 하나 인 경우를 규정합니다. 이 개인은 거부되지만 사용자가 명시 적으로 액세스 권한을 부여받은 그룹의 구성원이 아니면 액세스 할 수 없습니다. 나는 대답은 라인을 완전히 제거하는 것이므로 누군가가 접근하는 것을 막을 것이라고 생각한다. – Thronk

+1

아, 내 실수가 뭔지 알 것 같아. 나는 RICS 대신 US 그룹에 AD 그룹을 추가 할 것을 고려하고있었습니다. 사용자에게 암시 적 액세스 권한이 부여되고 거부 (*)가 우선 적용됩니다. 그래서 제 문제는 조금 다릅니다. 후속 조치 해 주셔서 감사합니다. – markwilde

관련 문제