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

비오님의 프로필 이미지
비오

작성한 질문수

스프링 시큐리티 OAuth2

Authorization Code Grant Type - 권한 부여 코드 승인 방식

21:22 redirect uri

작성

·

463

0

redirect uri 에 관련해서,

저는 아래처럼 이해를 했어요.
[ 이해한 내용]

아래 두개 redirect uri는 동일해야함.

  1. authorization code 발급시, redirect uri 헤더

  2. access token 발급시 redirect uri 헤더

1번은 redirect 받기 위함.
2번은 1번을 검증하기 위함

 

[ 궁금한 점 ]

키클록에 등록하는 redirect Uri는 또 뭔가요?
깃허브나 이런 다른 provider 들에 앱을 등록할 때도 redirect uri, 혹은 callback uri 가 있던데 무슨 용도일까요?

답변 2

1

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

redirect Uri 는 인가서버를 호출할 때 파라미터로 전달해야 하고 키클록이나 깃헙같은 인가서버에도 동일한 redirect Uri 을 설정해야 합니다

callback uri 는 redirect Uri 와 동일한 개념입니다

0

안녕하세요, 인프런 AI 인턴입니다.

OAuth2 인증 과정에서 redirect URI 는 사용자 인증 후 인증 정보를 전달받을 서버의 주소를 나타냅니다.

  1. 인증 코드(authorization code) 발급 시 redirect URI:
    사용자가 OAuth2 제공자에 로그인을 하고 권한 부여를 한 뒤, 인증 코드를 받기 위해 인증 정보가 전송될 서버의 주소입니다.

  2. 액세스 토큰(access token) 발급 시 redirect URI:
    발급받은 인증 코드를 이용해서 실제로 사용할 액세스 토큰을 요청할 때 필요한 서버의 주소입니다. 이 주소는 인증 코드를 받은 주소와 일치해야 하며, 이를 통해 인증 과정의 연속성과 요청의 유효성을 검증합니다.

키클록(Keycloak)이나 깃허브(GitHub)같은 OAuth2 제공자에 등록하는 redirect URI는 해당 제공자에서 인증을 마친 후 사용자의 브라우저가 리다이렉트 될 주소를 의미합니다. 이는 application 에 등록 시 선언하며, OAuth2 제공자는 선언된 redirect URI 로만 사용자를 리다이렉션하도록 제한하여 보안을 강화합니다.

예를 들어, 귀하가 개발하는 서비스에서 깃허브를 통해 사용자를 인증하고자 할 때, 사용자가 깃허브에서 인증을 마치면 귀하의 서비스로 다시 돌아올 수 있도록 해당 서비스의 URI를 깃허브에 등록하는 것입니다. 즉, OAuth2 인증 과정에서 사용자가 마지막으로 돌아오는 지점을 나타내며, 이 URI가 인증 과정 중에 사용되는 redirect_uri 값과 일치해야 합니다.

즉, 보통 OAuth2 제공자에 등록하는 리다이렉트 URI는 애플리케이션에서 사용자를 인증하기 위해 인증 제공자의 인증 과정을 거치고 나서 사용자를 다시 애플리케이션으로 돌아오게 하기 위한 목적으로 사용하는 주소입니다.

이에 대한 추가적인 정보가 필요하시면 Spring Boot Reference Documentation 에서 OAuth2 관련 설정 방법을 찾아보실 수 있습니다. 해당 다큐멘테이션에서는 리다이렉트 URI 를 어떻게 설정하고, 커스텀 패턴을 어떻게 적용하는지 예시와 함께 설명하고 있습니다. 다음 링크를 참고하시면 됩니다: Spring Security OAuth2

비오님의 프로필 이미지
비오

작성한 질문수

질문하기