Open ID Connect의 개념과 작동 방식에 대한 이해.
Open ID Connect의 개념
OpenID는 비영리 OpenID Foundation에서 추진하는 개방형 표준 및 분산형 인증 프로토콜입니다.
이를 통해 사용자(End-User)는 제3자의 ID 공급자(IDP) 서비스(예 구글, 페이스북, 트위터 등)를 사용하여, 협력 사이트(RelyingParty -RP 사용자의 인증을 필요로하는 웹사이트)에서 인증을 받을 수 있으므로 자체 로그인 시스템을 제공할 필요가 없다.
귀찮은 개인 정보 입력을 통한 회원가입 절차를 생략할 수 있어서 OpenID Connect를 이용하여 간편하게 서비스 이용 가능하다.
개발자 입장에서도 새로운 사용자를 유치하는데 있어 진입장벽을 낮춰줄 뿐만 아니라, 인증(Authentication)의 역활을 ID 공급자(IDP)에게 위임 하여 개발시간을 단축할 수있다.
Open ID Connect의 작동방식
- 사용자가 openId 인증을 요구하면 Client는 ID 공급자(IDP)에게 사용자 신원 인증을 요구합니다.
Client는 ID 공급자는 일회성 Auth code를 보내고, Client는 이것을 받아서 ID Token과 Access Token을 다시 요청하여 받습니다.
ID Token이란?
ID Token은 JWT형식으로 구성된 사용자의 인증 정보를 가지고 있습니다.
*JWT(Json Web Token)은 기본적으로 3개의 부분으로 살펴 볼수 있습니다.
Header (암호화 Algoritm / Token Type)
Payload/Body (data)
Signature(토큰을 인코딩하거나 유효성 검증)
Body의 중요한 Claim에는 iss, sub, aud, exp, iat 등의 정보가 담겨 있습니다.
- iss: ID Token을 발급한 ID Provider(Google, Facebook).
- sub: Client측에서 End-user를 식별할 수 있는 고유한(unique) 식별자.
- aud: ID Token이 어떤 Client를 위해 발급된 것
- exp: 만료시점
- iat: 발급시점