고객사에서는 "그림 1 NAVER WORKS와 고객사 간 OAuth 2.0 기반 SSO"의 7~8 단계와 "그림 2 OAuth 2.0 기반 API 인증"의 5~6 단계에 해당하는 로직을 구현하여 NAVER WORKS에서 사용할 수 있도록 API로 제공한다. 고객사 SSO 시스템에서 Authorization Code를 검증한 후 Access Token을 발급하여 반환한다.
NAVER WORKS의 인프라 보안 정책에 따라 80 혹은 443 포트만 사용할 수 있다.
제작한 Request URL은 Developer Console의 SSO > WORKS as SP 설정에서 Access Token Return API에 등록한다.

그림 13 OAuth 2.0 기반 Access Token API 등록
참고
- Access Token 발급 시, 세션 만료 시간이
expires_in값에 의해 결정된다. expires_in을 설정하지 않았다면 기본 로그인 시간은 24시간(웹 브라우저), 30일(모바일앱, PC앱)로 설정된다.
*공공은 1시간(웹 브라우저), 24시간(모바일앱), 30일(PC앱)로 설정
POST
참고
- API 통신 시 connection timeout은 1초, read timeout은 3초이다.
| 파라미터 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| grant_type | String | Y | 인증 과정에 대한 구분값으로 어떠한 형태의 결과값을 받을지 명시. 항상 "authorization_code"라는 고정된 문자열 사용 |
| client_id | String | Y | Developer Console에서 등록한 client id값 |
| client_secret | String | Y | Developer Console에서 등록한 client secret값 |
| code | String | Y | Authorization Code |
응답 형식은 JSON이다.
| 속성 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| access_token | String | Y(성공 시) | Access Token |
| refresh_token | String | N | Access Token이 만료될 경우 토큰을 재발급받기 위한 토큰 |
| token_type | String | Y(성공 시) | Access Token의 type. "Bearer" 고정 |
| expires_in | String/Integer | Y(성공 시) | Access Token의 유효 기간(초). 실제 애플리케이션의 로그인 유지 시간 |
| error | String | Y(실패 시) | 실패 시 반환하는 오류 코드 |
| error_description | String | Y(실패 시) | 실패 시 반환하는 오류 설명 |
| 코드 | 메시지 | 설명 |
|---|---|---|
| 101 | access_denied | 인가된 클라이언트로부터의 요청이 아님 |
| 201 | invalid_request | 필수 Request가 누락되었거나, 데이터 형식에 맞지 않음 |
| 203 | unsupported_grant_type | 지원하지 않는 grant_type |
| 301 | unauthorized_client | client id와 secret으로 검증 실패 |
| 302 | invalid_authorization | Authorization Code 검증 실패 |