[Java - Spring Security6] Authentication(인증)과 관련된 Provider와 manager
·
Spring/Security6
이전의 내용에서는 1번 Config파일에서 인증을 거쳐야 하는 경로를 지정하거나 6번에서 비밀번호를 암호화하여 비밀번호 일치여부를 확인하는 과정에 대해서 배웠다! 오늘 공부해볼 내용은 3,4 과정이다. 유저는 로그인 하기 위한 세가지 방법을 진행할 수 있다. 첫 번째, 유저의 아이디와 비밀번호로 인증 요청 두 번째, OAuth2를 인증 요청 세 번째, OTP인증 요청 요청은 Security Filter가 인터셉트하여 인증을 위한 ProviderManager의 authenticate 메서드를 호출한다. ProviderManager는 Audentication Provider를 Implement한 클래스들을 모두 호출하여 인증성공을 반환하는 클래스가 있는지 확인한다. 우리는 Authentication Prov..
[Java - Spring Security6] PasswordEncoder와 BCryptPasswordEncoder, 그 이외의 암호화 클래스들
·
Spring/Security6
목차 1. 암호화 표준 2. 비밀번호 검증 순간의 코드 3. 해싱과 PasswordEncoder로 비밀번호가 인증되는 과정 4. PasswordEncoder의 메서드들 5. PasswordEncoder의 다양한 Encoder들 6. BCryptPasswordEncoder적용하기 1. 암호화 표준 암호화 표준 - 어느 것이 적합할까? Encoding 데이터를 한 형식에서 다른 형식으로 변환 어떠한 기밀성도 포함하지 않는다. 누구든지 디코딩 가능, 완전 가역적 비밀번호 관리에는 적합하지 않다. 예시 ) ASCII, BASE64, UNICODE Encryption 기밀성을 보장 데이터를 암호화하려고 할 때 특정 알고리즘을 따르고 비밀 키를 제공한다. 복호화하는데 필요한 것이 비밀 키다. 또한 동일한 알고리즘이..
[Java - Spring Security6] Config파일 해석 및 직접 FilterChain만들기
·
Spring/Security6
우선 내 컨트롤러 다이어그램을 먼저 보여주자면! Controller Diagram 모든 컨트롤러는 REST API로 호출하는 방식이며 Spring Security 프레임워크가 적용되어있다. 모든 API호출 경로는 Security에서 인증 및 인가를 받아야 정상적인 응답을 받을 수 있다. Security는 Filter를 통해 코드가 구현되어 있다. 위 컨트롤러의 경로로 요청을 보낼 경우 나타나는 Security의 기본 창 아이디와 비밀번호를 자격 인증을 요구하고 있다. 위와 같이 이루어지는 Security 6에서 제공하는 기본 샘플을 먼저 살펴보자. 이 중 1번의 과정이 아래의 코드에 구현되어 있다. @Configuration(proxyBeanMethods = false) @ConditionalOnDefa..
[Java - Spring Security6] Spring Security를 사용하는 이유 및 아키텍처
·
Spring/Security6
보안이 왜 중요한가? 데이터 손실 또는 비즈니스 로직 손실을 초래할 수 있음 이러한 손실은 법적 처벌까지 따라갈 수 있다. 대부분의 공격에 대해 회피하고 정보를 보호하기 위함 환경 구성 Java 17, Spring Web, devtools, Spring Security Spring security 의존성을 추가하게되면 어떠한 요청에도 응답하지 않고 자격증명을 요구한다. 아무것도 설정하지 않은 Security 프로젝트 첫 인증후에는 곧바로 들어갈 수 있다. 재시작할때마다 새로운 빔리번호를 받고 가장 낮은 cvrt어플리케이션에서는 작동하지 않을 수 있다. 저장 시스템에 자격증명을 저장하고나 자격증명을 요구하는 것 properties 설정 비생산 애플리케이션, 내부 애플리케이션 , 작은 poc어플리케이션을 만..
자바[Java] - Security 소개
·
Spring/Security6
더보기 해당 글은 SpringBoot 기본 문서를 번역해서 적은 것입니다. 오타/오역이 있을 수 있습니다! Spring Security의 특징 인증, 권한 부여 및 일반적인 악용에 대한 보호를 위한 포괄적인 지원을 제공 사용을 단순화하기 위해 다른 라이브러리와 통합을 제공 Authentication( 인증) 특정 리소스에 액세스하려는 사람의 신원을 확인 사용자를 인증하는 일반적인 방법은 로그인 인증이 수행되면 우리는 신원을 알고 인증을 수행할 수 있다. Spring Security는 사용자 인증을 위한 기본 지원을 제공 Password Password Storage passwordEncoder인터페이스는 비밀번호를 안전하게 저장할 수 있도록 단방향 변환을 하는데 사용된다. 데이터베이스 인증에 사용되는 자..