위에서 언급한것과 같이 OIDC는 OAuth2.0의 확장이다. 따라서 과정은 전부 동일한데, ID Token이 포함되면 OIDC이다.
OIDC의 목적은 client가 user의 정보를 server를 통해 가져오는 것!
이러한 user의 정보를 얻기 위해서는 위에서 언급했다싶이 ID token이 필요하다.
: Authorization Endpoint인 WebAPI에 parameter로 response_type
을 지정해서 request를 보낸다.
->response_type
에는 code
, token
, 그리고 OIDC를 사용하기 위한 id_token
이 있다.
-> ID token을 얻기 위한 request에는 scope
파라미터에 꼭 Open ID
를 포함해야 한다.
response_type = code
로 설정하여 서버에 요청하는 과정은 OAuth2.0의 과정과 거의 유사하다.
-> 이때 request에 scope이 포함되지 않으면, ID token을 제외한 Access token만 발급된다.
response_type = code
로 설정하여 서버에 요청하는 과정은 다음과 같다.
그림과 같이 response에 아예 ID token이 제공되지 않는다. 따라서 ID token의 발급이 목적인 OIDC에서는 사용하지 않음!
response_type = token
로 설정하여 서버에 요청하는 과정은 다음과 같다
그림과 같이 오직 ID token만 발급된다. 따라서 access 권한이 아닌 user의 계정 정보만 필요한 경우에 사용한다.