Skip to content

hooreique/play-with-keycloak

Repository files navigation

Play with Keycloak

Keycloak 을 사용하여 간단히 사용자 인증 (회원 가입, 로그인, 로그아웃) 을 구현할 수 있다. OIDC (OpenID Connect) 를 사용한다.

Keycloak Docker image 를 이용하여 간단하게 Keycloak 을 사용한 예시이다.

Vue 로 구현된 간단한 Front-end 애플리케이션이 함께한다.

Table of contents

Keycloak

https://www.keycloak.org/

Open Source Identity and Access Management

Prerequisite

  • Windows
  • Docker Desktop
  • Node.js
  • PNPM (Optional)

Getting started

Run Keycloak container

run-my-keycloak.ps1 을 실행하여 Keycloak 인스턴스를 개발 용으로 실행한다. (컨테이너 이름 my-keycloak)

(stop-my-keycloak.ps1 을 실행하여 실행 중인 my-keycloak 컨테이너를 종료할 수 있다.)

Enter the Keycloak admin web interface

http://localhost:8333 에 접속하여 관리자로 로그인한다.

run-my-keycloak.ps1 파일에서 관리자의 ID PW 를 확인·수정할 수 있다.

Set up a realm and client

Figure 1

Realm 을 하나 만든다.

master realm 은 Keycloak 인스턴스를 관리하는 realm 으로 여기고 애플리케이션에서 사용하지 않는 것이 좋다.

Figure 2

이 예제 소스에서는 my-realm 이라는 이름을 사용한다.

Figure 3

Client 를 하나 만든다. Client 는 어떤 Realm 을 사용하는 애플리케이션들이라고 생각하면 된다.

Figure 4

Figure 5

이 예제 소스에서는 my-vue 라는 Client ID 를 사용한다.

Figure 6

Capability config 는 특별히 건드리지 않았다. 실제 애플리케이션에 맞는 적절한 설정이 필요할 것이다.

Figure 7

이 예제 소스는 다음과 같은 Login settings 을 사용한다.

Figure 8

Figure 9

Figure 10

Keycloak UI 에서 회원 가입이 가능하도록 Realm 설정을 한다.

이 Keycloak 관리 UI 에서 User 를 직접 추가할 수도 있다.

Figure 11

Figure 12

User registration 항목 빼고는 선택 사항이다.

Figure 13

Figure 14

Run the application (Vue)

cd ./vue/
pnpm install --shamefully-hoist
pnpm run dev

http://localhost:3000

Figure 101

Figure 102

Figure 103

Keycloak JavaScript Adapter Reference Doc

Keycloak JavaScript Adapter Reference Doc