Dev 126

22. [SpringBoot] 스프링부트 spring security 완전 기초 예제

1. 서론 RESTFul API를 이용해서 토큰을 발급받아 접근허용하는 예제를 만들어보았습니다. 이 예제를 학습하면 다음을 이해하는 것이 됩니다. - 간단 회원가입시, DB에 정보가 저장됩니다. - 로그인을 하면, 토큰이 발급됩니다. - 특정 url에 접근 시, 토큰을 헤더에 담지 않으면 접근이 되지 않습니다. - 잘못된 정보로 토큰 접근 시, 접근이 제한됩니다. - API 테스트의 기초를 이해할 수 있습니다. 2. 본론 1. 먼저, 프로젝트 생성 후 hello world를 찍어볼 것입니다. 프로젝트 생성은 여기에서 진행합니다. 저는 이와같은 설정으로 프로젝트를 만들었습니다. 하단의 Generate를 클릭하여 프로젝트를 적당한 위치에 다운로드 받아줍니다. 15버전이 10월 기준 최신 버전이더라구요! 저는..

Dev/SpringBoot 2020.10.04

21. [SpringBoot] 간단하게 비밀번호 암호화해보기

1. 서론 - 회원가입 로직을 구현하던 중 평문 비밀번호를 그대로 저장하는 것을 알게 되었고, Spring security 를 이용하여 암호화하는 방법을 학습해야겠다고 생각했다. 2. 본론 의외로 간단하다. spring-security 의존성이 필요하다. org.springframework.boot spring-boot-starter-security 그리고 springsecurity 환경설정을 진행해준다. import org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security...

Dev/SpringBoot 2020.10.01

6. [SSO] Keycloak & Springboot 적용기 - 3

1. 서론 키클락이랑 스프링부트랑 연결하는 부분을 마무리하였습니다. 이제 전체 키클락 인증서버가 스프링부트에의해 연결되어있음을 볼 수 있습니다. 우리는 키클락이 다 해주기 때문에 access_token을 발급받을 필요가 없고, 인증 헤더에 명시적으로 무언가를 표시할 필요도 없습니다. 이제는 보안설정에 대해 알아보겠습니다. 2. 본론 일단 메이븐에 다음과 같은 설정을 추가해줍니다. org.springframework.boot spring-boot-starter-security 2.2.6.RELEASE 키클락은 KeycloakWebSecurityConfigurerAdapter을 Springboot의 WebSecurityConfigurerAdapter처럼 제공해줍니다. 참 좋군요 @Configuration @..

Dev 2020.09.28

5. [SSO] Keycloak & Springboot 적용기 - 2

1. 서론 오늘은 어제에 이어 접근 토큰을 생성해보는 시간을 가지겠습니다. 어제의 포스팅은 다음을 참고하세요. dkyou.tistory.com/54 2. 본론 2.1 Generating Access Token With Keycloak's API 키클락은 기본적으로 access token을 생성하고, refresh token을 발급해주는 REST API를 제공하고 있습니다. 우리는 이 API를 이용해서 우리 고유 로그인 페이지를 쉽게 만들 수 있습니다. 첫번째로, 우리는 아래의 URL을 이용해서 POST 요청을 함으로서 Keycloak으로부터 access token을 획득할 필요가 있습니다. http://localhost:8180/auth/realms/master/protocol/openid-connect..

Dev 2020.09.27

4. [SSO] Keycloak & Springboot 적용기

1. 서론 앞서 SSO 구축을 위한 오픈소스(Keycloak)을 찾았고, 전반적인 개념과 getting started에 대해 알아보았다. 이제 스프링 부트에 더 잘 적용시키기 위해 www.baeldung.com/spring-boot-keycloak A Quick Guide to Using Keycloak with Spring Boot | Baeldung Learn how to configure a Keycloak server and use it with a Spring Boot Application. www.baeldung.com 을 번역해보는 작업을 진행해보려 한다. - 해당 작업은 20년 6월 23일 최종 수정으로, 아주 따끈따끈한 자료이다. 2. 본론 2.1 개요 이 게시글에서는, 우리는 Keycl..

Dev 2020.09.26

[SSO] Keycloak 공식문서 따라해보기 - 3

1. 서론 Keycloak 번역작업도 거의 끝나간다. 생각보다 기본기를 탄탄히 가져갈 수 있었던 좋은 경험이다. 이번 시간에는 간단한 앱을 활용해서 keycloak의 기능을 활용해보려 한다. 2. 본론 이제 우리는 어드민 계정, realm, 사용자의 개념을 학습하였습니다. 우리는 Keycloak을 이용해서 WildFly Servlet 앱을 보안으로 활용할 수 있습니다. WildFly 클라이언트 어뎁터를 설치하고, 해당 앱을 어드민 콘솔에 등록하고, WildFly 인스턴스를 Keycloak 관리대상에 포함시킬 수 있고, 앱을 보호하는데 사용할 수 있습니다. 2.1 키클럭을 이용하여 포트 조절하기 키클록 서버로서 같은 공간에 WildFly를 사용할 수 있도록 합니다. 이 상황에서, WildFly를 앱 컨테이..

Dev 2020.09.25

[SSO] Keycloak 공식문서 따라해보기 - 2

1. 서론 저번 시간에 이어 realm와 유저를 생성해보는 시간을 가지려 한다. 2. 본론 realm이 무엇인지부터 알아야한다. realm이란, 개발자가 object들을 관리할 때 사용하는 공간이라고 정의할 수 있다. 두가지 종류의 realm이 존재한다. Master realm : 첫번째 Keycloak을 생성하면 만들어진다. 첫 로그인 시 생성된 어드민 계정을 포함한다. 이것으로 다른 realms을 만들 때 기반이 되는 realm이다. Other realms : master realm의 어드민으로부터 생성된다. 이 realms 내부에서, 관리자가 사용자와 앱을 만든다. 앱은 사용자가 소유하고 관리할 수 있다. 2.1 Master realm으로부터 realms 만들기 마스터로부터, realms 만드는 방..

Dev 2020.09.24

[SSO] Keycloak 공식문서 따라해보기 - 1

1. 서론 공식문서를 번역해보기로 했다. 프로젝트에 적용은 했는데, 이걸 어떻게 커스터마이징해야할지 더 알아보고 싶은 궁굼증이 생겼다. 문서는 크게 4꼭지로 이루어져있다. Trying out keyclock Installing a sample instance of Keycloak Creating a realm and a user Securing a sample application 번역해두면 누군가는 보겠지,,, 라는 생각에 열심을 다해보기로 한다. 배움이 짧아 의역이 많으니 너그러운 양해부탁드립니다. 수정 건의는 언제든 환영입니다. 2. 본론 2.1 키클락 연습해보자 이 가이드를 보면 당신이 프로젝트 환경을 구성할 때 keycloak을 사용하는데 도움이 될 것입니다. 키클락을 서버에 standalone..

Dev 2020.09.23

20. [SpringBoot] 버전 걱정 없는 SSO 구현 번역해보기 - 2

1. 서론 오늘은 어제에 이어서 두번째 앱을 구성해보겠습니다. 2. 본론 스프링 OAuth Client Thymeleaf-2를 사용하였습니다. 이전 포스팅에서 첫번째 앱을 구성한 것과 비슷한 설정을 가져갈 것입니다. 2.1 application.yml spring: security: oauth2: client: registration: custom: client-id: ssoClient-2 client-secret: ssoClientSecret-2 scope: read,write authorization-grant-type: authorization_code redirect-uri: http://localhost:8084/ui-two/login/oauth2/code/custom provider: cust..

Dev/SpringBoot 2020.09.22

19. [SpringBoot] 버전 걱정 없는 SSO 구현 번역해보기 - 1

1. 서론 Simple Single Sign-On with Spring Security OAuth2 | Baeldung A simple SSO implementation using Spring Security 5 and Boot. www.baeldung.com 을 번역해보는 작업을 실시하였습니다. 이유는 코드를 한번 돌려보았는데 완벽하게 내가 원하는 작업과 일치하였기 때문입니다. 최신 코드이기 때문에 decperated 된 어노테이션이 없을 것이라고 생각하였습니다. SSO 코드를 여러개 분석하면서 버전이 다르거나 변경된 코드로 인해 고생을 많이 했었고, 최신 코드로 하면 변경이 없을 것 같아 도전해보게 되었습니다.(번역해보니 이전 버전은 점점 사양화되고있다고 한다.) 2. 본론 2.1 개요 이 튜토리얼에..

Dev/SpringBoot 2020.09.21