no image
[OAath] 구글 OAuth 2.0 사용 준비
구글 OAuth 2.0 사용 준비 구글 OAuth 인가를 받으려면 OAuth 클라이언트 ID와 비밀번호가 필요하다. 이를 위해서 3가지 절차가 필요하다. 구글 클라우드 프로젝트 생성 OAuth 동의 화면 생성 클라이언트 ID 생성 새 프로젝트 생성 새 프로젝트 클릭. 프로젝트 이름 입력하고 만들기 클릭. OAuth 동의 화면 만들기 OAuth 동의 화면 클릭 외부 클릭 후 만들기 클릭 필수 요소인 앱 이름, 사용자 지원 이메일, 개발자 연락처 정보만 입력. OAuth 클라이언트 ID, 비밀번호 만들기 사용자 인증 정보 클릭 OAuth 클라이언트 ID 클릭 승인된 자바스크립트 원본 에는 서버 주소를 입력. 승인된 리디렉션 URI에 구글 인증 후 리디렉션 할 URL 을 입력 이후 생성된 ID와 비밀번호는 유..
2024.02.26
no image
[OAuth]
OAuth 소개 OAuth는 Open Authorization의 약자이며 2006년에 구글과 트위터가 만들 개방형 인가의 표준이다. 많은 사이트에서 네이버, 구글, 페이스북등의 소셜 로그인을 지원하는 경우가 많다. 이때 인증을 구현하기 위해 OAuth를 인증과 인가의 차이 OAuth 는 1.0, 2.0, 2.1 세 가지 버전이 있으며, 2.0 버전이 가장 많이 사용된다. OAuth 용어 인증 : 리소스에 접근 자격이 있는지 검증하는 과정. 인가: 자원에 접근할 권한을 부여하는 과정. 인가가 완료되면 리소스의 접근 권한 정보가 있는 액세스 토큰을 클라이언트에게 보내준다. 액세스 토큰: 리소스 서버에서 리소스 소유자의 보호된 정보를 획득할 때 사용하는 만료 기간 이 있는 토큰이다. 리프레시 토큰 : 액세스 ..
2024.02.03

구글 OAuth 2.0 사용 준비

구글 OAuth 인가를 받으려면 OAuth  클라이언트 ID와 비밀번호가 필요하다. 이를 위해서 3가지 절차가 필요하다.

  1. 구글 클라우드 프로젝트 생성
  2. OAuth  동의 화면 생성
  3. 클라이언트 ID 생성

 

새 프로젝트 생성

 

1

새 프로젝트 클릭.

 

 

프로젝트 이름 입력하고 만들기 클릭.

 

OAuth 동의 화면 만들기

 

OAuth 동의 화면 클릭

 

 

외부 클릭 후 만들기 클릭

 

필수 요소인 앱 이름, 사용자 지원 이메일, 개발자 연락처 정보만 입력.

 

OAuth 클라이언트 ID, 비밀번호 만들기

사용자 인증 정보 클릭

 

 

 

OAuth 클라이언트 ID 클릭

 

승인된 자바스크립트 원본 에는 서버 주소를 입력.

승인된 리디렉션 URI에 구글 인증 후 리디렉션 할 URL 을 입력

 

이후 생성된 ID와 비밀번호는 유출되선 절대 안된다. 조심하자

 

 

개인 기록용입니다. 만약 잘못된 부분이 있다면 댓글로 알려주신다면 감사하겠습니다!

'개발 > OAuth' 카테고리의 다른 글

[OAuth]  (0) 2024.02.03

[OAuth]

doppelgoer
|2024. 2. 3. 01:12

OAuth 소개

OAuth는 Open Authorization의 약자이며 2006년에 구글과 트위터가 만들 개방형 인가의 표준이다.

많은 사이트에서 네이버, 구글, 페이스북등의 소셜 로그인을 지원하는 경우가 많다. 이때 인증을 구현하기 위해 OAuth를

인증과 인가의 차이

 

OAuth 는 1.0, 2.0, 2.1 세 가지 버전이 있으며, 2.0 버전이 가장 많이 사용된다.

 

OAuth 용어

  • 인증 : 리소스에 접근 자격이 있는지 검증하는 과정.
  • 인가: 자원에 접근할 권한을 부여하는 과정. 인가가 완료되면 리소스의 접근 권한 정보가 있는 액세스 토큰을 클라이언트에게 보내준다.
  • 액세스 토큰: 리소스 서버에서 리소스 소유자의 보호된 정보를 획득할 때 사용하는 만료 기간 이 있는 토큰이다.
  • 리프레시 토큰 : 액세스 토큰이 만료되었을 때 갱신하는 용도로 사용하는 토큰이며 액세스 토큰보다 만료 기간을 길게 가져간다.
  • 리소스 소유자 : 리소스는 사용자의 보호된 정보를 말하며 이런 정보에 접근하도록 자격을 부여하는 사람을 말한다. 즉 'OAuth에서는 사용자가 리소스 소유자다'라고 생각하면 된다
  • 클라이언트 : 리소스를 사용하려고 접근을 요청하는 애플리케이션을 의미한다.
  • 리소스 서버 : 사용자의 보호된 자원을 가지고 있는 서버.
  • 인가 서버 : 인증/인가를 수행하는 서버로 클라이언트의 접근 자격을 확인하고 액세스 토큰을 발급해 권한을 부여한다.

 

OAuth 프로토콜의 흐름

  1. 클라이언트가 리소스 소유자에게 권한 부여를 요청. 
  2. 클라이언트에게 권한을 부여.
  3. 클라이언트는 2에서 받은 정보를 통해 액세스 토큰을 인가 서버에 요구.
  4. 인가 서버에서는 클라이언트를 인증하고 유효성 검사를 진행하며, 유효한 경우 액세스 토큰을 발급함.
  5. 클라이언트가 리소스 서버에 보호된 리소스를 요청. 요청 시에는 액세스 토큰을 사용 함.
  6. 리소스 서버는 액세스 토큰의 유효성을 검사하고 유효한 경우 보호된 자원 정보를 보내준다.

OAuth 프로토콜의 흐름

 

액세스 토큰 재발행하는 흐름

  1. 클라이언트는 인가 서버에 인증을 하고 액세스 토큰을 요청
  2. 인가서버는 클라이언트를 인증하고 유효성 검증을 한 후에 문제가 없으면 액세스 토큰과 리프레시 토큰을 발급.
  3. 클라이언트가 리소스 서버에 액세스 토큰을 보내면서 보호된 리소스를 요청
  4. 리소스 서버가 액세스 토큰의 유효성을 검증하고 유효한 경우 리소스를 내려준다. 3과 4 단계는 액세스 토큰이 만료될 때까지 반복.
  5. 액세스 토큰 만료 시에도 클라이언트는 액세스 토큰을 리소 스 서버에 전달하는 경우도 있음. 클라이언트가 액세스 토큰이 만료된 것을 알고 있다면 7로 가게 되고, 모른다면 만료된 액세스 토큰을 전달한다.
  6. 리소스 서버에서는 액세스 토큰이 만료되었으 므로 잘못된 토큰 에러를 발생시킨다.
  7. 클라이언트에서는 액세스 토큰이 만료되어 에러가 발생했으므로 리프레시 토큰을 인가 서버로 전달해 새 액세스 토큰을 요청.
  8. 인가 서버는 리프레시 토큰이 유효한 경우 새로운 액세스 토큰을 발급해 준다. 이 때 리프레시 토큰의 재발급은 선택적이다.

액세스 토큰 재발행 흐름

 

 

 

개인 기록용입니다. 만약 잘못된 부분이 있다면 댓글로 알려주신다면 감사하겠습니다!

'개발 > OAuth' 카테고리의 다른 글

[OAath] 구글 OAuth 2.0 사용 준비  (0) 2024.02.26