6

Windows 통합 인증을 사용하는 ASP.NET 웹 응용 프로그램에서 Windows ID에 연결된 세션입니까?
즉, IWA를 사용하여 IWA에 로그인 한 상태에서 앱에 내 세션에 "물건"이 저장되어있는 경우 세션 아이디로만 액세스 할 수 있습니까? 예를 들어, 악의적 인 사람이 내 세션 ID를 훔칠 수 있지만 내 자격 증명을 훔쳐 내지 못하면 내 세션 항목에 액세스 할 수 있습니까? 또는이 세션은 동일한 ID에만 액세스 할 수 있습니까? 모두에 액세스하려면 세션 ID와 Windows ID가 필요합니까?Windows 인증을 통한 세션 관리

답변

4

우수 질문. 나는이 대답을 쓰기 전에 확인을위한 테스트를 실시했다.

    IWA를 사용하여 웹 사이트에
  • A라는 사람 로그, 세션 ID를 할당됩니다 (: 내가 '사람 A'입니다, 당신은 '사람의 B'경우

    는 다음이 발생하는 것입니다 예를 들어, URL)에

  • 사람 B는 그 자체로 웹 사이트에 로그인 (그래서 그들은
  • 사람 A가 사람 B 세션 식별자를
  • 사람이 B를 클릭 포함 된 URL 링크를 전송) 인증을 받아야 그 링크에서, 그들은 Person A의 세션 세부 정보를 사용하여 웹 사이트로 바로 들어갑니다.

사람 B는 사람 A의 세션 세부 정보를 사용하고 있지만 웹 사이트에서 여전히 '사람 B'로 인식됩니다. 따라서 사용자 권한을 검사하는 코드가있는 경우 이러한 확인은 여전히 ​​사람 B의 컨텍스트에서 수행됩니다.

이것은 큰 문제처럼 들릴지 모르지만 프로그래머가 부주의하지 않는 한 실제로는 그렇지 않습니다. . 예를 들어, 위의 테스트에서 Person B가 얻은 유일한 효과는 Person A가 설정 한 화면과 격자 레이아웃을 상속 받았다는 것입니다. 우리는 권한 확인을 실시간으로 수행하기 때문에 (즉 캐시되지 않았 음). 민감한 데이터를 세션에 저장하면 문제가 될 수 있지만 표시되는 필드가 표시 될 때마다 권한 검사가 아닌 경우에만 문제가됩니다. 사람 A의 세션이 만료되지 않은 경우에만 문제가됩니다.

+0

"무고한"시나리오의 좋은 예 :). 따라서 세션과 인증이 서로 관련이 없다고 말하는 것입니까? 이는 이상한 일입니다. 세션에 역할 또는 일부 다른 인증 토큰을 저장하는 것이 실제로 매우 일반적이며이 시나리오에서는이 문제를 중요하게 만듭니다. 감사. – AviD