• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

안녕하세요. oAuth2 관련해서 여쭤볼게 있습니다!

21.09.20 20:01 작성 조회수 252

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.'
 
안녕하세요. 기선님 강좌를 보면서 다시 새로 공부를 하면서 개발을 하고 있는 개발자 입니다.
차근차근 따라가면서 때로는 필요한 부분을 찾아서 보면서 정말 많은 도움을 받고 있습니다..
 
다름이 아니라 oAuth 연동 관련해서 궁금한게 있어서요..
Client 랑 Server 랑 완전히 분리되어 있는 환경에서는 이번 강좌에 있는 oAuth2 연동에 보안상으로 괜찮을까요?
조금 더 부연 설명을 드리면.. Client 는 vue.js 로 개발되어 Aws CloudFront + S3 환경으로 되어 있고 Server는 springboot 기반의 API 서버예요. (client 쪽은 대충 저렇게만 알고 있어요...)
강의에서 배운것처럼 로그인할때 서버에서 클라이언트로 토큰을 전달해서 다른 기능 API를 사용하게 할 예정인데,,
걱정되는부분은 로그인 처리를 할때 클라이언트에서 서버에 접근할때 쓰는 ID와 패스워드이네요..
노출이 되면 안되는 정보인데... 클라이언트 소스상에 id, pw가 있으면 그대로 노출이 될 것 같아서요..
개발 경험과 지식이 많이 부족하다보니 구글링도 해보고 이래저래 찾아보는데... 잘 모르겠어서.. 이렇게 두서없는 질문을 드려봅니다 ㅠ
수업내용에서 조금 벗어나는 내용이라,, 이런 질문을 여기다 남겨도 되는지 모르겠네요 ㅠㅠ
 
기선쌤 강의중에 참고가 될 만한 강의를 알려주셔도 좋습니다 ㅠㅠ
 
 
혹시 몰라서 제 email 주소도 남겨놓겠습니다!
감사합니다!
 
luchientes@naver.com
 
 

답변 1

답변을 작성해보세요.

1

안녕하세요. 클라이언트 소스 코드에 서버 OAuth 인증에 사용하는 앱 클라이언트 ID와 클라이언트 시크릿 말씀하시는거죠? 로그인 할 때 사용하는 사용자 계정 정보에 필요한 유저네임과 패스워드는 사용자로부터 입력 받는 값이니까 노출될 필요가 없을테구요.

클라이언트 앱 ID와 스크릿은 말씀하신대로 노출되면 안되는 정보지만 클라이언트 앱이 사용해야 하는 정보니까 소스 코드에 두는게 아니라 원칙적으로는 KeyVault같은 곳에서 값을 읽어와서 쓰도록 코드를 구현하는게 안전합니다. KeyVault보다는 덜 안전하지만 그래도 소스 코드에 노출하지 않을 수 있는 방법으로는 스프링 부트가 제공하는 외부 설정 파일처럼 특정 위치에 있는 파일에서 값을 읽어온다거나 서버의 환경 변수에서 읽어오도록 코드를 작성하면 코드에서 값을 뺼 수는 있습니다.