강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

park님의 프로필 이미지
park

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

로그인, 인증 관련 질문

작성

·

301

0

안녕하세요 선생님,

https://www.inflearn.com/questions/215315

위 관련해서 추가 질문을 드리고 싶습니다.

제가 궁금한 것은 이번 강의처럼 RESTful API 방식으로 통신하는 백엔드 서버를 구성하고, 이를 이용하는 Vue.js와 같은 프론트엔드 프레임워크를 이용해  웹 어플리케이션을 만든다고 할때 OAuth2를 이용한 JWT 토큰 발급을  어떤 방식으로 구현할 수 있는지 궁금합니다.

검색을 해봐도 서버 사이드 렌더링 방식의 글은 많으나 RESTful API 기반의 OAuth2 인증 방식에 대한 글은 잘 찾지 못하겠습니다...

구체적인 구현 방식까진 아니더라도, 대략적인 흐름을 알려주실 수 있을까요?

예를 들어, 화면단에서 구글 로그인 버튼을 누르면 어디로 이동해서... 이런식의 흐름을 알고 싶습니다.

답변 1

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

OAuth2는 일종의 인증/권한 서비스 대행에 가까운 서비스입니다. 강의에서 사용된 JWT 발급과 사용의 역할을 OAuth2 서비스에서 대신하게 되며, OAuth2 서비스에서 구현하신 백엔드 또는 프론트엔드로 Token을 전달하게 되면, 이를 보관하고 있다가, 사용 및 재발행이 필요하면 다시 OAuth2를 이용하는 프로세스로 구현됩니다.

Spring Boot에서 OAuth2를  위해 spring-security-oauth2 라이브러리를 이용하여 Authorization Server를 구현하는 방법으로 사용되었으나, 이 프로젝트는 Deprecated되었고, 최근에는 Keycloak이나 Okta와 같은 것을 이용하여 구축 할 수 있습니다. 이중 Keycloak은 OAuth 이외에 OpenID, SAML(Security Assertion Markup Language) 등을 지원하고 있어, 추후 강의에서 사용할 예정입니다. 

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>

감사합니다. 

park님의 프로필 이미지
park

작성한 질문수

질문하기