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

심성윤님의 프로필 이미지
심성윤

작성한 질문수

스프링 시큐리티 OAuth2

OAuth 2.0 Token Endpoint 기능 및 특징

Authorization Code Grant Type 문의

작성

·

365

0

강사님 안녕하세요.

신규 Authorization 서버를 구축해보고자 사전 지식 쌓을겸 강의를 현재 듣고 있습니다.

Authorization code grant 방식으로 고려중인데 User Credentials을 사용안하고(openId X) 단순히 code 발급, token 발급, token 인증 형태의 기능만 사용하고 싶은 경우에 FilterChain에서 설정이 가능한지 궁금합니다. 브라우저를 통해 로그인 없이 단순 API 형태로써 말이죠.

왜냐하면 다른 형태의 SSO Token을 내부적으로 활용해야 하는 방향으로 접근해야 해서, 리소스 획득을 위한 인증 방식으로 Authorization Code Grant Type을 적용해볼까 했습니다.

항상 로그인을 통한 User Detail Repository 참조의 형태를 가져가는것이 기본인지 해당 기능을 off 할 수 있는지 궁금합니다.

감사합니다.

답변 1

0

정수원님의 프로필 이미지
정수원
지식공유자

사용자 인증 단계까지 가지 않고 권한 획득 즉 access token 까지만 처리되도록 하는 것을 의미하는 건지요?

인가서버는 각 엔드포인트 별로 클라이언트의 요청에 따라 응답을 하도록 되어 있습니다.

임시코드 발급, 토큰발급, 사용자 정보 제공 각 엔드포인트별로 제공이 됩니다.

그 역할은 클라이언트가 어떤 요청을 하느냐에 따라 달라질 것입니다.

현재 스프링 시큐리티 OAuth2 에서의 클라이언트는 Authorization code grant 방식으로 진행을 했을 때 사용자 인증까지 처리하는 API 와 클라이언트 인증까지 처리하는 API 두가지를 제공하고 있습니다.

사용자 인증까지 처리하는 API 는 http.oauth2Login() 이고 클라이언트 인증까지만 처리하는 API 는 http.oauth2Client() 입니다.
근데 이 두가지 기능은 외부 라이브러리와 연계해서 커스텀하게 사용할 수 있는 범위가 극히 제한적입니다. 전반적인 처리과정이 자동화 되어 있고 커스텀하게 구현하도록 제공하는 API 자체도 스프링 시큐리티의 제한된 범위내에서만 가능하도록 되어 있습니다.


대부분의 스프링 시큐리티를 통해 OAuth2 인가와 인증을 편리하게 사용할 수 있도록 제공하는 API 이기 때문에 다른 형태의 SSO Token을 내부적으로 활용해야 하는 방향으로 접근해야 한다면 일단 인가서버로부터 토큰까지만 가지고 와서 권한을 획득한 다음 이 토큰을 활용해서 내부 로직을 구성하도록 별도의 필터를 만들어야 할 것으로 보입니다.

제가 질문내용을 잘 못 이해한 것일 수도 있으니 조금 더 상세하게 질문해 주시면 답변하는데 도움이 될 것 같습니다.

 

심성윤님의 프로필 이미지
심성윤

작성한 질문수

질문하기