-
KeyCloak으로 Oauth2.0 인가서버 구현 - 1BackEnd/SpringSecurity 2023. 7. 8. 12:45
목표 : KeyCloak 오픈소스를 사용하여 Oauth2.0 흐름을 파악
1. KeyCloack 인스톨
https://www.keycloak.org/downloads
2. KeyCloack 실행
//리눅스 계열은 sh 파일 실행 ./keycloak-21.1.2/bin/kc.sh start-dev // 윈도우 계열은 bat 파일 실행 ./keycloak-21.1.2/bin/kc.bat start-dev
3. KeyCloack 설정
이미 관리계정을 만들어서 create 후에 다음과 같이 로그인한다.
realm 이란?: realm은 사용자, 자격 증명, 역할 및 그룹 집합을 관리한다.
OpenID 설명
Connect 는 OAuth2.0 프로토콜 위에 구축된 ID 계층으로 OAuth2.0을 확장하여 인증방식을 표준화 한 OAuth2.0 기반의 인증 프로토콜이다.
OAuth2.0 기반 - Authorization (인가)
사용자의 정보를 얻을 수 있도록 자원서버에 토큰을 갖고 요청한다.
OpenID Connect - Authentication (인증) 사용자 ID를 확인할 수 있게 보안 토큰이 ID Token 제공한다. 인증 되었음을 증명하는 결과물로써
JWT로 표현된다. 인가서버에서 비대칭키 방식으로 (개인키로)암호화한 후 클라이언트는 공개키로 토큰을 검증 및 유효성 검사함.
OIDC Scope (Open ID Connect)
OpenID(필수) : 클라이언트 OpenID Connect 요청을 하고 있음을 인증 서버에 알린다.
profile, email, address, phone 등에 대한 정보를 클레임으로 담겨서 넘겨준다.
ID Token vs AccessToken
ID Token은 API요청에서 사용해서는 안되며 사용자 신원확인을 위해서 이루어져야한다.
AccessToken은 인증을 위해 사용해서는 안되며 리소스 접근을 위해서 사용되어져야한다.
둘의 성격은 다르기 때문에 상황에 맞게 사용하면된다.
ex )
SNS 계정으로 회원가입시 ID Token으로 Response Type을 받고 가입을한다.
사용자의 특정 정보를 SNS로 부터 불러올때 AccessToken을 통해 자원서버에서 받아온다.
'BackEnd > SpringSecurity' 카테고리의 다른 글
SpringSecurity OAuth2.0 - 1 (0) 2023.07.08 KeyCloak으로 Oauth2.0 인가서버 구현 - 2 (0) 2023.07.08 Oauth2.0 기본 개념 (0) 2023.07.06 CORS 기본 개념 (0) 2023.07.06