OpenID Connect (OIDC)는 OAuth 2.0을 기반으로 한 인증 프로토콜로, JWT (JSON Web Tokens)를 사용하여 사용자 정보를 안전하게 전달합니다. OIDC에서 생성되는 JWT는 특히 'ID 토큰'이라고 불립니다.
ID 토큰에는 아래와 같은 클레임들이 포함될 수 있습니다:
- iss: 토큰을 발행한 주체(Issuer)를 나타냅니다.
- sub: 주체(Subject)를 나타냅니다. 이는 고유한 식별자로, 토큰 발행자가 관리하는 사용자의 ID입니다.
- aud: 수신자(Audience)를 나타냅니다. 이 클레임은 이 토큰이 의도된 수신자 또는 수신자들의 목록입니다.
- exp: 만료 시간(Expiration Time)을 나타냅니다. 이 시간 이후에는 토큰이 더 이상 유효하지 않습니다.
- iat: 토큰이 발행된 시간(Issued At Time)을 나타냅니다.
FACEBOOK 을 이용한 로그인시.
- iss: 이 클레임은 토큰을 발행한 주체(Issuer)를 나타냅니다. 이 경우에는 Facebook이 될 것입니다. 일반적으로, Facebook에서 발행한 토큰의 'iss' 값은 'https://facebook.com'과 같은 형태로 되어있습니다.
- sub: 이 클레임은 주체(Subject)를 나타냅니다. 이는 토큰 발행자가 관리하는 사용자의 고유 식별자입니다. Facebook을 통해 인증을 받은 경우, 'sub' 클레임은 Facebook에서 사용자에게 할당한 고유 ID입니다.
- aud: 이 클레임은 수신자(Audience)를 나타냅니다. 이는 해당 토큰이 의도된 수신자입니다. 즉, 특정 e-commerce 서비스의 식별자가 될 것입니다. 이 서비스가 Facebook에 등록되었다면, Facebook은 이 서비스의 'client_id'를 'aud' 클레임에 넣어 ID 토큰을 생성합니다. 그런 다음, 이 토큰이 e-commerce 서비스에 전달되어, 이 서비스는 'aud' 클레임을 검사하여 토큰이 자신에게 보내진 것임을 확인할 수 있습니다.