본문 바로가기
programing/keycloak

[ keycloak ] keycloak 초기설정하기

by 궈능비 2024. 3. 4.
728x90
반응형

keycloak 설정을 해보겠습니다.

 

※ 설정순서 ※

1. keycloak 도커로 기동하기
2. Realm 만들기
3. Client 만들기
4. role 만들기
5. User 생성 및 역할 만들기

 

 

1. keycloak 도커로 기동하기

keycloak은 컴퓨터에 도커가 깔려있으면 도커로 쉽게 킬 수 있습니다.

저는 도커가 깔려있어서 도커로 기동해서 초기설정을 해보려고 합니다.

 

keycloak의 docker-compose.yml 파일입니다.

// docker-compose.yml

version: "3.7"

services:
  keycloak:
    container_name: keycloak
    image: quay.io/keycloak/keycloak:23.0.1
    ports:
      - "8080:8080"
    environment:
      - KEYCLOAK_ADMIN=admin
      - KEYCLOAK_ADMIN_PASSWORD=admin
      - PROXY_ADDRESS_FORWARDING=true
    command: start-dev

 

이제 docker-compose.yml이 있는 위치에서 아래 명령어를 입력하면 기동될겁니다.

docker-compose up --build

 

 

도커 기동이 다 됐으면 localhost:8080으로 접속해주세요.

 

이런 화면이 나오면 「Administration Console 」을 클릭!

 

로그인을 하라고 뜰텐데 로그인은 docker-compose에 적혀있습니다.

KEYCLOAK_ADMIN=admin         ← ID

KEYCLOAK_ADMIN_PASSWORD=admin  ← PW

 

 

2. Realm 만들기

로그인 했으면 왼쪽 상단에 있는 master를 누르고 create realm을 클릭!

 

 

Realm이란?

사용자, 인증, 세션 관리, 액세스 제어 등의 보안 관련 정보를 정리한 단위를 의미합니다. 
사용자는 영역 내에 만들 수 있으며 인증 방법 등을 영역 단위로 정의할 수 있습니다. 
기본적으로 "Master"라는 영역이 하나 있으며, 그 후 추가하는 모든 영역을 포함하여 관리할 수 있습니다. 
Master = 영역의 계층 구조 내에서 가장 높은 수준이며 수퍼 관리자(초기 설정 시 작성한 관리자 계정)에서 관리할 수 있습니다. 사용자 등을 관리할 수도 있지만 기본적으로 realm을 만드는 것이 좋습니다. 
※ "Master" 영역을 삭제할 수도 있습니다.

 

 

여기서 「myapp」을 입력하고 Create 버튼을 눌러주세요.

그러면 myapp이라는 영역이 만들어집니다.

 

 

3. Client 만들기

 

클라이언트는 내가 연결하고 싶은 앱입니다.

이제 만들어볼게요

 

왼쪽 메뉴 막대에서 Clients를 클릭합니다. 클라이언트 목록 화면이 표시되므로 Create client 버튼을 클릭합니다.

 

 

my-app를 입력하고 다음 버튼을 클릭합니다.

 

 

Client authentication을 On으로 설정합니다. 그 외의 항목은 변경하지 않고 「Next」버튼을 클릭합니다.

 

 

Valid redirect URIs에 를 내 앱 주소 /*입력하고 Save 버튼을 클릭합니다.

저같은 경우는 (http://localhost:8000)으로 할거라서 (http://localhost:8000/*)으로 했습니다.

 

클라이언트 만들기 끝!

 

 

4. role 만들기

이제 사용자에게 할당할 역할을 만듭니다.


역할이란?

역할은 사용자의 역할을 의미하며 사용자의 유형과 범주를 식별하는 데 사용됩니다. 관리자, 사용자, 관리자, 직원 등이 조직에 존재하는 일반적인 역할입니다. 응용 프로그램은 사용자 관리가 어려워지지 않도록 개별 사용자가 아닌 특정 역할에 액세스 권한을 할당하는 경우가 많습니다.

 

이 역할이 할당된 사용자만 내 앱을 사용할 수 있도록 하기위해서 꼭 필요합니다.

이제 시작해보겠습니다.

 

 

왼쪽 메뉴 모음에서 Realm roles를 클릭합니다. 역할 목록 화면이 표시되므로 [Create Role] 버튼을 클릭합니다.

 

역할 이름에 user를 입력하고 Save 버튼을 클릭합니다.

 

롤 만들기 끝!

 

5. 사용자 생성 및 역할 할당

이제 마지막입니다!

사용자를 만들고 역할을 할당할겁니다.

 

 

왼쪽 메뉴 바에서 "Users"를 클릭하면 사용자 목록 화면이 표시되므로 "Add user"버튼을 클릭합니다.

 

 

사용자 이름만 입력하고 Create 버튼을 클릭합니다.

 

사용자 작성이 됐습니다!  Credentials 탭을 클릭해주세요.

 

 Set password 버튼을 클릭!

 

패스워드를 입력하고, "Temporary"는 "Off"로 변경하고 save 클릭!

( "Temporary"는 "Off"로 변경해두면 처음 로그인할 때 암호를 변경할 필요가 없습니다. )

 

 

패스워드 설정 완료!

 

마지막으로 'Role mapping' 탭에서 'Assign role'을 클릭!

역할 만들기"에서 만든 역할을 "User001"로 Assign해줄겁니다.

 

이걸로 설정 완료입니다!

java 앱이라 연동은 다음에 해볼게요!

728x90
반응형

댓글