เริ่มต้นการใช้งาน Keycloak Using Spring Boot

Pattaranon Plyduang
2 min readSep 15, 2021

--

บทความนี้สำหรับผู้เริ่มต้นการใช้งาน KeyCloak เพื่อใช้ในการทำระบบ Authentication กับ JWT

credit keycloak-and-privacyidea

การติดตั้ง KeyCloak ใน Local Machine

  1. Download keycloak-15.0.0.[zip|tar.gz] from Keycloak downloads
  • พิมพ์คำสั่งเพื่อแตก zip
$ unzip ~/Downloads/keycloak-15.0.0.zip
  • พิมพ์คำสั่งเพื่อเข้าไป Run standalone
$ cd keycloak-15.0.0/bin
$ ./standalone.sh

เปิด Browser พิมพ์ Url

http://localhost:8080/auth/
  • สร้าง User Administration เมื่อสร้าง User เสร็จเรียบร้อย ได้หน้าตาแบบนี้
  • เลือก Administration Console ได้หน้าตาแบบนี้
  • ใส่ Username & Password ที่สร้างมาก่อนหน้านี้

เพียงเท่านี้เราก็จะได้ Keycloak Admin Console แล้ว

URL ของ Realm และ Client ที่เราสร้างผ่าน KeyCloak

https://{HOST_URL}/auth/realms/{REALM}

Create Application With Spring Boot

ไปที่ Spring Initializr: https://start.spring.io/ เมื่อสร้างโปรเจ็คเสร็จเรียบร้อย

แก้ไขไฟล์ pom.xml

  • เพิ่ม properties
<properties>
<java.version>16</java.version>
<keycloak.version>x.x.x</keycloak.version>
</properties>
  • เพิ่ม Dependency
<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-boot-starter</artifactId>
<version>${keycloak.version}</version>
</dependency>
</dependencies>
  • เพิ่ม Dependency Management
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.keycloak.bom</groupId>
<artifactId>keycloak-adapter-bom</artifactId
<version>${keycloak.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

แก้ไขไฟล์ application.properties

server.port=8090
keycloak.realm=realm-demo
keycloak.resource=keycloak-app
keycloak.auth-server-url=http://localhost:9900/auth
keycloak.ssl-required=external
keycloak.use-resource-role-mappings=true
keycloak.bearer-only = true
keycloak.public-client=true

สร้างไฟล์ Class Configuration ซึ่งใน Dependency Keycloak ได้เตรียม class KeycloakWebSecurityConfigurerAdapter ให้เราสามารถ extends ไปใช้งาน

สร้างไฟล์ Controller มาเพื่อใช้ในการทดสอบ

ทดสอบ run ด้วยคำสั่ง

$ mvn spring-boot:run

ทดสอบหลังจาก run ด้วยคำสั่ง

curl -x get'http://localhost:8090/test/admin'
curl -x get'http://localhost:8090/test/all-user'

ในบทความนี้จะบอกถึงวิธีการปรับใช้และกำหนดค่าเซิร์ฟเวอร์ Keycloak และการใช้งาน api ด้วย Spring boot

--

--