쌩로그

OAuth2.0 구성 정보의 메타 정보(feat. 공식문서) 본문

Project/23년 6월의 프로젝트

OAuth2.0 구성 정보의 메타 정보(feat. 공식문서)

.쌩수. 2023. 6. 5. 12:25
반응형

내가 성장하는 것이 다른 사람에게 좋은 영향을 줄 수 있다.

그래서 나는 잘 되야만 한다.

나는 진짜 ㄹㅇ 조만간 잘 될 사람이다.

어차피 잘 될 것이고, 지금도 잘 된 사람이다..
어쨋든간에 나는 어잘될사다.


목차

  1. 개요
  2. 본론
  3. 요약

1. 개요

yml설정에서 OAuth2.0의 구성정보를 설정하는데, 스프링에서 지원(구글,깃허브,페이스북 외)하지 않는 OpenId 클라이언트의 정보를 설정하는데, 모든 주석을 달고싶었다. 그런데, 각 항목의 세부정보가 어떤 것인지 알고싶었는데, GPT와의 사투(?;; 이놈 링크 알려주긴 하는데 그냥 공식 문서의 홈페이지로 리다이렉트됨 고맵긴한데,,,, 여튼..)끝에 뭔가 보이기 시작해서 글을 쓴다.

지금 블로깅 주제 스택 쌓인 게 어마어마하지만, 이건 지금 기록을 해놔야될 것 같아서 미리미리 작성을 하게 되었다.

2. 본론

내가 알고싶었던 건 다시 말하지만, 스프링에서 지원하지 않는 예를 들면, 카카오, 네이버 같은 OpenId 소셜로그인 구성을 할 때 yml의 세부항목이 어떤 걸 뜻하는지 알고싶었다..

이번 프로젝트에서 내가 진행하는 설정이나 코드에 모든 주석을 남기고 싶었으니..
그런데, 알아야 남기는데, GPT의 도움을 받았다.

spring:
 security:  
  oauth2:  
   client:  
    registration:   
        google: 
         clientId: 
         clientSecret:  
        kakao:
         clientId:
         clientSecret:   
         redirect-uri: 
         client-authentication-method: 
         client-name: 
         scope:  
    provider:   
     kakao:  
      authorization-uri: 
      token-uri: 
      user-info-uri: 
      user-name-attribute:

이 정보들이다.

스프링 공식문서에서 알 수 있는 정보들이 있지만, registration하위의 정보들은 나오질 않았다.
여기서 확인 가능하다.

구글, 깃허브, 페이스북은 스프링에서 지원하기 때문에 clientId, clientSecret 정보만 줘도 되는데, 카카오 같은 OpenId는 구성 정보를 또 설정해줘야 한다.

참고로 OpenId란?

> "여러 웹사이트에 여러 계정을 생성하고 관리하는 번거로움을 없애고, 대신 하나의 OpenId 식별자만으로 여러 서비스에 접근할 수 있도록 하는 것...OpenID는 인증 과정에서 사용자 신원 정보를 제공하기 위해 OAuth 프로토콜과 연동할 수 있습니다. "라고 한다. > 나의 한 줄 요약은 **인증과 인가를 신뢰할 수 있는 벤더사**라고 이해된다. >
> PT가 이이렇다고 한다.

내가 지금 GPT한테 말하고 있'었'던 게 이거다.

나: "이거 어디서 볼 수 있냐? 공식문서 줘!"
피티 : "https://" 여기 들어가보세요!
나: "OK"
나: "안 나와! 알려줘!"
피티: "https://
" 여기 들어가보세요!
나: "OK"
나: "안 나와! 알려줘!"

🤔🤔🤔🤔🤔🤔🤔🤔

🤔🤔🤔🤔🤔🤔🤔🤔

대강 이런 상황 이었다.
그러다 문서를 보다보니 갑자기 눈에 띈게 있었다.

스프링 시큐리티 문서 OAuth2.0에서의 'property Mapping'정보는 찾았다.

여기 세부 설명은 없다.

여기의 하위 부분의 yml을 다 뒤져봤지만. 코빼기도 보이지 않았다.

한국말과 영어차이.. 여튼 이 항목에서

ClientRegistration클래스의 필드들을 보다보니 뭔가 낯이 익었다..

spring:
 security:  
  oauth2:  
   client:  
    registration:   
        google: 
         clientId: 
         clientSecret:  
        kakao:
         clientId:
         clientSecret:   
         redirect-uri: 
         client-authentication-method: 
         client-name: 
         scope:  
    provider:   
     kakao:  
      authorization-uri: 
      token-uri: 
      user-info-uri: 
      user-name-attribute:

registration의 하위 항목들과 똑같은 부분도 있지만, 비슷한 부분도 있다.
그럼 비슷한 부분이 무엇이냐? 단지 카멜케이스단어중간의 하이폰(-)차이다.
결론은 똑같은 항목이라는 것

더욱이 확실한 것은 이미 아까 Property maapings사진에도 나와있었다는 것이다..!

;;;;;;;;;;;;

여튼 구성정보의 메타정보는 이미 공식문서에 나와있었고, 내가 못 본 것 뿐이었다...;;;;;

이거대로 나는 yml의 주석을 한 번 작성해보려고 한다..

3. 요약

  1. 내가 생각한 OpenId는 인증과 인가를 신뢰할 수 있는 벤더사이다. 구글도, 페이스북도 깃허브도 OpenId이다.
      1-1. OpenId도 뭔가 세부적인 개념이 있는 거 같다. 나중에 알아봐야겠다.
  2. 스프링에서 지원하지 않는 OpenId의 OAuth2 구성정보의 메타정보는 공식문서에 형태만 다르게 되어있을 뿐 이미 나와있다.
      2-1. 대충 보다가 시간이 더 크게 잡히게 하기보단, 항목 하나하나 자세히 보는 게 시간이 훨씬 단축 될 수 있을 것 같다..;;
  3. "도르마무~ I come to bargen. I'm Strange"(그냥 스트레인지 : 이상하다.)

4. 끝

-끝-

참고링크

OpenId 참고링크

728x90
Comments