ASP.NET Core의 Windows 인증 : 수동 로그인 및 자동 인트라넷 로그인 및 그룹 사용 가능


9

로컬 인트라넷 Windows 인증과 함께 작동하여 로그인 한 사용자를 식별하는 ASP.NET Core 3.0 응용 프로그램이 있습니다. 표준 Windows 인증 동작을 사용하면 WindowsIdentity문제없이 사용자를 캡처 할 수 있습니다.

그러나 사용자가 자동 ​​인트라넷 브라우저 로그인 (예 : 비밀번호 대화 상자 없음)을 사용하거나 브라우저 비밀번호 대화 상자를 사용하여 명시 적으로 로그인하는 방식 에 따라 사용자 그룹에 대해 다른 결과가 나타납니다 .

다음은 필터링 된 그룹 멤버십 목록 (내장 계정 제외)을 포함하여 사용자 정보를 에코하는 API 요청입니다. 왼쪽에있는 것은 수동 로그인이고, 오른쪽에있는 자동 로그인입니다.

명시 적 로그인의 경우 사용자가 속한 모든 사용자 정의 그룹을 올바르게 볼 수 있습니다. 그러나 자동 로그인의 경우 동일한 그룹이 표시되지 않습니다.

수동 로그인과 자동 로그인의 그룹 차이점

또한 서버의 User 및 Identity 인스턴스를 자세히 살펴 보았으며 사용자에 대해 동일한 SID를 참조하고 있으므로 그룹 멤버십에 대해 다른 결과가 반환되는 것이 이상해 보입니다.

동일한 계정이 반환 될 때 그룹 목록이 다른 이유에 대한 아이디어가 있습니까? 그룹은 로컬이므로 도메인 액세스로 인해 문제가되지 않아야합니다.

참고 : localhost에서도 로컬로 테스트하고 있으며이를 테스트하려면 Windows 프록시 설정을 여기에서 설정하십시오.

로그인 구성

확인란을 끄면 강제로 로그인해야합니다. 그들과 함께 (어쨌든 Chromium 브라우저에서) 브라우저의 로그인 대화 상자에 자격 증명을 명시 적으로 입력해야합니다.

답변:


9

해당 그룹에 추가 된 후 사용자가 컴퓨터에서 로그 아웃 했습니까?

나열된 그룹은 사용자의 로그인 토큰에 보유됩니다. 자동 로그인은 사용자의 기존 로그인 토큰 (Windows에 로그인 할 때 생성됨)을 전송하므로 마지막으로 로그인 한 이후에 추가 된 그룹은 포함하지 않을 것입니다.

사용자 이름과 비밀번호를 수동으로 입력하면 새로운 로그인이 수행되므로 로그인시 모든 그룹과 함께 새로운 토큰을 얻습니다. 새로운 그룹이 나타납니다.


1
몇 가지 추가 확인 후 당신이 절대적으로 올바른 것으로 판명되었습니다. 처음에는 문제가 표시된 이후에 컴퓨터를 재부팅했다고 생각했지만 실제로 로그 오프하고 로그온 한 후에 실제로 다시 로그인 한 후 그룹을 볼 수 있음을 알았습니다. 고마워-회고에서 너무 분명하지만 여전히 그리워합니다.
Rick Strahl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.