[Rhsso] Api 로 클라이언트(자격증명) 생성하기
2022. 9. 28. 16:16
엔지니어링/인증
rhsso 대시보드에서 자격증명을 생성할 때 client id 만 입력할 수 있게되어있다. 그래서 API로 생성해야만 client secret 을 입력할 수 있는데, 어제 2시간동안 헤매이다 찾아냈다. 참고로 필자는 rhsso 7.4 버전을 이용하고있다 먼저 헤맨 이유는.. 평소처럼 구글링을 통해 redhat 사이트로 접근하여 base path / new client uri 를 확인하고 호출했더니 404 error.. 이것저것 계속 만져봤으나 페이지를 찾을 수 없다는 응답만 오는 것이였다.. 지속된 API 체크로 슬슬 포기할 무렵... clients-registrations 라는 또다른 uri를 발견하고 비로소 성공하게 되었다. 그럼 이제 client 를 API로 생성해보자!!!!!!!!! API 접근을..
[MTLS] Mutual TLS 상호인증
2022. 9. 10. 17:08
엔지니어링/인증
작년에 마이데이터 프로젝트에서 MTLS를 알게되었는데, 당시 openresty(nginx)에서 테스트를 하고 실제론 L7에서 검증하는 방식으로 진행하였다. 참고로 마이데이터는 EV급 인증서를 기준으로하기때문에 인증서도입비용이 크다. 그리고 EV급인증서는 공인된 CA기관으로부터 발급을 받는데 마이데이터 오픈당시에 3개의 rootCA기관이 있었다. MTLS란 MTLS란 기존 TLS(https) 통신에서 더 나아가 클라이언트인증에 대한 부분을 추가한 상호인증이다. 그래서 클라이언트가 서버에 접근하고자하면 서버에서 검증할 rootCA기관에 서명을 받은 인증서를 제출해야한다. 이렇게 서로 검증된 MTLS는 B2B(기업간 비즈니스 통신)에서 널리 사용되고 있다. 만약 클라이언트 인증서가 잘못되었거나 제출되지 않았을..
[RHSSO] Authorization Code 방식
2022. 9. 6. 18:04
엔지니어링/인증
몇년전까지만해도(?) 타행기관 아이디로 로그인하는게 지금만큼 자유롭지 않았던 것 같은데, 이제는 개인정보보호법 등등... 플랫폼 기업의 아이디를 이용하는게 당연하게 느껴진다. 이제는 누구나 쉽게 google, kakao, naver, facebook 의 계정을 연동해서 자기만의 서비스를 연동할 수 있는 세상. 인증방식 중 Authorization Code 를 포스팅하려한다. 필자는 rhsso를 사용하고 있기 때문에 아래 표와 같이 테스트한다. 1. 클라이언트가 rhsso 서버에 인증을 요청한다. 2. rhsso서버는 callback서버에 인가코드를 전달한다. 3. 인가코드를 받은 callback서버는 rhsso에 인가코드로 접근토큰 발급을 요청한다. 4. rhsso서버는 인가코드로 접근토큰을 발행한다. ..
[RHSSO] 리프래시 토큰 보관
2022. 9. 6. 17:40
엔지니어링/인증
지난번 ocp operator를 활용해 rhsso 를 구축하였다. rhsso 는 refresh token 을 캐시 또는 데이터베이스에 보관하는데, 기본적으로 설정되어있는 상태는 캐시에 분산(distributed)형태이다. jboss 캐시 컨트롤 부분을 알아보면 복제, 분산 두가지의 모드가 있는데 MSA아키텍처가 확장되어가며 분산모드가 대세가 된 것 같다. 캐시 분산 모드 설정 그래서 sso pod 에 들어가 설정파일을 하나 보면 파드갯수만큼 공유하라는 설정이 존재한다. $ cat /opt/eap/standalone/configuration/standalone-openshift.xml 실제 pod가 기동되면 아래와 같이 pod간의 세션이 맺어졌다고 로그가 남는다. Received new cluster vi..
[RHSSO] 설치부터 셋팅까지
2022. 9. 6. 17:22
엔지니어링/인증
개요 RH-SSO란 Redhat에서 2014년에 출시한 keycloak의 상용버전이다. 웹 애플리케이션 및 Restful 웹 서비스를 위한 SingleSignOn 솔루션이며, 쉬운 설정으로 안전한 보안 관리를 할 수 있다. 작년에 마이데이터 제공자측 프로젝트를 수행하였는데, 이때 rhsso를 사용했었다. 레드헷 OCP(Openshift Conatiner Platform)에서 오퍼레이터방식으로 여러 솔루션들을 제공하는데, API Gateway 솔루션인 3scale과 함께 OIDC(OpenId Connect)인증을 담당했다. JWT 마이데이터 사업에선 oauth 2.0 을 준용하는 토큰을 사용해야하는데 이때 JWT(Json Web Token)으 표준 규격으로 지정하였다. JWT 토큰은 아래 구성으로 이루어져..