[Spring Security] Annotation
·
Web & Android/Spring Security
@EnableWebSecurity(debug = true) 디버깅 로그를 출력하는 옵션으로 debug = true를 하면 요청 URL, 세션 ID, 요청 브라우저 등의 정보가 나오고 또 적용된 FilterChain들을 볼 수 있다. @Secured 사용자의 권한정보에 따라 자동으로 해당 메서드의 접근을 제한할 수 있게 된다. @PostAuthorize 함수를 실행하고 클라이언트한테 응답을 하기 직전에 권한을 검사한다. @PreAuthorize 요청이 들어와 함수를 실행하기 전에 권한을 검사한다. ⭐ option ⭐ hasRole([role]) : 현재 사용자의 권한이 파라미터의 권한과 동일한 경우 true hasAnyRole([role1,role2]) : 현재 사용자의 권한디 파라미터의 권한 중 일치하는..
[Spring Security] SNS 로그인
·
Web & Android/Spring Security
💡 SNS 로그인 인증 순서 사용자가 서버에게 로그인을 요청 서버는 사용자에게 특정 쿼리들을 붙인 페이스북 로그인 URL을 사용자에게 보냄 사용자는 해당 URL로 접근하여 로그인을 진행한 후 권한 증서를 담아 서버에게 보냄 서버는 해당 권한 증서를 Facebook의 Authorization Server로 요청 서버는 권한 증서를 확인 후, Access Token, Refresh Token, 유저의 정보를 돌려줌 받은 고유 ID를 Key값으로 해서 DB에 유저가 있다면 로그인, 없다면 회원가입 진행 로그인이 완료되었다면 세션과 쿠키 , 토큰 기반 인증 방식을 통해 사용자의 인증을 처리 참고사항 우리가 만들 서버에서 OAuth를 이용하기 위해서는 사전에 OAuth에 등록하는 과정이 필요 개발자 사이트에서 웹..
[Spring Security] OAuth 2.0을 이용한 인증
·
Web & Android/Spring Security
카카오 로그인 실습 - Web J219. Spring Boot OAuth2 Google, Naver Login 💡 OAuth 2.0을 이용한 인증 OAuth 외부 서비스의 인증 및 권한 부여를 관리하는 범용적인 프로토콜 OAuth 2.0 모바일에서도 사용 용이 반드시 HTTPS를 사용하므로 보안이 강화됨 Access Token의 만료 기간이 생김 → OAuth 2.0의 인증 방식은 4가지 있음 → 가장 범용적으로 쓰이는 것은 Authorization Code Grant 인증 순서 Resource Owner : 일반 사용자 Client : 우리가 만든 웹 어플리케이션 Authorization Server : 권한 관리 및 Access Token, Refresh Token을 발급해주는 서버 Resource ..
[Spring Security] 카카오 로그인 실습 - Web
·
Web & Android/Spring Security
참고 링크 Spring Boot를 이용해 카카오 로그인 만들기 (프로젝트 첫 생성부터 구현까지) 1. 링크 실행 https://developers.kakao.com/console/app 카카오계정 accounts.kakao.com 2. 애플리케이션 추가 3. 앱 이름, 사업자명 등록 4. 추가된 애플리케이션 클릭 → 플랫폼 등록 Android, iOS, Web 중 필요한 플랫폼 등록 Web 5. 추가한 애플리케이션 클릭 → 앱 키 → REST API 키 복사 (나중에 사용 예정) 6. 메뉴바에서 카카오 로그인 클릭 활성화 설정 OFF → ON으로 변경 Redirect URI 등록 → 로그인 경로 삽입 http://localhost:8088/login 7. 카카오 로그인 프론트 페이지 https://dev..
[Spring Security] Access Token+ Refresh Token을 이용한 인증
·
Web & Android/Spring Security
💡 Access Token+ Refresh Token을 이용한 인증 Access Token을 이용한 인증 방식의 문제는 해커에게 탈취당할 경우 보안에 취약하다는 점 토큰의 유효기간을 짧게 하면 사용자는 로그인을 자주 해야해서 번거롭고, 길게하면 보안이 취약해지기 때문에 이를 해겨라고자 나온 것이 Refresh Token Refresh Token은 Access Token과 같은 형태의 JWT Refresh Token은 Access Token보다 긴 유효기간을 가지고, Access Token이 만료됐을 때, 새로 발급해주는 열쇠가 됨 → ex) Refresh Token의 유효기간이 2주, Access Token의 유효기간이 1시간이라면 2주 동안 Access Token이 만료되는 1시간 주기마다 Access..
[Spring Security] Access Token을 이용한 인증
·
Web & Android/Spring Security
💡 Access Token을 이용한 인증 JWT JSON Web Token의 약자 인증에 필요한 정보들을 암호화시킨 토큰을 말하며 Access Token으로 사용됨 JWT를 생성하기 위해선 Header, Payload, Verify Signature 객체를 필요로 함 Header 토큰의 타입을 나타내는 typ와 암호화할 방식을 정하는 alg로 구성됨 { 'alg': 'HS256', 'typ': 'JWT' } Paylod 토큰에 담을 정보를 포함 하나의 정보 조각을 클레임이라 부름 클레임의 종류 → Registered, Public, Private 3가지 존재 보통 만료 일시, 발급 일시, 발급자, 권한 정보 등을 포함 { 'sub': '1234567890', 'name': 'John Doe', 'admi..