Microservice OAuth2

Introducing Microservice OAuth2 !!

Microservice OAuth2 is space to learn with OAuth2.

Contents

Table of Contents

NoTitleRemarks
0환경설정OAuth2환경셋팅
1실습실습

Learning

Table of Learning

No구분TitleDayRemarks
1블로그Spring Boot로 만드는 OAuth2 시스템2021.03.01Spring Security

Get Started(OAuth2)

목적 : OAuth2 서버를 만드는 목적

규모 있는 회사 및 공공기관에서 OAuth2 형태로 인증시스템을 구현하게 되면 보통 회사에서 사용하는 인증시스템(LDAP 또는 조금 다르지만 SSO등) 보다 연동하여 개발하기가 훨씨 더 수월하고 관리하기 쉬워진다. 그리고 다른 인증시스템과 다르게 권한도 가지고 있다.

Go to Contents

Practice

1. 대칭키 생성 방법

$ keytool -genkeypair -alias oauth2jwt -keyalg RSA -keypass oauth2jwtpass -keystore oauth2jwt.jks -storepass oauth2jwtpass

이름과 성을 입력하십시오.
  [Unknown]:
조직 단위 이름을 입력하십시오.
  [Unknown]:
조직 이름을 입력하십시오.
  [Unknown]:
구/군/시 이름을 입력하십시오?
  [Unknown]:
시/도 이름을 입력하십시오.
  [Unknown]:
이 조직의 두 자리 국가 코드를 입력하십시오.
  [Unknown]:
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown이() 맞습니까?
  [아니오]:  y

2. Public.key 생성 방법

keytool -list -rfc --keystore oauth2jwt.jks | openssl x509 -inform pem -pubkey
키 저장소 비밀번호 입력:  oauth2jwtpass

Reference

Spring OAuth2

Keycloak

SSO

Spring Session

Kafka

Fluentd

Spring Batch

Webflux

RestAPI

Go to Contents

$ keytool -genkeypair -alias oauth2jwt -keyalg RSA -keypass oauth2jwtpass -keystore oauth2jwt.jks -storepass oauth2jwtpass

$ keytool -list -rfc –keystore oauth2jwt.jks | openssl x509 -inform pem -pubkey 키 저장소 비밀번호 입력: oauth2jwtpass —–BEGIN PUBLIC KEY—– MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArJerQDKo7Vwl2an9UEZD 9npx8vXoB+setdeZn5OKEntdpdXMdc1KE07Q8aejXnEdzTHqeWxfdctyJ0FZzphX PSfw8IzjjElmi4GoM5Aqh0ecPUjRrSHrE3EXwxagfoRy1igfD5ALCH7VIOvf3erU QKhAY+ARdQzNn2+d1V9y6atnPPwbjflm2Ke+S9K+Q+dvIpIbotRG7rJqO9RSn89Q E6CcNP0LhaL6FFt9mtCEtOAlZyJHLO/CJ51XQzfGP4cYXCUQT5TC0yRKmPlRuurE gfgmiAYl6XD1o3iui3vEJzNLN9nrbte4rjc+Rqv3aE23hu3f8QImNzdSZo6HJhQC NwIDAQAB —–END PUBLIC KEY—– —–BEGIN CERTIFICATE—– MIIDdzCCAl+gAwIBAgIEJg3+SjANBgkqhkiG9w0BAQsFADBsMRAwDgYDVQQGEwdV bmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYD VQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRAwDgYDVQQDEwdVbmtub3du MB4XDTE5MDQyNjE1MjAzMloXDTE5MDcyNTE1MjAzMlowbDEQMA4GA1UEBhMHVW5r bm93bjEQMA4GA1UECBMHVW5rbm93bjEQMA4GA1UEBxMHVW5rbm93bjEQMA4GA1UE ChMHVW5rbm93bjEQMA4GA1UECxMHVW5rbm93bjEQMA4GA1UEAxMHVW5rbm93bjCC ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKyXq0AyqO1cJdmp/VBGQ/Z6 cfL16AfrHrXXmZ+TihJ7XaXVzHXNShNO0PGno15xHc0x6nlsX3XLcidBWc6YVz0n 8PCM44xJZouBqDOQKodHnD1I0a0h6xNxF8MWoH6EctYoHw+QCwh+1SDr393q1ECo QGPgEXUMzZ9vndVfcumrZzz8G435ZtinvkvSvkPnbyKSG6LURu6yajvUUp/PUBOg nDT9C4Wi+hRbfZrQhLTgJWciRyzvwiedV0M3xj+HGFwlEE+UwtMkSpj5UbrqxIH4 JogGJelw9aN4rot7xCczSzfZ627XuK43Pkar92hNt4bt3/ECJjc3UmaOhyYUAjcC AwEAAaMhMB8wHQYDVR0OBBYEFGwU4l85+ogUly2Gv+cuzzRUvOs1MA0GCSqGSIb3 DQEBCwUAA4IBAQBaL58pMhDpSebvZFQeQkyDfc95lo/9b/+e109ryORIoX3zzbNO O1v8By2qhjj11QS3skTv2jNE4h1wDxlF+EK6uom3Vc+yHH85/cRP6Ec9bK3+Vab7 BxE/r713L3I7rGbM0DMnTeDEDaCytN6TmwxeqJiUMePfWdKAZUV/WZeKTZxePfUf ZK9J+FFEaua3hay2iY7s+eGPZ93rcNfrudARARdn34/coWx4lD8kh6At/K1qJrM2 7/QGMJeFP2zwBhhEhAwAN2ogad7cXOoy6OwcM0sMuZ+y5Vt2WKFLbHtRPj1V5mhk Nq/ACKliqWctpd8P5M/4Oat+zdyR3YjnU3+r —–END CERTIFICATE—–

$ keytool -genkeypair -alias oauth2jwt -keyalg RSA -keypass oauth2jwtpass -keystore oauth2jwt.jks -storepass oauth2jwtpass 이름과 성을 입력하십시오. [Unknown]: 조직 단위 이름을 입력하십시오. [Unknown]: 조직 이름을 입력하십시오. [Unknown]: 구/군/시 이름을 입력하십시오? [Unknown]: 시/도 이름을 입력하십시오. [Unknown]: 이 조직의 두 자리 국가 코드를 입력하십시오. [Unknown]: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown이(가) 맞습니까? [아니오]: y

https://www.tutorialsbuddy.com/keycloak-secure-spring-boot-rest-api https://sultanov.dev/blog/migrate-from-spring-security-oauth-to-keycloak/ https://github.com/anarsultanov/examples/blob/master/spring-boot-oauth2-keycloak/keycloak-server/pom.xml