클라이언트와 인가서버 두 사이에 상호작용을통해 권한 부여 흐름 진행
yml에 설정된 값들을 ClientRegistartion에 필드에 저장되고
이정보를 참조해서 권한 부여 요청을 위한 매개변수를 이용해 인가서버 통신
설정 해주기.
OAuth2ClientProperties 속성에서 레지스트레이션이 Map으로 정의되잇는대
keycloak을 키값으로 정의하고있다 (여기설정에선)
클라이언트 자격증명을 위한 방법
클라이언트가 인가서버에 토큰을 요청할때 인가서버에서 자격증명할때
클라이언트에서 인가서버로 전송하는 방식이 Basic / post /여러가지방식중 하나
포스트 방식으로 클라이언트 아이디와 시크릿을 포스트 방식으로 보내겠다 설정 되 있음
공급자는 엔드포인트들 정보
맨아래는 사용자의 명을가져오는 키값을 정의해주면 된다.
redirectUri 인가서버는 임시코드를 클라에게 전달할때 클라 주소를 알아야 되는데 이게 바로 그정보다
콜백 개념?
코드요청시 보낼 엔드포인트
baseUri 인가 서버의 여러가지 메타데이터를 가져오기도함.
클라이언트가 리소스 서버에 데이터 요청할때 (서명에대한 프라이빗키에 대응하는 )퍼블릭키 정보를 받음
토큰 요청
사용자의 정보를 가져오는 것
결국은 클라이언트에서 사용자대신 권한부여를 한거기 때문에
사용자 정보를 가져온다? 사용자로 하여금 인증하겠다.
사용자는 서비스를 이용중이고 클라이언트는 사용자의 정보를 가져와 인증처리를
해 줘야되기때문에 유저정보가 필요한다.
이런 정보들이 OAuth2Properties에 각필드에 바인딩 되고
바인딩된 값을 사용해서 Client Registration에 속성 필드에 배정이됨
동의 한다 하면?
궁극적으로 인가서버가 클라이언트에 코드 발급
다시 클라이언트가 인가서버에게 코드에게 가져감 그 코드는 엑세스토큰 얻기 위한 코드
코드 검증 끝나면? 코드 일치되면 ? 다시 인가서버는 토큰을 서명하고 클라이언트에게 발행
리소스 서버는 토큰을 가지고 다시 인가서버에 토큰을 보내서 확인을 받음.
여기에 바인딩된다.