API를 사용하는 등 NAVER WORKS와 연동하려면 토큰이 필요하다.
NAVER WORKS API를 사용하려면 Access Token이 필요하다. 정해진 방식에 따라 발급한 Access Token으로 API를 호출한다.
API를 호출하는 방법은 API 호출을 참고한다.
Access Token은 조직, 구성원, 캘린더, Bot 등의 정보에 접근하는 데 필요한 자격 정보이다. OAuth 2.0을 준수한다.
Access Token은 NAVER WORKS의 인증 서버에서 발급한다. 인증 절차에 따라 구성원의 리소스 액세스 권한이 Access Token에 일시적으로 위임된다. 사용자는 Access Token을 사용하여 위임받은 권한으로 API를 사용해 리소스에 안전하게 접근할 수 있다.
Access Token에 부여되는 액세스 범위는 다음 두 가지 요소로 결정된다.
Access Token을 발급받은 구성원이 소유한 권한에 따라 권한 범위(scope)를 지정한다. 여기에 지정된 scope는 Access Token을 사용하여 어떤 API를 호출할 수 있는지 결정한다.
자세한 내용은 OAuth Scopes를 참고한다.
각 API를 호출하기 위해 필요한 scope는 각 API 문서를 참고한다.
Access Token은 다음 두 가지 방법으로 발급받을 수 있으며 용도에 맞게 선택하여 사용할 수 있다.
| 구성원 계정으로 인증 | 서비스 계정으로 인증(JWT) | |
|---|---|---|
| 개요 | 구성원(User Account)으로 인증 절차를 거쳐 Access Token을 발급받는다. | 가상 관리자 계정(Service Account)으로 인증 절차를 거쳐 Access Token을 발급받는다. |
| 용도 | 모바일 앱이나 웹에 API 연계를 통합하는 경우. | Bot 및 배치 처리와 같은 시스템이 API를 사용하는 경우. |
| 인증 방법 | • OAuth 2.0 (Authorization Code Grant) • OIDC(OpenID Connect) | OAuth 2.0을 확장한 JWT 기반 메서드 |
| 액세스 범위 | 인증된 구성원의 권한을 Access Token에 위임한다. 권한 범위는 OAuth scope로 지정한다. | 관리자 권한을 Access Token에 위임한다. 권한 범위는 OAuth scope로 지정한다. |
| 발급 방법 | 로그인 화면이 표시되고 구성원 계정(ID/비밀번호)으로 로그인하여 Authorization Code를 요청한다. | Service Account 정보에서 JWT를 생성하고 권한을 요청한다. |
자세한 내용은 각 인증 방법의 페이지를 참고한다.
ID Token로 로그인한 구성원의 정보를 취득할 수 있다. ID Token은 OpenID Connect Core 1.0(이하, OIDC)에서 정의된 것으로 검증과 함께 제공된다.
User API로도 구성원 정보를 조회할 수 있지만, ID Token을 이용하면 별도의 검증 절차를 거쳐 비교적 안전하게 구성원 정보를 취득할 수 있다는 차이가 있다.
ID Token은 OIDC에 기반한 방법으로 발급·검증할 수 있다.
주의
- ID Token은 User Account 인증으로만 발급받을 수 있다. Service Account 인증 시 발급이 불가하다. 자세한 내용은 ID토큰 이용 방법을 참고한다.
토큰 발급 시 필요한 클라이언트 자격 정보 관리 및 권한 범위 등의 설정은 클라이언트 앱에서 할 수 있다.
클라이언트 앱이란 API로 조직, 구성원, 캘린더, Bot 등의 리소스를 조작할 때 Token 게시에 필요한 정보나 앱 전용 가상 관리자 계정(Service Account) 등 API를 이용할 때 필요한 정보의 관리 단위이다.
앱 이용 목적에 따라 다음과 같은 앱 유형이 있다.
앱 유형은 앱을 만들 때 선택한다. 앱 생성 후 앱 유형을 변경할 수 없다. Provisioning 관리에 관한 자세한 정보는 "Long-lived Token 발급"의 Provisioning 앱을 참고한다.
인증 앱에서는 아래의 정보를 관리합니다.
클라이언트 앱의 기본 정보이다.
| 항목 | 설명 |
|---|---|
| 앱 이름 | 앱을 추가할 때 지정하는 앱 이름. 변경할 수 있다. |
| 앱 설명 | 앱에 관한 설명을 추가할 수 있다. |
구성원 계정 인증과 서비스 계정 인증에 필요한 정보이다.
| 항목 | 설명 |
|---|---|
| Client ID | 앱을 식별하는 ID. 앱을 만들면 자동으로 생성되며 변경할 수 없다. |
| Client Secret | Client ID와 함께 사용되는 비밀 정보. 앱을 만들면 자동으로 게시되며 변경할 수 없다. |
| OAuth Scopes | 앱의 액세스 권한 범위. 자세한 내용은 OAuth Scopes를 참고한다. |
| Token 설정 | 앱의 토큰 동작. Access Token의 유효 기간과 토큰 갱신 시 동작을 선택할 수 있다. |
| 앱 접근 권한 | 앱에 접근할 수 있는 권한. 앱을 수정 및 삭제할 수 있는 구성원을 지정할 수 있다. |
구성원 계정 인증에 필요한 정보이다.
| 항목 | 설명 |
|---|---|
| Redirect URL | 구성원 계정 인증에서 사용자 인증에 성공하면 입력한 Redirect URL로 Authorization Code가 전송된다. Authorization Code는 요청 정보에 포함되는 redirect_uri 파라미터가 클라이언트 앱의 Redirect URL로 등록되어 있는지 확인한 후 발급된다. • HTTPS URL을 등록해야 한다. • 하위 도메인도 개별적으로 등록해야 한다.(예: https://sub.domain) • 최대 100개까지 등록할 수 있다. |
| OIDC Logout Redirection - Redirect URL | OAuth Scopes에서 openid를 선택한 경우에만 설정할 수 있다. OpenID Connect(OIDC)의 RP Initiated Logout에 기반하여 로그아웃 후 리다이렉트할 URL을 등록한다. • HTTPS URL을 등록해야 한다. • 하위 도메인도 개별적으로 등록해야 한다.(예: https://sub.domain) • 최대 100개까지 등록할 수 있다. |
서비스 계정 인증에 필요한 정보이다.
| 항목 | 설명 |
|---|---|
| Service Account | 가상 관리자 계정. 클라이언트 앱 하나당 하나의 서비스 계정을 발급받을 수 있으며 더 이상 필요하지 않으면 삭제할 수 있다. |
| Private Key | Service Account와 함께 사용되는 개인 키. Priavate Key는 재발행할 수 있으며, 재발행하면 이전에 발급받은 키는 사용할 수 없다. |