-
KeyCloak으로 Oauth2.0 인가서버 구현 - 1BackEnd/SpringSecurity 2023. 7. 8. 12:45
목표 : KeyCloak 오픈소스를 사용하여 Oauth2.0 흐름을 파악
1. KeyCloack 인스톨
https://www.keycloak.org/downloads
downloads - Keycloak
Downloads 21.1.2 For a list of community maintained extensions check out the Extensions page. Server Quickstarts Client Adapters WildFly [DEPRECATED] <= 23 ZIP (sha1) TAR.GZ (sha1) JBoss EAP [DEPRECATED] 7 ZIP (sha1) TAR.GZ (sha1) JavaScript Node.js [DEPRE
www.keycloak.org
keycloack에 접속하여 원하는 압축형태 파일 다운 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 후에 다음과 같이 로그인한다.
localhost:8080 접속후 관리 콘솔 로그인 좌측 햄버거 네비게이션 버튼 -> create Realm을 클릭 realm 이란?: realm은 사용자, 자격 증명, 역할 및 그룹 집합을 관리한다.
Realm name 설정 -> Create 버튼 클릭 좌측 햄버거 네비게이션 클릭 -> Clients 클릭-> Create client 클릭 Client authentication, standard flow, Direct access grants, Implicit flow 체크 -> Next LoginSetting은 Consent required를 설정 (인가시 사용자에게 scope 동의묻기) 햄버거 메뉴 Users 클릭 -> CreateUser 생성된 user 확인 생성된 user클릭 -> password 설정 -> save Client scopes 클릭 -> Create client scope 클릭 name을 openid로 설정후 save 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을 통해 자원서버에서 받아온다.
스프링 시큐리티 OAuth2 - Spring Boot 기반으로 개발하는 Spring Security OAuth2 - 인프런 | 강의
스프링 시큐리티 OAuth2의 기본 개념부터 API 사용법과 내부 아키텍처를 학습합니다. 아울러 OAuth2 Client, OAuth2 Resource Server, Authorization Server를 통합하여 연동하는 방법을 살펴보고 자체 인가 서버를
www.inflearn.com
'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