Keycloak을 사용하면 세션, 쿠키 및 토큰 시간 제한을 자유롭게 설정할 수 있다. 설정방법에 대해 알아보자. 전역설정 (Realm 단위) KeyCloak Session, Token에 대한 Timeout 설정은 Realm Settings > Tokens 에서 가능하다. 이곳에 나온 용어가 해석이 어렵다면 아래의 표를 참조하도록 하자. 물론 내가 멋지게 해석할수는 없고 번역기를 돌린것이다. ConfigurationDescriptionRevoke Refresh Token새로 고침 토큰 흐름을 수행하는 OIDC 클라이언트의 경우이 플래그가 켜져 있으면 해당 새로 고침 토큰을 취소하고 클라이언트가 사용해야하는 요청으로 다른 토큰을 발행합니다. 이것은 기본적으로 새로 고침 토큰이 한 번만 사용된다는 것을 의미..
KeyCloak은 쓰면 쓸수록 매력적인 솔루션인것 같다. 잘 다룰줄만 알면 인증, 권한 관련해서는 어느정도 경지에 오를수도 있을것 같다는 생각이 든다. 요즘같이 OSS가 각광받는 시대에는 꼭 알고 있어야 할 OSS라고 생각한다. KeyCloak 설치부터 해서 springboot app SSO 연동, JWT 발급, Jenkins와의 연동 등의 포스팅을 했었는데 이번에는 OAuth2를 활용해서 구글 계정으로 KeyCloak 로그인을 하는 방법에 대해서 알아보겠다. 테스트 환경 구축 일단 테스트 환경부터 구축을 해보자. 중점적으로 살펴볼 부분은 '어떻게 OAuth2를 통해 로그인을 하는가'이기 때문에 별도의 어플리케이션과 연동은 하지 않고 가장 간단하게 nginx를 설치해서 http://localhost 라는..
Jenkins와 KeyCloak을 openid 방식으로 연결을 하다가 로그인이 안되고 KeyCloak 오류화면으로 리다이렉트 되는 현상이 발생을 했다. http://localhost:8180/auth/realms/Oingdaddy/protocol/openid-connect/auth?client_id=testuser&redirect_uri=http://localhost:18080/securityRealm/finishLogin&response_type=code&scope=web-origins%20openid%20roles%20oingdaddy%20email%20profile&state=NWVhNWViYjQtYjg2Ni00 이런식으로 되어서 Jenkins에 들어가서 수정을 해야 하는데 아예 들어갈 수 없는 상..
지난 포스팅에서는 Jenkins를 KeyCloak을 이용해서 로그인하는 방법에 대해서 알아보았다. 단순 로그인만 통합로그인으로 하는것에서 그치지 않고 이번에는 KeyCloak의 권한(ROLE)에 따라 Jenkins의 사용권한을 통제하는 방법에 대해서 알아보겠다. 전과 마찬가지로 Jenkins와 KeyCloak은 설치가 되어있어야 하며 둘간의 기본적인 연동방법은 위의 링크를 클릭해서 보도록 하자. KeyCloak 설정 - Role 설정 지난시간에 KeyCloak에서 Role을 설정할때 위와 같이 jenkins_admin를 했었다. 권한관리를 하기 위해 Add Role을 눌러서 새로운 권한을 추가시켜준다. jenkins_user 라는 Role을 추가하였다. - User 설정 기존의 User를 이용해도 되지만..
프로젝트를 관리하다보면 여러개의 솔루션을 각각 계정관리를 해야 하는데 KeyCloak을 사용하면 어느정도 통합해서 관리를 할 수 있다. Jenkins도 KeyCloak을 통해서 통합로그인을 할 수 있다. 기본적으로 Jenkins와 KeyCloak이 설치 되어있다고 가정하고 진행을 하도록 하겠다. KeyCloak이 설치되지 않았다면 여기를 참고해서 구성하도록 하자. KeyCloak 설정 가장 먼저 해야 할 일은 KeyCloak에서 Jenkins Client를 추가하는것이다. KeyCloak에서 Client를 추가하는 기본적인 방법은 여기를 참고하도록 하자. 아래 내용을 바로 봐도 무방하다. Clients를 누르면 KeyCloak 자체적으로 생성된, 그리고 내가 생성한 Client 목록이 보인다. 우측 상단..
지난 시간에는 KeyCloak을 이용해서 같은 Realm에 있는 Client간의 SSO 를 구성을 해 보았다. 이것은 각 서비스들을 SSO로 묶어서 한번에 관리하는것이라면 이번에 다룰 Access Token을 발급받아서 사용하는것은 구성된 Realm의 Client를 내부, 외부에서 직접 접근하고자 할때 이용이 된다. 프로젝트 실습의 틀은 기존에 구성을 한것을 기반으로 한다. 일단 설명에 앞서 왜 Access Token을 사용하는지에 대해 잘 설명된 그림인것 같아서 퍼왔다. 요즘은 참 회사들마다 경쟁적으로 '우리가 이렇게 뛰어난 기술을 가지고 있소!' 하고 활발하게 블로그를 운영하는데 개인적으로 참 부럽다. KeyCloak REST API 이용해서 JWT 발급받기 기존에 KeyCloak에서 만들어 놓은 o..
지난 시간에는 KeyCloak을 어떻게 설치를 하는지 알아보았다. 이제는 이 설치된 KeyCloak을 어떻게 사용하는지 기존에 사용하고 있던 Springboot로 구현된 Application과 연동을 통해 알아보도록 하겠다. KeyCloak 설정 - Realm 생성 일단 설치된 KeyCloak의 Admin Console로 들어가보자. 좌측 맨 위의 Master라는 부분에 마우스를 가져다대면 Add realm 이라는것이 나타날 것이다. realm은 인증, 인가의 범위라고 보면 된다. 예를 들자면 A Portal에서 우리가 카페에서 로그인을 해도 메일도 같은 realm 안에 있기 때문에 별도의 로그인 없이 SSO를 통해 이용을 할 수 있는것이다. 이처럼 같은 realm안에서 한번 로그인을 하면 그 realm..
KeyCloak을 설치하면 같이 WildFly Admin Console도 사용할 수 있다. WildFly Admin Console은 KeyCloak과 같이 사용되므로 기본적으로 KeyCloak war를 deploy하고 있다. 바로 실행을 해보자. KeyCloak이 설치된곳의 bin디렉토리 하위의 standalone.bat 파일을 실행한다. KeyCloak이 실행되면서 WildFly Admin Console도 같이 실행이 된다. 마지막에 나오는 admin console은 WildFly의 admin console이고 http://127.0.0.1:9990 로 접근이 가능하다고 명시되어 있다. WildFly Admin Colsole Login 및 계정초기화 KeyCloak을 실행했을때 로그로 나온 http:/..