Spring/Oauth2

Oauth2 Implicit Grant

hwanguu 2025. 1. 12. 22:19

개요

 

  • 1. 흐름 및 특징
    • 클라이언트에서 Javascript 및 HTML 소스 코드를 다운로드한 후 브라우저는 서비스에 직접 API 요청을 한다
    • 코드 교환 단계를 건너뛰고 대신 액세스 토큰이 쿼리 문자열 조각으로 클라이언트에 즉시 반환됩니다.
    • 이 유형은 back channel 이 없으므로 refresh token 을 사용하지 못한다.
    • 토큰 만료 시 어플리케이션이 새로운 access token을 얻으려면 다시 OAuth 승인 과정을 거쳐야 한다
  • 2. 권한 부여 승인 요청 시 매개변수
    • response_type=token (필수), id_token
    • client_id (필수)
    • redirect_uri (필수)
    • scope (선택사항)
    • state (선택사항)

 

흐름

 

 

실습

기본세팅 : https://hwanguu.tistory.com/71

 

Oauth2 Keycloak Docker compose, 기본세팅

version: '3.9'services: postgres: image: postgres:latest container_name: postgres restart: always environment: POSTGRES_USER: keycloak POSTGRES_PASSWORD: keycloak POSTGRES_DB: keycloak ports: - "5432:5432" keycloak: image: quay.io/keycloak/keycloak:19.0.1

hwanguu.tistory.com

 

url : 

localhost:8080/realms/oauth2/protocol/openid-connect/auth?response_type=token&client_id=oauth2-client-app&scope=profile email&redirect_uri=http://localhost:8081

 

1. 인증 서버 로그인

2. 로그인 성공시 return 값 확인

http://localhost:8081/#session_state=b38f19ec-9200-4743-ad46-86aef56cbd68&access_token=eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJqOXYyeTNJN0RzTy02aFhqanFGUi1YSURWd2RvWUwyemRfVjN3c05EREFZIn0.eyJleHAiOjE3MzY2ODg3NzIsImlhdCI6MTczNjY4Nzg3MiwiYXV0aF90aW1lIjoxNzM2Njg3ODcyLCJqdGkiOiI1OThkY2QxNC1jYTgxLTQwNDctODE2YS1mYTA3NWY1MzU3Y2IiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvcmVhbG1zL29hdXRoMiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJiN2JmNzk5OC01Yzk4LTQ4NmItOTdiYi1iODMwMzc0MGRkYjciLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJvYXV0aDItY2xpZW50LWFwcCIsInNlc3Npb25fc3RhdGUiOiJiMzhmMTllYy05MjAwLTQ3NDMtYWQ0Ni04NmFlZjU2Y2JkNjgiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iLCJkZWZhdWx0LXJvbGVzLW9hdXRoMiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6ImIzOGYxOWVjLTkyMDAtNDc0My1hZDQ2LTg2YWVmNTZjYmQ2OCIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwibmFtZSI6ImNob2kgc2Vod2FuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoidXNlciIsImdpdmVuX25hbWUiOiJjaG9pIiwiZmFtaWx5X25hbWUiOiJzZWh3YW4iLCJlbWFpbCI6InVzZXJAbmF2ZXIuY29tIn0.uXeewCZwE4DLMatLm3z4KfPUvOyDlX2OGWmHsugns8kOe-FgZKxC1-AykZad57ZkxPf9c215DON-0rUuQhC_uV9-0TPg5IYhzaDHSfNC2xTlXPdPZmvZHq78K1EW-I9vo-zWuPENBpwTWz2TInO49vnSYCtGwkoPao6zzmrUYf5tO5yIEOcDg9HFPI-edCglZimCRMfWkec0HYOdPdH-GyRpRz3JFQL9j1rPa8DKoLzneU5PAFK9ipV_jFliNnIuQf8XjpWhpwqwSYm6FoGzx3rvW8XyVdVqchf9KzeZcU8uxR3x-olEfiCczrnWG486dF_9sxUjkIYcLcT9TRLFHA&token_type=Bearer&expires_in=900

 

return 값으로 access_token이 바로 반환된다.

refresh_token은 없다. access_token 만료시 다시 implicit 인증을 해야한다.

 

References 및 사진 출처

정수원 스프링 시큐리티 OAuth2

'Spring > Oauth2' 카테고리의 다른 글

Oauth2 Client Credentials Grant  (0) 2025.01.12
Oauth2 Password Grant  (0) 2025.01.12
Oauth2 Keycloak Docker compose, 기본세팅  (0) 2025.01.12
Oauth2 Authorization Code Grant  (0) 2025.01.12
Oauth2 매개 변수 용어  (0) 2025.01.12