3장. Red Hat Single Sign-On with Spring Boot 사용
Red Hat Single Sign-On 클라이언트 어댑터는 Red Hat Single Sign-On을 사용하여 애플리케이션 및 서비스를 매우 쉽게 보호할 수 있는 라이브러리입니다. Keycloak Spring Boot 어댑터를 사용하여 Spring Boot 프로젝트를 보호할 수 있습니다.
3.1. Spring Boot Container와 함께 Red Hat Single Sign-On 사용
Spring Boot 애플리케이션을 보호하려면 Keycloak Spring Boot 어댑터 JAR을 프로젝트에 추가합니다. Keycloak Spring Boot 어댑터는 Spring Boot의 자동 구성 기능을 사용하므로 Keycloak Spring Boot 시작기를 프로젝트에 추가하는 것입니다.
절차
Keycloak Spring Boot Starter를 수동으로 추가하려면 프로젝트의
pom.xml
에 다음을 추가합니다.<dependency> <groupId>org.keycloak</groupId> <artifactId>keycloak-spring-boot-starter</artifactId> </dependency>
어댑터 BOM 종속성을 추가합니다.
<dependencyManagement> <dependencies> <dependency> <groupId>org.keycloak.bom</groupId> <artifactId>keycloak-adapter-bom</artifactId> <version>3.4.17.Final-redhat-00001</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Keycloak을 사용하도록 Spring Boot 프로젝트를 구성합니다.
keycloak.json
파일 대신 일반 Spring Boot 구성을 사용하여 Spring Boot Keycloak 어댑터의 영역을 구성할 수 있습니다. 예를 들어src/main/resources/application.properties
파일에 다음 구성을 추가합니다.keycloak.realm = demorealm keycloak.auth-server-url = http://127.0.0.1:8080/auth keycloak.ssl-required = external keycloak.resource = demoapp keycloak.credentials.secret = 11111111-1111-1111-1111-111111111111 keycloak.use-resource-role-mappings = true
keycloak.enabled = false
를 설정하여 Keycloak Spring Boot Adapter (예: 테스트에서)를 비활성화할 수 있습니다. policy Enforcer를 구성하려면keycloak.json
과 달리policy-enforcer-config
를policy-enforcer
대신 사용해야 합니다.web.xml
에서 Java EE 보안 구성을 지정합니다. Spring Boot Adapter는로그인 방법을
KEYCLOAK로 설정하고 시작 시security-constraints
를 구성합니다. 구성 예는 다음과 같습니다.keycloak.securityConstraints[0].authRoles[0] = admin keycloak.securityConstraints[0].authRoles[1] = user keycloak.securityConstraints[0].securityCollections[0].name = insecure stuff keycloak.securityConstraints[0].securityCollections[0].patterns[0] = /insecure keycloak.securityConstraints[1].authRoles[0] = admin keycloak.securityConstraints[1].securityCollections[0].name = admin stuff keycloak.securityConstraints[1].securityCollections[0].patterns[0] = /admin
참고: Spring Application을 WAR로 배포하려는 경우 Spring Boot Adapter를 사용하지 마십시오. 사용 중인 애플리케이션 서버 또는 서블릿 컨테이너에 전용 어댑터를 사용합니다. Spring Boot에는
web.xml
파일도 포함되어야 합니다.