복붙노트

[SPRING] 봄 보안 (3.0.x) 및 사용자 가장

SPRING

봄 보안 (3.0.x) 및 사용자 가장

내 웹 응용 프로그램에서 인증 된 관리자가 해당 사용자의 암호를 알지 못해도 시스템의 다른 유효한 사용자로 가장 할 수있는 경우가 있습니다.

Spring Security를 ​​사용하여 관리자 사용자에게 시스템의 일반 (관리자가 아닌) 사용자를 가장하는 기능을 부여하려면 어떻게해야합니까?

Spring Security 문서는 이에 대해 침묵하고 있으며 어디에서도 찾을 수 없다. 확실하게 누군가는 이것을 해결 했음에 틀림 없다.

감사!

해결법

  1. ==============================

    1.Spring Security 3와 Spring Security 4 문서에서 "Run-As Authentication Replacement"라는 이름으로 적절하게 명명되었습니다.

    Spring Security 3와 Spring Security 4 문서에서 "Run-As Authentication Replacement"라는 이름으로 적절하게 명명되었습니다.

  2. ==============================

    2.스프링 보안에서 이것을 수행하는 권장 방법은 도메인 액세스 제어 목록과 관련이 있다고 생각합니다 (GrantedAuthority Sid @

    스프링 보안에서 이것을 수행하는 권장 방법은 도메인 액세스 제어 목록과 관련이 있다고 생각합니다 (GrantedAuthority Sid @

    http://static.springsource.org/spring-security/site/docs/3.1.x/reference/domain-acls.html

    그러나 다른 사용자를 가장하는 것은 단순히 "위임 ID"가있는 것 이상이며 로깅에 대한 영향도 고려해야합니다.

    또 다른 가능성은 기본적으로 현재 세션의 주체 신원을 변경하거나 가장 된 신원을 사용하여 새 세션을 시작하는 "다음 계정으로 로그인"기능을 만드는 것입니다.

    위의 모든 경우에 실수로 보안 문제가 열릴 수 있습니다. 따라서 이것이 가장 일반적인 스타일의 기능이 일반적인 장소가 아닌 이유라고 생각합니다. 오히려 디자인은 역할 기반 액세스 제어 (RBAC) 또는 속성 기반 액세스 제어 (ABAC)로 추세입니다. RBAC / ABAC을 사용하면 대리인 속성 / 역할을 만드는 위임 스타일 기능을 만들 수 있으며 위임의 소스 / 대상 (예 : 감사 로그)을 표시해야하는 특수한 경우에는 위와 같은 경우로 처리 할 수 ​​있습니다 .

  3. ==============================

    3.관리자 사용자가 다른 사용자 (예 : QA / 테스트 목적)로 가장 할 수있게하려면 SwitchUserFilter

    관리자 사용자가 다른 사용자 (예 : QA / 테스트 목적)로 가장 할 수있게하려면 SwitchUserFilter

    필요한 XML 설정의 예가 여기에 제공됩니다.

  4. from https://stackoverflow.com/questions/6337825/spring-security-3-0-x-and-user-impersonation by cc-by-sa and MIT license