Classic/VPC 환경에서 이용 가능합니다.
등록한 Application을 Ncloud Single Sign-On에 연동하는 방법을 설명합니다. 연동은 Ncloud Single Sign-On에서 제공하는 연동 API를 통해 진행합니다. Ncloud Single Sign-On 연동 API가 제공하는 기능은 다음과 같습니다.
- Ncloud Single Sign-On 연동 API를 사용하기 전에 OAuth 2.0과 관련된 주요 개념을 Ncloud Single Sign-On 개념에서 학습하는 것을 권장합니다.
- 여기에서는 Ncloud Single Sign-On 연동 시 사용하는 API만 설명합니다. 네이버 클라우드 플랫폼의 Ncloud Single Sign-On이 제공하는 전체 API에 대한 설명은 Ncloud Single Sign-On API 가이드를 참고해 주십시오.
권한 부여
Resource Owner와 상호 작용하고 보호된 리소스에 접근하는 권한을 부여받기 위해 필요한 API를 설명합니다.
요청
Client가 보호된 리소스에 접근할 수 있도록 IDP에 보내는 요청은 다음과 같습니다.
- 요청 Path
파라미터명 타입 필수 여부 제약 사항 설명 Tenant Id or Alias
String 필수 - Tenant 생성 시 발급받은 Tenant ID 또는 Tenant Alias - 요청 파라미터
파라미터명 타입 필수 여부 제약 사항 설명 response_type
String 필수 code
또는token
Authorization Code 또는 Implicit 플로우 진행 시 필요한 값 client_id
String 필수 - Application 등록 시 발급받은 Client ID redirect_uri
String 필수 Application 등록 시 입력한 Redirect URI와 반드시 일치 권한 부여 완료 후 이동하게 되는 페이지의 URL scope
String 필수 - 접근 가능 범위. 추가 범위를 요청하기 위해서는 하나 이상의 범위 값을 공백으로 구분하여 포함. state
String 선택 - CSRF 방어를 위한 임의의 값. state 권한 부여 완료 후 state를 포함해 redirect_uri
에 입력한 페이지로 이동code_challenge
String 선택 Access Type
이 public일 경우 사용PKCE 적용 시 필요한 Code Challenge의 값 code_challenge_method
String 선택 Access Type
이 public일 경우 사용,plain
또는S256
PKCE 적용 시 필요한 Code Challenge Method의 값
예시는 다음과 같습니다.
-
response_type
이code
인 경우 -
code_challenge
및code_challenge_method
를 추가하여 권한 부여를 요청한 경우 -
response_type
이token
인 경우
응답
요청에 대한 응답은 다음과 같습니다.
-
response_type
이code
인 경우파라미터명 타입 필수 여부 제약 사항 설명 redirect_uri
String 필수 요청 시 포함한 redirect_uri
권한 부여 완료 후 이동하게 되는 페이지의 URL code
String 필수 유출 위험을 방지하기 위해 1분 후 만료 IDP에서 생성한 Authorization code state
String 선택 - Client가 요청한 값 -
response_type
이token
인 경우파라미터명 타입 필수 여부 제약 사항 설명 redirect_uri
String 필수 요청 시 포함한 redirect_uri
권한 부여 완료 후 이동하게 되는 페이지의 URL access_token
String 필수 - 권한이 부여된 Access Token expires_in
Number 필수 - Access Token의 유효 기간 state
String 선택 - Client가 요청한 값
Token 발급
접근 권한이 부여된 후 자격 증명을 위한 Token을 발급받기 위해 필요한 API를 설명합니다.
요청
권한 부여 후에, 또는 Refresh Token을 사용하여 Access Token이나 ID Token을 발급받기 위해 보내는 요청은 다음과 같습니다.
- 요청 Path
파라미터명 타입 필수 여부 제약 사항 설명 Tenant Id or Alias
String 필수 - Tenant 생성 시 발급받은 Tenant ID 또는 Tenant Alias - 요청 헤더
헤더명 타입 필수 여부 제약 사항 설명 Authorization
String 선택 Access Type
이 public일 경우 사용, Basic Base64({Client Id}:{Client Secret})
Client 식별자 Content-Type
String 필수 application/x-www-form-urlencoded
리소스의 미디어 타입 - 요청 파라미터
파라미터명 타입 필수 여부 제약 사항 설명 grant_type
String 필수 authorization_code
또는refresh_token
Token 반환 방식 code
String 선택 grant_type
이authorization_code
일 경우 사용IDP가 전달한 Authorization code redirect_uri
String 선택 grant_type
이authorization_code
일 경우 사용권한 부여 요청 시 포함한 redirect_uri
scope
String 선택 grant_type
이refresh_token
일 경우 사용수정할 scope
code_verifier
String 선택 Access Type
이 public일 경우 사용 ,grant_type
이authorization_code
일 경우 사용되며, 기존에 부여한scope
의 범위보다 같거나 작아야 함권한 부여 요청 시 포함한 code_challenge
,code_challenge_method
에 대응되는 값client_id
String 선택 Access Type
이 public일 경우 사용Application 등록 시 발급받은 Client ID
예시는 다음과 같습니다.
-
권한 부여 후 Authorization code를 포함하여 Access Token 발급을 요청할 경우
-
권한 부여 후 Access Token 발급 요청에
code_verifier
가 포함된 경우 -
Refresh Token으로 Access Token 발급을 요청할 경우
응답
요청에 대한 응답은 다음과 같습니다.
파라미터명 | 타입 | 필수 여부 | 제약 사항 | 설명 |
---|---|---|---|---|
access_token |
String | 필수 | - | 권한이 부여된 Access Token |
token_type |
String | 필수 | Bearer | Token의 형식 |
expires_in |
Number | 필수 | - | Access Token의 유효 기간 |
refresh_token |
String | 필수 | - | Access Token 발급 시 사용되는 Refresh Token의 값 |
Token 취소
Access Token 또는 Refresh Token을 취소할 때 필요한 API를 설명합니다.
요청
Access Token 또는 Refresh Token을 취소하기 위해 보내는 요청은 다음과 같습니다.
- 요청 Path
파라미터명 타입 필수 여부 제약 사항 설명 Tenant Id or Alias
String 필수 - Tenant 생성 시 발급받은 Tenant ID 또는 Tenant Alias - 요청 헤더
헤더명 타입 필수 여부 제약 사항 설명 Authorization
String 필수 Basic Base64 ({Client Id}:{Client Secret})
Client 식별자 Content-Type
String 필수 application/x-www-form-urlencoded
리소스의 미디어 타입 - 요청 파라미터
파라미터명 타입 필수 여부 제약 사항 설명 token
String 필수 - 취소하려는 Token token_type_hint
String 필수 access_token
또는refresh_token
취소하려는 Token의 타입
응답
요청에 대한 응답은 다음과 같습니다.
인증된 사용자의 클레임 반환
인증된 사용자에 대한 클레임을 반환하기 위해 필요한 API를 설명합니다.
요청
사용자 클레임을 반환하기 위해 보내는 요청은 다음과 같습니다.
- 요청 Path
파라미터명 타입 필수 여부 제약 사항 설명 Tenant Id or Alias
String 필수 - Tenant 생성 시 발급받은 Tenant ID 또는 Tenant Alias - 요청 헤더
헤더명 타입 필수 여부 제약 사항 설명 Authorization
String 필수 Bearer {AccessToken}
Client 식별자
응답
요청에 대한 응답은 다음과 같습니다.
파라미터명 | 타입 | 필수 여부 | 제약 사항 | 설명 |
---|---|---|---|---|
sub |
String | 필수 | - | Subject(end-user) 식별자 |
id_no |
String | 필수 | - | 네이버 클라우드 플랫폼에서 사용되는 사용자 식별자 |
user_type |
String | 필수 | Customer 또는 Sub |
사용자 유형 |
user_id |
String | 필수 | - | 로그인 아이디 |
user_name |
String | 필수 | - | 사용자 이름 |
mbr_no |
Number | 필수 | - | 사용자의 회원 번호 |
groups |
List | 선택 | - | user_type 이 Sub 일 때 subAccount가 속한 그룹명 목록 |
ID Token 서명 키 반환
ID Token의 서명에 사용되는 공개 키를 반환할 때 필요한 API를 설명합니다.
요청
ID Token 서명에 사용되는 공개 키를 반환하기 위해 보내는 요청은 다음과 같습니다.
- 요청 Path
파라미터명 타입 필수 여부 제약 사항 설명 Tenant Id or Alias
String 필수 - Tenant 생성 시 발급받은 Tenant ID 또는 Tenant Alias
응답
요청에 대한 응답은 다음과 같습니다.
파라미터명 | 타입 | 필수 여부 | 제약 사항 | 설명 |
---|---|---|---|---|
kty |
String | 필수 | - | IETF Datatracker의 Key Type 참고 |
e |
String | 필수 | - | IETF Datatracker의 RSA Exponent 참고 |
kid |
String | 필수 | - | IETF Datatracker의 Key ID 참고 |
n |
String | 필수 | - | IETF Datatracker의 RSA Modulus 참고 |
Endpoint
API의 Endpoint는 다음과 같습니다.
Endpoint | URI Path | 설명 |
---|---|---|
Authorization Endpoint | /tenants/{Tenant Id or Alias}/oauth2/authorize |
Client가 Resource Owner와 상호 작용하고 보호된 리소스에 접근할 수 있는 권한 부여 요청 |
Token Endpoint | /tenants/{Tenant Id or Alias}/oauth2/token |
접근 권한 또는 Refresh Token을 통해 Access Token, ID Token 발급 |
Token Revocation Endpoint | /tenants/{Tenant Id or Alias}/oauth2/revoke |
Access Token 또는 Refresh Token 취소 |
User Info Endpoint | /tenants/{Tenant Id or Alias}/oauth2/userinfo |
인증된 사용자에 대한 클레임 반환 |