[Tistory] Google Login, Google People Api 로 사용자의 구글 계정 정보를 알아내보자~ 1편

원글 페이지 : 바로가기

배경 구글 로그인을 하면서 사용자의 전화번호, 성별 등 정보를 함께 얻을 수 있는지 알아보게되었다. 본격적으로 구현에 들어가기 전에 관련 개념을 알아야 할 필요가 있다. 이번 1편에서는 개념에 대한 설명을 먼저 하도록 하고, 2편에서 실제 구현을 어떻게 하는지 설명하도록 하겠다! OAuth 2.0 ? 사용자가 자원(ex. 구글 계정 정보) 에 대한 접근 권한을 부여하고 다른 서비스에서 그 자원에 접근할 수 있도록 해주는 권한 부여 프로토콜 카카오, 구글, 네이버 등 어떤 서비스에서 그 서비스의 자원에 내가 만든 서비스가 접근할수있도록 권한을 부여하는 프로토콜 OAuth 2 를 이해하는데 알아야 할 용어를 아래에 정리한다. 용어 설명 Resource Owner 서비스를 이용하는 유저를 뜻한다. (ex. 김도연) Service Server (서비스 제공자) Client 라고도 한다. Resource Server(API Server) 에게 필요한 자원(사용자 정보) 를 요청하고 응답받기도 한다. (ex. 도여니가 만든 Spring Server, 구미인사이더 서버 등) Authorization Server 인증에 사용할 권한을 부여해주는 서버. Resource owner 는 이 서버로 id, pw 를 넘거 Authorization code 를 받은 후, 서비스 제공자에게 넘긴다. (ex. 구글…) Resource Server OAuth2 서비스를 제공하고 리소스를 관리하는 서버 (ex. 구글, 카카오, 네이버..) Authorization Server와 별개로 구분되어 있기는 하지만, 하나의 서버로 구현할지 따로 구현할지는 개발자가 선택하기 나름이라고 한다. Scope 사용자 데이터에 특정한 데이터만 접근할 수 있도록 제한할때 사용한다. 클라이언트가 권한 부여 서버로 요청 보낼때 이 스코프를 같이 보내게 된다 (ex. 성별 스코프, 전화번호 스코프) 그럼 사용자에게 허가를 받는 화면에는 위에서 날린 스코프와 관련된것만 동의받도록 나온다 예를들어 스코프로 전화번호 스코프만 날렸으면 사용자에게 전화번호 관련 정보에 대한 동의 화면이 나타난다. 그리고 날리지 않은 성별에 대한 동의는 안나온다. 성별 정보도 못읽는다. OAuth2 에는 두가지 플로우가 있다. 1. 권한 부여 플로우 -> 엑세스 토큰을 탈취하게되면 일정 기간동안 리소스에 접근을 할수있게됨 -> 따라서 이 엑세스토큰을 얻는것, 사용하는것을 백엔드로 넘겨 좀더 보안성 있게 한 플로우 2. 묵시적 플로우 백엔드 서버가 따로 없고 클라이언트만 있을때 사용하는 플로우 클라이언트에서 바로 엑세스토큰을 받고 이 엑세스토큰으로 리소스에 접근 엑세스토큰 탈취의 위험이 있으나 여전히 많이 사용되고 있는 방식. OpenID Connect(OIDC) OpenID Connect 는 OAuth2를 확장하여 만든것 OAuth2랑 다른 점? OAuth의 주요 목적은 인가(자원에 대한 접근 권한), Open ID의 Id Token에는 유저에 대한 신원 정보가 담긴다. 누구인지 신원을 증명할수 있을 뿐 Id Token으로 자원 접근 권한을 얻지는 못한다. 인증을 하는것임(신원 검증) 즉 OAuth2 는 서버에게 리소스를 가져오기 위한 엑세스 토큰 확보에 목적이 있고, Open ID Connect는 사용자 신원 정보가 담긴 ID Token 확보에 목적이 있는것 전체 과정 1. 구글 로그인을 통해 ServerAccessToken발급 2. 구글에 oauth2 엑세스토큰 발급 요청 3. 발급받은 엑세스토큰을 people api 에 전달하여 사용자 성별 등 정보를 받는다. 일종의 암시적 플로우를 따른다고 봐야할듯?? 2번 과정에서 백엔드만 가지고있어야 할 client secreat 을 앱에서 가지게되는데 이부분이 걱정된다. . 참고 https://auth0.com/blog/id-token-access-token-what-is-the-difference/ ID Token and Access Token: What Is the Difference? Learn what ID and access tokens are and how to correctly use them in the OpenID Connect and OAuth context. auth0.com https://medium.com/@sunyi233/id-token%EA%B3%BC-access-token-d285e647ee23 ID Token과 Access Token 회원 시스템을 구현할 때 많이 접하는 단어들입니다. 이 두 토큰은 비슷하지만 다릅니다. 한 10년전부터 회원 시스템을 만들 때 social login이라는 것을 많이 사용하게 되었습니다. 서비스가 자체 medium.com https://velog.io/@kon6443/CS-OAuth-2.0-OpenID-Connect-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%B0%A8%EC%9D%B4-%EA%B3%BC%EC%A0%95-wi6edsx3 [CS] OAuth 2.0, OpenID Connect, 인증, 인가 개념 및 차이, 과정 시작하기에 앞서 아래 미리 알아야할 용어들이다. OAuth 2.0는 “Open Authorization”의 약자로, Third-party 어플리케이션에게 리소스 소유자를 대신해 리소스 서버에서 제공하는 자원에 대한 접근 권한을 velog.io https://velog.io/@yuureru/OAuth2-%EC%84%B8%EC%85%98-%EB%B0%A9%EC%8B%9D%EC%9C%BC%EB%A1%9C-%EA%B5%AC%ED%98%84-%ED%95%B4%EB%B3%B4%EA%B8%B0-Google-Naver OAuth2 session 방식으로 구현 해보기( Google, Naver) 0. OAuth란 ? Open Authorization 개방형 표준. velog.io https://hudi.blog/oauth-2.0/ OAuth 2.0 개념과 동작원리 2022년 07월 13일에 작성한 글을 보충하여 새로 포스팅한 글이다. OAuth 등장 배경 우리의 서비스가 사용자를 대신하여 구글의 캘린더에 일정을 추가하거나, 페이스북, 트위터에 글을 남기는 기능을 hudi.blog https://devvkkid.tistory.com/233#google_vignette Google Oauth와 People 그리고 Identity 구글 Oauth 서비스를 사용하고 싶어서 자료를 찾아보던 와중에 큰 혼란을 겪게 되었다. 관련된 서비스가 너무 많은 것이다. 도저히 나에게 맞는 서비스를 찾는게 쉽지 않아서 정리를 한번 해보자 devvkkid.tistory.com https://iamhmin.github.io/oauth/oauth-4/ [OAuth 2.0] 4. OpenId Connect vs OAuth, ID Token vs Access Token RELATED POSTS 1. 사전 지식 – http통신, session, cookie, token은 무엇인가 2. OAuth의 개념, 주요 용어, 플로우 타입 3. OAuth의 동작 방식 – Authorization Code Grant Flow 4. OpenID Connect vs OAuth, ID Token vs Access Token iamhmin.github.io https://velog.io/@hyeonary/%EC%96%B4%EB%93%9C%EB%AF%BC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B5%AC%EA%B8%80-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0-OAuth-JWT-Storage 구글 로그인 만들기 – OAuth, JWT, Storage 해당 포스트는 어드민을 만들며 새로 알게되었던 것에 대한 포스팅입니다. 로그인 방식 로그인 방식은 OAuth 2.0 방식을 사용했습니다. 구글이나 카카오 아이디로 로그인하는 방식을 사용해보기 velog.io https://developers.google.com/identity/protocols/oauth2/native-app 모바일 및 데스크톱 앱용 OAuth 2.0 | Authorization | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 모바일 및 데스크톱 앱용 OAuth 2.0 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 개요에 developers.google.com https://velog.io/@kon6443/CS-OAuth-2.0-OpenID-Connect-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%B0%A8%EC%9D%B4-%EA%B3%BC%EC%A0%95-wi6edsx3 [CS] OAuth 2.0, OpenID Connect, 인증, 인가 개념 및 차이, 과정 시작하기에 앞서 아래 미리 알아야할 용어들이다. OAuth 2.0는 “Open Authorization”의 약자로, Third-party 어플리케이션에게 리소스 소유자를 대신해 리소스 서버에서 제공하는 자원에 대한 접근 권한을 velog.io https://medium.com/dev-woo94/sns-%EB%A1%9C%EA%B7%B8%EC%9D%B8%EC%9C%BC%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B8-oauth-2-0-openid-connect-030bc4a076a4 SNS 로그인으로 알아본 OAuth 2.0(+OpenID Connect) Authorization code flow, Implicit flow, OpenID Connect에 대해 알아봅니다. medium.com https://jhg3410.tistory.com/entry/android-google-login-apioauth2-%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B3%A0%EC%B0%B0 google login api(oauth2) 에 대한 고찰 진행 중인 프로젝트에서 google login을 구현하기로 결정되었다. 이를 구현하기 위한 노력들을 정리 간단하게 정리를 하자면 로직은 이렇다. 1. 구글에 로그인을 한다(GCP에 프로젝트 등록 후 구현 jhg3410.tistory.com https://velog.io/@jakeseo_me/Oauth-2.0%EA%B3%BC-OpenID-Connect-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%A0%95%EB%A6%AC Oauth 2.0과 OpenID Connect 프로토콜 정리 https://medium.com/better-programming/the-complete-guide-to-oauth-2-0-and-openid-connect-protocols-35ebc1cbc11a 이 글을 번역한 내용입니다.인증과 권한 관리를 위해 가장 널 velog.io https://hello-backend.tistory.com/187 OIDC와 OAuth에 대해.. OIDC와 OAuth OIDC와 OAuth의 차이점은 OIDC는 Authentication에 집중하고, OAuth의 경우는 Authorization을 포함한다는 것이다. Authentication과 Authorization Authentication(인증) 사용자가 누구인지 확인하는 절차 해당 hello-backend.tistory.com

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다