별도의 도메인에 두 개의 사이트가 있습니다. Thinktecture IdentityModel을 사용하여 SSO를 구현하고 있습니다.Thinktecture IdentityModel 토큰으로 재생 공격을 방지하려면 어떻게합니까?
사용자가 사이트 A에 로그인하면 사이트 B로 연결되는 링크를 누릅니다. 사이트 A는 JWT 토큰을 사용하여 사용자를 사이트 B/Login.aspx? token = < 토큰>으로 리디렉션합니다. 그런 다음 사이트 B는 사용자를 인증하기 위해 사이트 A에서 API를 호출하여 토큰의 유효성을 검사합니다. 인증을 받으면 사용자는 자동으로 사이트 B에 로그인합니다.
기본적으로 Thinktecture 토큰은 토큰을 죽일 방법이 없으므로 (내가 알 수있는 한) 10 시간 동안 지속됩니다. 사용자가 사이트에서 로그 아웃하면 토큰은 계속 유효합니다. 브라우저 기록을보고 "Login.aspx? token = < 토큰>"URL을 얻고 자동으로 다시 로그인됩니다. 로그 아웃 할 때 모든 사용자 토큰을 삭제할 수있는 방법이 있습니까? 토큰이 쿼리 문자열의 일부로 전달되지 않아야합니까? 재생 공격을 막는 가장 좋은 방법은 무엇입니까?
Well - 자신 만의 SSO 프로토콜을 사용하는 대신 WS-Fed 또는 OpenID Connect와 같은 표준을 사용하고 위협 모델 및 완화 기술의 이점을 누릴 수 있습니다. – leastprivilege
Thinktecture는 Federated 로그 아웃 또는 보안 토큰 취소를 지원합니까? – user1686249
WS-Federation은 로그 아웃을 포함하여 .NET 4.5에 직접 내장되어 있습니다. Thinktecture는 프로토콜이 아니며 도우미 라이브러리입니다. – leastprivilege