ClientRegistration 이해 및 활용

존스노우·2023년 8월 22일
0

springSecurity

목록 보기
23/75

  • OpenId Connect 1.0 Provider(인가서버)

  • 인가서버로부터 클라이언트의 정보들을 가져와 매핑한다는 뜻.

  • 클라이언트 등록정보 메서드 사용하면 편리하게 설정 가능

  • ProviderDetails 서비스 제공자(인가서버) 엔드포인트 담을 수 있는 클래스

  • UserInfoEndpoint 사용자정보를가져올수 있는 url

  • 인증 방법 , 사용자명을 조회할수 있는 속성명

  • 코드를 발급받기 위한 필드들

  • 코드를 다시 전송해 엑세스 토큰을 받기위해 인가서버에 엔드포인트 주소가 있어야됨.

  • 서버측 엔드포인트 정보들

  • 전체가 클라이언트가 인가서버에 권한요청 할 수 있는 정보들

  • 우리가 인가서버에 인가코드 엑세스토큰을 받는다던지..
  • 스프링시큐리티가 ClientRegistartion을 통해 구성해 놨따.

  • 유명한 인가서버들에 메타데이터를 미리 지정해 놨따.

  • 이 클래스가 가지고 있는 각 속성에 들어가있는값

  • 인가서버에 등록 되있다.

  • 가장 먼저 인가서버로부터 ClientRegistartion 이정보를 가장 먼저 가져온다

  • 이 그림은 가져오는 과정을 그린 것 이다.

  • fromIssuerLocation 메서드

  • 인가서버의 베이스 uri 을 지정하면 시큐리티가 내부적으로 통신해서 (Rest)로

  • 인가서버의 메타 데이터를 가져온다.

  • Auth 오어스 방식으로 방식으로 가져오기 한다 인가서버 메타데이터로..

  • 특별한 설정을 하지않으면 그림에 나온 데이터들이 값들이 셋팅된다.
  • yml에 우리가 만약 값을 설정하면 그 값이 우선적으로 셋팅 된다.

코드

  • 빈 하고 구현체를 만든다.
  • 클라이언트 레지스트레이션 값을 리스트로 받고 있따.
  • OAuth2ClientProperties -> yml에 설정된 값들이 저장되 있따.

  • 현재는 설정 값들을 하나씩줬는데
  • 여러개 줄 수 있으니 foreach를 돈다

  • 클라이언트가 인가서버와 통신해서 메타 데이터를 통해 빌더 클래스를 만든다.
  • 인가서버에서 가져오지 못하면 빌더를 가져온다.

인가서버 통신

  • 이 부분은 여기 밑에 부분 메타 데이터를 가져오는 방법

  • 인가서버 통신 부분

  • issuerUri 이 값이 있으면 인가서버와 통신을 이용해 값을 가져온다.

  • 최종 빌더 클래스를 반환하고

  • 매핑 작업을 한다. yml설정 한 값들을 정보를 넣는다.
  • 굳이 근대 왜 또넣어? 설정한 값과 vs 인가서버에서 가져온값
  • 가져온 값이라도 우리가 설정한 값을 다시 셋팅한다. 이래서 셋팅을 하면 우선?

  • 보통 이렇게 주석해도 인가서버에서 같은 결과 값을 디폴트로 가져옴

  • 여기선 issuerUri 가 있어서 통신해서.

  • 유명한 소셜들은 디폴트 값들이 있어서.
  • 굳이 네트워크 이용하지않고 디폴트 값을 가져올 수 있다.

  • 요런 정보만 있으면됨
  • 그래서 예제보고 따라했을 때 이런 정보 만 있으면 됬던 거였다.

  • 하아 Provider를 통해 빌더를 호출한다.
  • 이전 내가 만들었던 라이브러리없는 어카운트 프로젝트가 이런식이엿다
  • 속성들의 바인딩 과정 여기서 끝.
profile
어제의 나보다 한걸음 더

0개의 댓글