Ubuntu에 KeyCloak설치하기

2023. 10. 26. 22:28초기 과업/BackEnd

작성자알 수 없는 사용자

728x90
반응형

기깔나는 사람들에서 새로운 크루를 찾고 있어요 👀 우리와 함께 하고 싶다면? 이 곳을 확인해 주세요. 😀

 

크루 모집 공고

IT 서비스 개발 크루 기깔나는 사람들

www.notion.so

 

 

Looking for a new crew in the cool guys 👀  if you want to join us? Please check this page. 😀

 

Crew Recruitment Notice(Global)

IT Service Development Team <Giggal People>

www.notion.so

 

안녕하세요. 기깔나는 사람들에서 백엔드 개발을 담당하고 있는 ABCD입니다.

이번엔 Ubuntu서버에 Keycloak을 설치해 보겠습니다.

최종적으로는 Docker를 이용한 방식으로 진행하겠습니다.

우분투에 Keycloak 설치(일반 커멘드 버전)

  1. Keycloak.tar파일을 다운받는다.
wget https://github.com/keycloak/keycloak/releases/download/17.0.0/keycloak-17.0.0.tar.gz`
  1. tar파일을 압축 해제 한다.
tar -zxvf keycloak-17.0.0.tar.gz
  1. Keycloak을 시작하기 전에 관리자 계정을 생성해주어야 한다.
export KEYCLOAK_ADMIN=admin export KEYCLOAK_ADMIN_PASSWORD=admin
  1. 내보낸 환경변수를 적용하여 Keycloak을 실행시켜본다.
sudo -E bin/kc.sh start-dev
  1. 주소창에 "서버IP":8080을 검색하여 아래와 같이 화면이 나온다면 성공
  2. 로그인에 성공하면 아래와 같은 Dashboard화면이 나와야 한다.

우분투에 keyCloak설치 (Docker Image 버전)

  1. docker 명령어를 사용해 해당 이미지가 로컬에 없으면 다운받게 할 수 있다.
docker run jboss/keycloak

# 로컬에 띄우고 싶다면 아래 명령어를 사용하면 된다.
docker run -p 8080:8080 jboss/keycloak
  1. 브라우저에서 8080포트로 접속시 해당 페이지가 나온다면 성공!


Keycloak 환경설정

  • 우선 해당 서버에 SSH접속에 터널을 사용하여 접속한다.
  • SSH -p ["포트"] ["계정"]@["ip"] -L ["로컬포트"]:localhost:["타겟포트"]
  • Keycloak을 설치하면 기본적으로 관리자 계정이 없어 해당 계정을 만들어 주어야 한다.
  • 우선 터미널을 두개 켜서 하나는 keycloak 이미지를 도커로 실행시켜 준다.
  • docker run -p 8080:8080 jboss/keycloak

유저를 추가해준다.

docker exec \["컨테이너 ID"\] /opt/jboss/keycloak/bin/add-user-keycloak.sh -u admin -p admin123$
  • 아래와 같이 결과가 나왔다며 성공적으로 추가가 된 것이다.
  • 이제 도커를 재시작한다.
  • docker restart ["컨테이너 ID"] ```
  • 만약 아래와 같이 관리자 콘솔이 나타나지 않으면 터널링을 통해 Localhost로 변경해주어야 한다.
  • 아래와 같은 화면으로 진입이 가능하면 성공!
  • 이제 아까 쉘스크립트에 작성한 user 정보로 로그인을 하면 된다.

Realm, User, Client

Realm이란??

  • Realm은 사용자, 인증, 인가, 권한, 그룹이 관리하는 범위이다.
  • 해당 Realm안의 Client(위사진에서는 Application)들은 서로 SSO를 공유하게 된다.
  • 처음 관리자 계정으로 로그인하면 Master Realm만 존재하는데 해당 Realm은 다른 Realm을 관리할 때에만 사용한다.

User란??

  • User는 Client를 이용하는 사용자를 뜻한다.
  • 한 User안에 있는 Client(위사진에서는 Application)끼리만 SSO를 공유하고, 다른 User에게 간섭 할수 없다.

Client란??

  • Client란 인증, 인가 업무를 Keycloak에게 요청할 수 있는 주로 어플리케이션이나 서비스를 뜻한다.
  • Keycloak은 Client들에게 보안이나, SSO를 제공한다.

Realm 생성

  • 로그인 후 좌측 네비바에서 새로운 realm을 생성해준다.

User 생성

  • Realm생성후 좌측 네비바에서 Users를 클릭해 새로운 사용자를 생성해고, 비밀번호도 새로 할당한다.


Client 생성

  • 이제는 client를 생성할 차례.. 좌측 네비바에서 clients를 클릭하여 화면으로 진입한다.
  • Client는 Application인증을 위한 단위라고 보면 된다.
  • 아래와 같이 세팅해서 생성해준다.
  • 연습은 H2 DB를 사용하가 위해 8082포트를 사용하기로 한다.
  • Clinet로 돌아와 account-console의 base URl을 클릭하여 로그인 후 해당 화면이 나오면 정상!


728x90
반응형