OAuth 2.0 Client + Resource Server + Authorization Server 연동

존스노우·2023년 9월 19일
0

springSecurity

목록 보기
75/75

  • 대략적인 개요

  • 어떤 통신을 하는지 구조
  • 인가서버가 제공하는 엔드 포인트 임시 코드 발급 (OAuth2AuthorizationEndpointFilter)
  • 코드 반환
  • OAuth2LoginAuthenticationFilter 임시코드 받는 클래스
  • 토큰을 발급하기 위해 자격증명을 먼저 해야된다.

  • 토큰을 받은 뒤

  • 3 개 클라이언트 등록

  • 리다이렉트 url 추가
  • 각각의 리소스서버 권한으로가져갈 스코프 추가
  • 토큰 만료될 상황에 대한 설정 리프레쉬 토큰으로 재발급을 받는다.

  • 특별하게 추가된것 없는 소스

  • OAuth2Authorize 클라이언트 최종값을 반환하는 주된 목적

  • 리프레쉬 토큰으로 액세스토큰을 재발급 받기위한 빈이다.

  • 토큰이 만료 되었는지?
  • 인가서버를 통해 새로운 엑세스 토큰을 발급받는다.

  • 친구들 목록외 포토를 보낸다.

  • 여기까지 이어지는 토큰 만료 api

  • 출처가 다른 url 때문에 cors 설정을 해야된다.

  • 인가서버보다 클라이언트 프로젝트를 먼저 킬경우 에러
  • 인가서버에서 데이터를 가져와야 되는대! 인가서버를 먼저 기동해야된다.

  • 인가서버로 이동
  • 스코프 목록들.
  • 스코프 5개 설정을 줌 그래서 화면에 이렇게 나온것 이다.

  • 오류? 인가서버가 클라이언트에게준 콜백 주소
  • 정확한 주소를 줫는대..
  • 클라이언트와 인가서버와 상호작용하면서 클라이언트가 세션에 특정한 객체를 저장해놓고
  • 세션으로부터 객체 꺼내와서 여러가지 처리를 하는데 로컬호스트로 접속했을때 생긴 세션이다.
  • 127.0.0.1 로 하고 리다이렉트로 하게되면 localhost 로 생성되는 세션하고 다르다
  • 세션이 달라서 세션에 담긴 객체가 없는 것..

  • 처음부터 127.0.0.1 로 접속해야된다!
  • 처음부터 설정이나 이런건 localhost로 들어오는 요청은 차단하기때문에 url을써 줘야된다.

  • 토큰 요청

  • 인가정책들을 다 성공해서 통과함

  • tokenExpire 리프레쉬 토큰을 통해 엑세스토큰 재발급

  • 토큰을 디코딩해서 인증처리를 해준다.

처음부터 끝까지

  • 클라이언트가 요청

  • 인가서버가 받음 . 코드 발급하는 필터

  • 리다이렉트 함 코드로 다시 토큰요청하는 쪽으로

  • oidc 에서 처리함

  • 인가서버와 통신하기위한 마지막 처리

  • 토큰 요청

  • 그전에 클라이언트가 통과되어야 된다.

  • 여기서 처리하지 않고 토큰을 처리하는 필터로 보낸다

  • 3개 토큰 만들어서 전달

  • 각 토큰 3개를 만듬

  • idToken 같은 경우 인증 서명이 있기 때문에 여기서 검증해야된다.

  • 검증이도면 jwt 반환

  • 검증에서 퍼블릭키의 검증이 필요함. 인가서버와 통신필요

  • 자원서버마다 설정
  • 토큰의 유효성 검증 체크 가능
profile
어제의 나보다 한걸음 더

0개의 댓글