전체 글 71

Spring Security : OAuth2.0 #Day27

OAuth2.0 RFC OAuth 2.0 : 신뢰할 만한 써드파티에서 사용자의 인증을 대신 처리해주고 Resource에 대한 자격 증명용 토큰을 발급한 후, Client가 해당 토큰을 이용해 써드 파티 애플리케이션의 서비스를 사용하게 해주는 방식 OAuth2.0 인증 컴포넌트(구성요소) Provider : 인증과 리소스를 제공하는 서버(서비스) Resource Server : Client 요청을 수락하고 resource를 제공하는 서버, Client가 Resource Server에 접근할 수 있는 권한을 부여 Authorization Server : 리소스 저장 서버, Access Token으로 접근 Client : resource에 엑세스하는 서버 (web 애플리케이션 서버) Resource Owner..

Spring Security : JWT #26

token : 광범위하게 사용되는 용어, 암호화된 데이터 → 쿠키 세션 : 서버와 클라이언트가 반씩 가져감 FormLogin 쿠키 : 클라이언트가 가짐(브라우저에서 관리할 수 있는 아이템, 토큰은 문자열일 뿐인데 쿠키에 담아서 운영하는 것) -> id/pwd를 최초로 적용해서 해당 필터를 거친 후 토큰(2덩이)를 받아 추후에는 토큰 값만 던짐 JWT(Json Web Token) : 토큰방식에서 대표적인것이지 = 토큰은 아님 XXXX.YYYY.ZZZZ : 암호화되어있음(Base64 URL 인코딩 사용) header payload : 인증되어야할 정보. 디코딩하면 바로 보이기 때문에 민감한 정보가 들어가면 안됨 signature //실제 헤더에 토큰값이 담기는 모습 // Http header >> key :..

Spring Security : Authorization 2/2 #Day25

https://docs.spring.io/spring-security/reference/servlet/architecture.html 권한, 인가의 의미이며 member - role -privilege의 관계 authentication이 완료된 후에 authorization 설정 진행 loadUserByUsername 인터페이스 내에 SimpleGrantedAuthority를 사용해 Role 베이스 형태의 권한을 지정 @RequiredArgsConstructor @Service public class CustomUserDetailsService implements UserDetailsService { private final MemberService memberService; @Override publi..

Spring Security : Authentication 1/2 #Day24

Spring Security 개요 Spring MVC 기반 애플리케이션의 인증(Authentication)과 인가(Authorization) 기능을 지원하는 보안 프레임워크로써, Spring MVC 기반 애플리케이션에 보안을 적용하기 위한 사실상의 표준 다양한 유형(폼 로그인 인증, 토큰 기반 인증, OAuth 2 기반 인증, LDAP 인증)의 사용자 인증 기능 적용 애플리케이션 사용자의 역할(Role)에 따른 권한 레벨 적용 애플리케이션에서 제공하는 리소스에 대한 접근 제어 민감한 정보에 대한 데이터 암호화 SSL 적용 일반적으로 알려진 웹 보안 공격 차단 이 외에도 SSO, 클라이언트 인증서 기반 인증, 메서드 보안, 접근 제어 목록(Access Control List) 같은 보안을 위한 기능들을 지..

보안 기초 : 쿠키(Cookie) & 세션(Session) #Day23

HTTPS : 보안인증서가 있는 http 암호화 : 클라이언트와 서버가 데이터를 암호화하여 주고받기 위해 비대칭키 방식과 대칭키 방식 혼용하여 사용 인증서 : rootCA로 부터 서버의 신원을 보증 HTTPS 사설인증서 발급 및 서버 구현 자바에서 지원하는 인증서 형식 PKCS12 (public key cryptographic standards #12) :여러 인증서와 키를 포함할 수 있으며, 암호로 보호된 형식(널리 사용) JKS (Java KeyStore) : PKCS12와 유사. 독점 형식이며 Java 환경으로 제한 1. 인증서 생성 mkcert : PKCS12형태의 사설인증서 생성 라이브러리 brew install mkcert //로컬을 인증된 발급기관으로 추가 mkcert -install //p..

gitAction 자동배포 #Day22

AWS EC2에 git변경 시 자동 배포 : github commit/push(trigger point) ⇒ (최종) AWS EC2에 컨테이너 배포 local git → (commint/push) github repo → (자동 : gitaction) docker hub img 생성 → (자동 : gitaction) aws 컨테이너 배포 Step 1(수동배포). gitAction을 사용해 github push 되면 docker hub에 이미지 생성 github action 활성화 (IntelliJ) .github>workflows>main.yml (github Settings) Secrets and variables > Actions : main.yml에서 사용한 secret 변수 설정 DOCKER_HU..