Language (102) 썸네일형 리스트형 동시 세션 제어 - sessionManagement().maximumSessions() 개요동시 세션 제어는 사용자가 동시에 여러 세션을 생성하는 것을 관리하는 전략하나의 계정을 가지고 3명의 사용자가 서버에 인증을 받게 되면 3개의 세션이 생김 → 동시적 세션이 전략은 사용자의 인증 후에 활성화된 세션의 수가 설정된 maximumSessions 값과 비교하여 제어 여부를 결정 동시 세션 제어 2가지 유형사용자 세션 강제 만료새로운 클라이언트가 접속 시 최대 허용 개수를 초과되었다면 가장 오래된 클라이언트의 세션을 강제로 만료사용자 인증 시도 차단최대 허용 개수 초과 시 인증 예외가 발생하여 로그인 자체를 실패사용자 세션 강제 만료 ⇒ 세션 개수 초과 시 가장 오래된 사용자의 세션을 만료사용자 인증 시도 차단 ⇒ 세션 개수 초과 시 로그인 불가(인증 시도 차단) sessionManagem.. SecurityContextRepository / SecurityContextHolderFilter SecurityContextRepository 스프링 시큐리티에서 사용자가 인증 이후 요청에 대해 계속 사용자의 인증을 유지하기 위해 사용되는 클래스Repository ⇒ 인증 상태를 유지하기 위한 저장소인증 상태의 영속 메커니즘사용자가 인증 성공 시 해당 사용자의 인증 정보와 권한(인증 객체)이 SecurityContext에 저장HttpSession을 통해 요청 간 영속이 이루어 지는 방식 인증 요청 사용자 로그인 요청(아이디, 패스워드 입력)AuthenticationFilter가 해당 정보를 AuthenticationManager에게 전달하여 인증 객체를 AuthenticationFilter에 반환Authentication 객체를 SecurityContext에 저장SecurityContext를 명시적.. 사용자 상세 - UserDetails 시큐리티 인증 / 인가 흐름도 UserDetails사용자의 기본 정보를 저장하는 인터페이스로서 Spring Security에서 사용 하는 사용자 타입개발자마다 여러 도메인 객체를 생성(User, UserDao, UserDto 등)하면 스프링 시큐리티가 인식 할 수 없음하지만, UserDetails에 담게 되면 스프링 시큐리티는 UserDetails만 바라보기 때문에 어떤 타입이든 문제가 없음저장된 사용자 정보는 추후에 인증 절차에서 사용되기 위해 Authentication 객체에 포함되며 구현체로서 User클래스가 제공UserDetails 메서드메서드설명isCredentialIsNonExpired()|X" style="height: 20px; width: 66.2351%;">비밀번호가 유효 기간이 지났.. 사용자 상세 서비스 - UserDetailsService 시큐리티 인증 / 인가 흐름도 UserDetailsServiceUserDetailsService의 주요 기능은 사용자와 관련된 상세 데이터를 로드하는 것이며 사용자의 신원, 권한, 자격 증명 등과 같은 정보를 포함 가능DB와 같은 저장소로부터 유저 정보를 가져올 때 사용→ 반드시 UserDetailsService를 사용해야하는 것은 아님이 인터페이스를 사용하는 클래스는 주로 AuthenticationProvider 이며 사용자가 시스템에 존재하는지 여부와 사용자 데이터를 검색하고 인증 과정 수행UserDetailsService의 loadUserByUsername 메서드⇒ 사용자의 이름으로 사용자 데이터를 검색하고, 해당 데이터를 UserDetails 객체로 반환 UserDetailsService 흐름도.. 인증 제공자 - AuthenticationProvider 시큐리티 인증 / 인가 흐름도 AuthenticationProvider사용자의 자격 증명을 확인하고 인증 과정을 관리하는 클래스로서 사용자가 시스템에 액세스하기 위해 제공한 정보(예: 아이디와 비밀번호)가 유효한지 검증하는 과정을 포함다양한 유형의 인증 메커니즘을 지원할 수 있는데, 예를 들어 표준 사용자 이름과 비밀번호를 기반으로 한 인증, 토큰 기반 인증, 지문 인식 등을 처리 가능인증 성공 시 Authentication 객체 반환 → 이 객체에는 사용자의 신원 정보와 인증된 자격 증명을 포함인증 과정 중 문제 발생 시 AuthenticationException과 같은 예외를 발생시켜 문제를 알리는 역할AuthenticationManager로부터 Authentication 객체를 전달 받아 인증 수행.. 인증 관리자 - AuthenticationManager 시큐리티 인증 / 인가 흐름도 AuthenticationManager인증 필터로부터 Authentication 객체를 전달 받아 인증 시도 → 인증 성공 시 사용자 정보, 권한 등을 포함한 Authentication 객체 반환AuthenticationManager는 여러 AuthenticationProvider들을 관리하며 AuthenticationProvider 목록을 순차적으로 순회하며 인증 요청을 처리AuthenticationProvider목록 중에서 인증 처리 요건에 맞는 적절한 AuthenticationProvider를 찾아 인증 처리 위임AuthenticationManagerBuilder에 의해 객체가 생성되며 주로 사용하는 구현체로 ProviderManager 제공AuthenticationM.. 인증 컨텍스트 - SecurityContext / SecurityContextHolder 시큐리티 인증 / 인가 흐름도 SecurityContext Authentication 저장 현재 인증된 사용자의 Authentication 객체를 저장 ThreadLocal 저장소 사용 SecurityContextHolder 를 통해 접근되며 ThreadLocal 저장소를 사용해 각 스레드가 자신만의 보안 컨텍스트를 유지 클라이언트마다 스레드 생성 → 스레드마다 로컬 저장소 존재 → 로컬 저장소에 시큐리티 컨텍스트 저장 ⇒ 각 스레드마다 독립적인 컨텍스트 객체를 가짐*스레드마다 독립적인 컨텍스트를 가지기 때문에 다른 스레드의 컨텍스트에 접근할 수 없어 자신만의 보안 컨텍스트가 유지 된다는 것 애플리케이션 전반에 걸친 접근성 애플리케이션의 어느 곳에서나 접근 가능하며 현재 사용자의 인증 상태나 권한을.. 인증 - Authentication 시큐리티 인증 / 인가 흐름도Servlet FilterDelegationFilterProxy최초 요청을 에서 받아 스프링 컨테이너에 있는 FilterChainProxy에게 요청 전달FilterChainProxy넘겨받은 요청을 여러 필터에 전달각 필터는 해당 요청을 처리하고 AuthenticationFilter로 연결AuthenticationAuthenticationFilter인증 처리 수행인증 성공 시 Authentication 객체를 생성하여 AuthenticationManager에게 전달AurthenticationManagerAuthenticationProvider에게 인증 위임AuthenticationProvider는 사용자 인증 정보를 확인UserDetailsService를 통해 사용자 정보 조회.. 이전 1 ··· 8 9 10 11 12 13 다음 목록 더보기