개요
- 1. 흐름 및 특징
- 애플리케이션이 리소스 소유자인 동시에 클라이언트의 역할을 한다
- 리소스 소유자에게 권한 위임 받아 리소스에 접근하는 것이 아니라 자기 자신이 애플리케이션을 사용할 목적으로 사용하는 것
- 서버 대 서버간의 통신에서 사용할 수 있으며 IOT 와 같은 장비 어플리케이션과의 통신을 위한 인증으로도 사용할 수 있다.
- Client Id 와 Client Secret 을 통해 액세스 토큰을 바로 발급 받을 수 있기 때문에 Refresh Token 을 제공하지 않는다
- Client 정보를 기반으로 하기 때문에 사용자 정보를 제공하지 않는다.
- 2. 권한 부여 승인 요청 시 매개변수
- grant_type=client_credentials (필수)
- client_id (필수)
- client_secret (필수)
- scope (선택사항)
흐름


실습
기본세팅 : 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
1. 인증 서버 API 호출

2. return 값 확인
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJqOXYyeTNJN0RzTy02aFhqanFGUi1YSURWd2RvWUwyemRfVjN3c05EREFZIn0.eyJleHAiOjE3MzY2ODg4OTYsImlhdCI6MTczNjY4ODU5NiwianRpIjoiMzYwNmY5ZWMtZjI1ZS00Y2QxLWJhZmMtODc1MWYyMWI4OGUwIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9vYXV0aDIiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiZjgyMjMyNWEtN2YzZS00Y2U0LThkZGItNDg5ZTkyZDA1MjU5IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoib2F1dGgyLWNsaWVudC1hcHAiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iLCJkZWZhdWx0LXJvbGVzLW9hdXRoMiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7Im9hdXRoMi1jbGllbnQtYXBwIjp7InJvbGVzIjpbInVtYV9wcm90ZWN0aW9uIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImNsaWVudEhvc3QiOiIxNzIuMjAuMC4xIiwiY2xpZW50SWQiOiJvYXV0aDItY2xpZW50LWFwcCIsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1vYXV0aDItY2xpZW50LWFwcCIsImNsaWVudEFkZHJlc3MiOiIxNzIuMjAuMC4xIn0.RYnPt8QPMLX1cjFeHzXkXLH0ZYYBrSt4DaWluTPfZCagafhYAkP_kTTcAjgfc5lDHRjm6jt0GsHZHr0K_z7jN3r4_uvwoLnCSAFvp5dLbXuZAGMcG3wa8nURBElM-_b99Fx-YWYwcE4nMEzrcN-SIkxArz4BPW71qjTlihbNyzCsgoNKVLsjX6yTkCRDmsU-BHfWroSLaCGT5UE3vPsnNHrUOCIy7bOooG-KB71l4NHSV_wvI6oBeW-rbENtIMc8kLlk15VU2QFS5iA9fbSh8be-ckfL2u6gesaJ4W-TBDle7ydMSH3nuplUT065oTMnJbTBN1gT50VZpZqaZfpKYw",
"expires_in": 300,
"refresh_expires_in": 0,
"token_type": "Bearer",
"not-before-policy": 0,
"scope": "email profile"
}
References 및 사진 출처
정수원 스프링 시큐리티 OAuth2
'Spring > Oauth2' 카테고리의 다른 글
| Oauth2 PKCE-enhanced Authorization Code Grant (0) | 2025.01.12 |
|---|---|
| Oauth2 Refresh Token Grant (0) | 2025.01.12 |
| Oauth2 Password Grant (0) | 2025.01.12 |
| Oauth2 Implicit Grant (0) | 2025.01.12 |
| Oauth2 Keycloak Docker compose, 기본세팅 (0) | 2025.01.12 |