ROLE 서비스를 이용해 권한을 체크하기 위해서는 RESTful API를 호출하거나, 클라이언트 SDK를 이용하여야 합니다.
ROLE API를 사용하려면 Appkey와 SecretKey가 필요합니다. Appkey는 API 호출 시 요청 URL에 포함하여 특정 리소스를 가리키고 식별하는 데 사용되며, SecretKey는 API에 대한 접근을 제어하는 비밀 키입니다. Appkey 및 SecretKey 확인 및 사용에 대한 자세한 내용은 Appkey를 참고하세요. Appkey 대신 프로젝트 통합 Appkey를 사용할 수도 있습니다. 프로젝트 통합 Appkey에 대한 자세한 내용은 프로젝트 통합 Appkey를 참고하세요.
모든 API 요청에 대해 HTTP 응답 코드는 200으로 응답합니다. 자세한 응답 결과는 Response Body의 header 항목을 참고합니다.
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
| Key | Type | Description |
|---|---|---|
| header | Object | 응답 헤더 |
| header.isSuccessful | boolean | 성공 여부 |
| header.resultCode | int | 응답 코드. 성공 시 0, 실패 시 오류 코드 반환 |
| header.resultMessage | String | 응답 메시지. 성공 시 "SUCCESS", 실패 시 오류 메시지 반환 |
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/users |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Request Body]
{
"users": [
{
"description": "",
"relations": [
{
"roleId": "",
"scopeId": ""
}
],
"userId": ""
}
]
}
| Key | Type | Required | Description |
|---|---|---|---|
| users | List | Yes | User 등록 정보 |
| users[0].userId | String | Yes | User ID 최대 48글자까지 등록 가능합니다. -_@. 특수문자를 사용할 수 있으며, ID의 시작과 끝은 반드시 문자 및 숫자가 와야 합니다. |
| users[0].description | String | Yes | User 설명 최대 128글자까지 등록 가능합니다. |
| users[0].relations | List | No | User - Role 관계 리스트 |
| users[0].relations[0].roleId | String | Yes | Role ID |
| users[0].relations[0].scopeId | String | Yes | Scope ID |
| users[0].relations[0].validStartDate | Date | No | User에게 부여된 Role의 유효 기간 시작 날짜(2024-02-27 이후 지원 종료) |
| users[0].relations[0].validEndDate | Date | No | User에게 부여된 Role의 유효 기간 종료 날짜(2024-02-27 이후 지원 종료) |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"errors" : [
{
"code": 0,
"message": ""
}
]
}
| Key | Type | Description |
|---|---|---|
| errors | List | 오류 리스트, 오류가 발생하지 않았다면 빈 리스트를 반환합니다. |
| errors[0].code | int | 오류 코드 |
| errors[0].message | String | 오류 메시지 |
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/users/{userId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"user": {
"appKey": "",
"description": "",
"regYmdt": "2019-11-01T00:00:00.000+0000",
"userId": ""
}
}
| Key | Type | Description |
|---|---|---|
| user | Object | User 정보 |
| user.appKey | String | 앱키 |
| user.userId | String | User ID |
| user.description | String | User 설명 |
| user.regYmdt | Timestamp | 등록일 |
Scope ID와 Role ID를 넘겨주면, 해당 역할을 가진 User만 반환합니다. includeRelation 을 true로 설정하면, Role ID와 연관 관계에 있는 Role 을 가진 User도 포함하여 반환합니다.
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/users |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Query Parameter]
| Key | Value | Required |
|---|---|---|
| scopeId | Scope ID | No |
| roleId | Role ID | No |
| includeRelation | true or false | No |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "Success."
},
"users" :
[
{
"description" : "",
"regYmdt" : "2019-11-01T00:00:00.000+0000",
"relations" :
[
{
"roleId" : "",
"scopeId" : ""
}
],
"userId" : ""
}
]
}
| Key | Type | Description |
|---|---|---|
| users | List | User 정보 리스트 |
| users[0].appKey | String | 앱키 |
| users[0].userId | String | User ID |
| users[0].description | String | User 설명 |
| users[0].regYmdt | Timestamp | 등록일 |
| users[0].relations | List | User에 할당된 관계 리스트 |
| users[0].relations[0].roleId | String | Role ID |
| users[0].relations[0].scopeId | String | Scope ID |
| users[0].relations[0].validStartDate | Date | User에게 부여된 Role의 유효 기간 시작 날짜(2024-02-27 이후 지원 종료) |
| users[0].relations[0].validEndDate | Date | User에게 부여된 Role의 유효 기간 종료 날짜(2024-02-27 이후 지원 종료) |
User 정보를 한번에 조회하는 API
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/users/relations |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Request Body]
{
"usersIds": [
""
]
}
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "Success."
},
"users" :
[
{
"description" : "",
"regYmdt" : "2019-11-01T00:00:00.000+0000",
"relations" :
[
{
"userId" : "",
"roleId" : "",
"scopeId" : ""
}
],
"userId" : ""
}
]
}
| Key | Type | Description |
|---|---|---|
| users | List | User 정보 리스트 |
| users[0].appKey | String | 앱키 |
| users[0].userId | String | User ID |
| users[0].description | String | User 설명 |
| users[0].regYmdt | Timestamp | 등록일 |
| users[0].relations | List | User에 할당된 관계 리스트 |
| users[0].relations[0].userId | String | User ID |
| users[0].relations[0].roleId | String | Role ID |
| users[0].relations[0].scopeId | String | Scope ID |
| users[0].relations[0].validStartDate | Date | User에게 부여된 Role의 유효 기간 시작 날짜(2024-02-27 이후 지원 종료) |
| users[0].relations[0].validEndDate | Date | User에게 부여된 Role의 유효 기간 종료 날짜(2024-02-27 이후 지원 종료) |
[Method, URL]
| Method | URI |
|---|---|
| PUT | /role/v1.0/appkeys/{appKey}/users/{userId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
[Request Body]
{
"description": ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| description | String | Yes | User 설명 |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| DELETE | /role/v1.0/appkeys/{appKey}/users/{userId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/users/{userId}/authorizations |
[Request Header]
| Key | Value |
|---|---|
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
[Request Body]
{
"resources": [
{
"operationId": "",
"resourceId": "",
"resourcePath": "",
"scopeId": ""
}
]
}
| Key | Type | Required | Description |
|---|---|---|---|
| resources | List | Yes | 권한 체크 할 Resource 리스트 |
| resources[0].operationId | String | Yes | Operation ID |
| resources[0].resourceId | String | No | Resource ID, Resource ID와 Path 중 하나의 값은 반드시 넣어야 합니다. |
| resources[0].resourcePath | String | No | Resource Path, Resource ID와 Path 중 하나의 값은 반드시 넣어야 합니다. |
| resources[0].scopeId | String | Yes | Scope ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"authorizations": [
{
"operationId": "",
"permission": true,
"resourceId": "",
"resourcePath": "",
"scopeId": ""
}
]
}
| Key | Type | Description |
|---|---|---|
| authorizations | List | 권한 체크 결과 리스트 |
| authorizations[0].operationId | String | Operation ID |
| authorizations[0].permission | boolean | 권한 체크 결과 |
| authorizations[0].resourceId | String | Resource ID |
| authorizations[0].resourcePath | String | Resource Path |
| authorizations[0].scopeId | String | Scope ID |
User에 Role이 부여됬는지 여부를 반환합니다. 연관 관계에 따른 Role도 포함합니다.
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/users/{userId}/authorizations/roles |
[Request Header]
| Key | Value |
|---|---|
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
[Request Body]
{
"roles": [
{
"roleId": "",
"scopeId": ""
}
]
}
| Key | Type | Required | Description |
|---|---|---|---|
| roles | List | Yes | 권한 체크 할 Role 리스트 |
| roles[0].roleId | String | Yes | Role ID |
| roles[0].scopeId | String | Yes | Scope ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"authorizations": [
{
"permission": true,
"roleId": "",
"scopeId": ""
}
]
}
| Key | Type | Description |
|---|---|---|
| authorizations | List | 권한 체크 결과 리스트 |
| authorizations[0].permission | boolean | 권한 체크 결과 |
| authorizations[0].roleId | String | Role ID |
| authorizations[0].scopeId | String | Scope ID |
직접적으로 부여한 Role만 반환합니다. Role의 연관 관계에 따른 Role은 반환하지 않습니다.
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/users/{userId}/roles |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
| userId | User ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"relations": [
{
"appKey": "",
"roleId": "",
"scopeId": "",
"userId": ""
}
]
}
| Key | Type | Description |
|---|---|---|
| relations | List | User - Role 관계 리스트 |
| relations[0].appKey | String | 앱키 |
| relations[0].roleId | String | Role ID |
| relations[0].scopeId | String | Scope ID |
| relations[0].userId | String | User ID |
| relations[0].validStartDate | Date | User에게 부여된 Role의 유효 기간 시작 날짜(2024-02-27 이후 지원 종료) |
| relations[0].validEndDate | Date | User에게 부여된 Role의 유효 기간 종료 날짜(2024-02-27 이후 지원 종료) |
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/users/{userId}/roles |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
[Request Body]
{
"roleId": "",
"scopeId": "",
"createUserIfNotExist": false
}
| Key | Type | Required | Description |
|---|---|---|---|
| roleId | String | Yes | Role ID |
| scopeId | String | Yes | Scope ID |
| createUserIfNotExist | Boolean | No | User가 없을때 User를 생성할 지 여부 |
| validStartDate | Date | No | User에게 부여된 Role의 유효 기간 시작 날짜(2024-02-27 이후 지원 종료) |
| validEndDate | Date | No | User에게 부여된 Role의 유효 기간 종료 날짜(2024-02-27 이후 지원 종료) |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| DELETE | /role/v1.0/appkeys/{appKey}/users/{userId}/roles |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
[Query Parameter]
| Key | Value | Required |
|---|---|---|
| roleId | Role ID | Yes |
| scopeId | Scope ID | Yes |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| PUT | /role/v1.0/appkeys/{appKey}/users/{userId}/roles |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
[Request Body]
{
"relations": [
{
"roleId": "",
"scopeId": ""
}
]
}
| Key | Type | Required | Description |
|---|---|---|---|
| relations | List | No | User - Role 관계 리스트 |
| relations[0].roleId | String | Yes | Role ID |
| relations[0].scopeId | String | Yes | Scope ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| PUT | /role/v1.0/appkeys/{appKey}/users/{userId}/roles/valid-period |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| userId | User ID |
[Request Body]
{
"roleId" : "",
"scopeId" : ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| roleId | String | Yes | Role ID |
| scopeId | String | Yes | Scope ID |
| validStartDate | Date | No | User에게 부여된 Role의 유효 기간 시작 날짜(2024-02-27 이후 지원 종료) |
| validEndDate | Date | No | User에게 부여된 Role의 유효 기간 종료 날짜(2024-02-27 이후 지원 종료) |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/scopes |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Request Body]
{
"description": "",
"scopeId": ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| scopeId | String | Yes | Scope ID 최대 36글자까지 등록 가능합니다. -_ 특수문자를 사용할 수 있으며, ID의 시작과 끝은 반드시 문자 및 숫자가 와야 합니다. |
| description | String | Yes | Scope 설명 최대 128글자까지 등록 가능합니다. |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/scopes/{scopeId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| scopeId | Scope ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"scope": {
"appKey": "",
"description": "",
"scopeId": ""
}
}
| Key | Type | Description |
|---|---|---|
| scope | Object | Scope 정보 |
| scope.appKey | String | 앱키 |
| scope.scopeId | String | Scope ID |
| scope.description | String | Scope 설명 |
[Method, URL]
| Method | URI |
|---|---|
| PUT | /role/v1.0/appkeys/{appKey}/scopes/{scopeId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| scopeId | Scope ID |
[Request Body]
{
"description": ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| description | String | Yes | Scope 설명 |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| DELETE | /role/v1.0/appkeys/{appKey}/scopes/{scopeId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| scopeId | Scope ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
Scope ID와 관련된 연관 관계를 조회합니다.
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/scopes/{scopeId}/relations |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| scopeId | Scope ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"relations": [
{
"appKey": "",
"roleId": "",
"scopeId": "",
"userId": ""
}
]
}
| Key | Type | Description |
|---|---|---|
| relations | List | User - Role 관계 리스트 |
| relations[0].appKey | String | 앱키 |
| relations[0].roleId | String | Role ID |
| relations[0].scopeId | String | Scope ID |
| relations[0].userId | String | User ID |
페이지 형태로 리스트를 조회할 수 있습니다. page에 1, itemsPerPage에 10을 입력하면 처음 10개의 리스트를 조회합니다.
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/scopes |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Query Parameter]
| Key | Value | Required | Description |
|---|---|---|---|
| scopeId | Scope ID | No | |
| description | No | 설명 | |
| page | No | 검색을 원하는 페이지 번호로 1부터 시작 | |
| itemsPerPage | No | 결과를 원하는 scopes 의 레코드 수 |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "Success"
},
"scopes": [
{
"description": "",
"scopeId": ""
}
],
"totalItems": 0
}
| Key | Type | Description |
|---|---|---|
| scopes | List | Scope 정보 |
| scopes[0].description | String | Scope 설명 |
| scopes[0].scopeId | String | Scope ID |
| totalItems | int | 총 scope 수 |
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/roles |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Request Body]
{
"description": "",
"roleId": "",
"roleName" : "",
"roleGroup" : "",
"exposureOrder": 0
}
| Key | Type | Required | Description |
|---|---|---|---|
| roleId | String | Yes | Role ID 최대 128글자까지 등록 가능합니다. -, _, ., : 특수문자를 사용할 수 있으며, ID의 시작과 끝은 반드시 문자 및 숫자가 와야 합니다. |
| description | String | Yes | Role 설명 최대 128글자까지 등록 가능합니다. |
| roleName | String | No | Role 이름 의미 있는 이름을 부여할 수 있습니다. 최대 128글자까지 등록 가능합니다. |
| roleGroup | String | No | Role Group Role들을 그룹핑하여 관리 목적으로 사용할 수 있습니다. 최대 128글자까지 등록 가능합니다. |
| exposureOrder | int | No | 노출 순서 숫자만 가능합니다. 기본값은 0입니다. |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/roles/{roleId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| roleId | Role ID |
| roleName | Role 이름 |
| roleGroup | Role Group |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"role": {
"appKey": "",
"description": "",
"roleId": "",
"roleName": "",
"roleGroup": "",
"exposureOrder": 0,
"regDateTime": "",
"roleTags": [ {"roleTagId": ""}]
}
}
| Key | Type | Description |
|---|---|---|
| role | Object | Role 정보 |
| role.appKey | String | 앱키 |
| role.roleId | String | Role ID |
| role.description | String | Role 설명 |
| role.roleName | String | Role 이름 |
| role.roleGroup | String | Role 그룹 이름 |
| role.exposureOrder | int | 노출 순서 |
| role.regDateTime | String | 등록일시 |
| role.roleTags | Object | Tag 정보 |
| role.roleTags.roleTagId | String | Tag ID |
[Method, URL]
| Method | URI |
|---|---|
| PUT | /role/v1.0/appkeys/{appKey}/roles/{roleId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| roleId | Role ID |
[Request Body]
{
"description": "",
"roleName": "",
"roleGroup": "",
"exposureOrder": 0
}
| Key | Type | Required | Description |
|---|---|---|---|
| description | String | Yes | User 설명 |
| roleName | String | No | Role 이름 의미 있는 이름을 부여할 수 있습니다. 최대 128글자까지 등록 가능합니다. |
| roleGroup | String | No | Role Group Role들을 그룹핑하여 관리 목적으로 사용할 수 있습니다. 최대 128글자까지 등록 가능합니다. |
| exposureOrder | int | No | 노출 순서 |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| Delete | /role/v1.0/appkeys/{appKey}/roles/{roleId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| roleId | Role ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/roles/{roleId}/relations |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| roleId | Role ID |
[Request Body]
{
"relatedRoleId": ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| relatedRoleId | String | Yes | 연관 관계를 설정 할 Role ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| DELETE | /role/v1.0/appkeys/{appKey}/roles/{roleId}/relations/{relatedRoleId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| roleId | Role ID |
| relatedRoleId | 연관 Role ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/roles/{roleId}/users |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| roleId | Role ID |
[Request Body]
{
"createUserIfNotExist": false,
"users": [
{
"scopeId": "",
"userId": ""
}
]
}
| Key | Type | Required | Description |
|---|---|---|---|
| createUserIfNotExist | Boolean | No | User 가 없을때 User를 생성할 지 여부 |
| users | List | Yes | User 리스트 |
| users[0].scopeId | String | No | Scope ID, 없을 시 기본값 ALL |
| users[0].userId | String | Yes | User ID |
| users[0].validStartDate | Date | No | User에게 부여된 Role의 유효 기간 시작 날짜(2024-02-27 이후 지원 종료) |
| users[0].validEndDate | Date | No | User에게 부여된 Role의 유효 기간 종료 날짜(2024-02-27 이후 지원 종료) |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
페이지 형태로 리스트를 조회할 수 있습니다. page에 1, itemsPerPage에 10을 입력하면 처음 10개의 리스트를 조회합니다.
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/roles |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Query Parameter]
| Key | Value | Required |
|---|---|---|
| roleId | Role ID | No |
| description | 설명 | No |
| roleName | Role 이름 | No |
| roleGroup | Role Group 이름 | No |
| roleTagIds | Tag Id 조건(;는 OR, ,는 AND) | No |
| page | 검색을 원하는 페이지 번호로 1부터 시작 | No |
| itemsPerPage | 결과를 원하는 scopes의 레코드 수 | No |
roleTagIds를 통해서 검색 시 Role에 설정 한 Tag를 AND 또는 OR 조건으로 조회할 수 있습니다. 예를 들어 Role에 A와 B Tag를 가지고 있는 Role을 검색 시에는 A;B로 조건을 만들 수 있고, A 나 B Tag 중 하나만 있어도 검색을 하고 싶다면 A,B로 조건을 만들 수 있습니다. (A;B),C와 같은 조건 생성도 가능합니다.
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "Success."
},
"roles": [
{
"description": "",
"relatedRoleIds": [
{}
],
"roleId": "",
"roleName": "",
"roleGroup": "",
"exposureOrder": 0,
"regDateTime": "",
"roleTags": [{ "roleTagId": ""}]
}
],
"totalItems": 0
}
| Key | Type | Description |
|---|---|---|
| roles | List | Role 정보 |
| roles[0].description | String | Role 설명 |
| roles[0].relatedRoleIds | List | 연관 Role ID 목록 |
| roles[0].roleId | String | Role ID |
| roles[0].roleName | String | Role 이름 |
| roles[0].roleGroup | String | Role 그룹 이름 |
| roles[0].exposureOrder | int | 노출 순서 |
| roles[0].regDateTime | String | 등록일시 |
| roles[0].roleTags | Object | Tag 정보 |
| roles[0].roleTags.roleTagId | String | Tag ID |
| totalItems | int | 총 Role 수 |
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/roles/{roleId}/tags |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| roleId | Role ID |
[Request Body]
{
"roleTagId": ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| roleTagId | String | Yes | 부여할 Tag ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| DELETE | /role/v1.0/appkeys/{appKey}/roles/{roleId}/tags/{roleTagId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| roleId | Role ID |
| roleTagId | Tag ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/roles/{roleId}/tags |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| roleId | Role ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"roleTags" : [{
"roleTagId" : ""
}]
}
| Key | Type | Description |
|---|---|---|
| roleTags | List | Tag 정보 |
| roleTags[0].roleTagId | String | Tag ID |
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/resources |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Request Body]
{
"description": "",
"metadata": "",
"name": "",
"path": "",
"priority": 0,
"resourceId": "",
"uiPath": ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| resourceId | String | Yes | Resource ID 최대 32글자까지 등록 가능합니다. -_ 특수문자를 사용할 수 있으며, ID의 시작과 끝은 반드시 문자 및 숫자가 와야 합니다. |
| name | String | No | 필요 없음. |
| path | String | Yes | Resource 경로 최대 1024글자까지 등록 가능합니다. Resource 경로는 '/'의 조합으로 이루어져야 합니다. 예외적으로 Path Variable을 표현할 수 있는 {}가 올 수 있습니다. |
| description | String | Yes | Resource 설명 최대 128글자까지 등록 가능합니다. |
| priority | smallint | Yes | 같은 경로에서 보여지는 우선순위 -32768~32767 값이 올 수 있으며, 낮을수록 앞에 보이게 됩니다. |
| metadata | String | Yes | 사용자 정의 데이터 최대 65536글자까지 등록 가능합니다. |
| uiPath | String | Yes | UI Path 경로 최대 1024글자까지 등록 가능합니다. UI Path 경로는 Resource 이름과 '/'의 조합으로 이루어져야 합니다. |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/resources/hierarchy |
[Request Header]
| Key | Value |
|---|---|
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Query Parameter]
| Key | Value | Required |
|---|---|---|
| userId | User ID | No |
| roleId | Role ID | No |
| scopeId | Scope ID | No |
| operationId | Operation ID | No |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"resources": [
{
"description": "",
"metadata": "",
"name": "",
"path": "",
"priority": 0,
"resourceId": "",
"resources": []
}
]
}
| Key | Type | Description |
|---|---|---|
| resources | List | Resource 리스트 |
| resources[0].resourceId | String | Resource ID |
| resources[0].description | String | Resource 설명 |
| resources[0].name | String | Resource 이름 |
| resources[0].path | String | Resource 경로 |
| resources[0].priority | smallint | 우선순위 |
| resources[0].metadata | String | 사용자 정의 데이터 |
| resources[0].resources | List | Resource 리스트 |
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/resources/{resourceId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| resourceId | Resource ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"resource": {
"appKey": "",
"description": "",
"metadata": "",
"name": "",
"path": "",
"priority": 0,
"resourceId": ""
}
}
| Key | Type | Description |
|---|---|---|
| resource | Object | Resource 정보 |
| resource.appKey | String | 앱키 |
| resource.resourceId | String | Resource ID |
| resource.description | String | Resource 설명 |
| resource.name | String | Resource 이름 |
| resource.path | String | Resource 경로 |
| resource.priority | smallint | 우선순위 |
| resource.metadata | String | 사용자 정의 데이터 |
[Method, URL]
| Method | URI |
|---|---|
| PUT | /role/v1.0/appkeys/{appKey}/resources/{resourceId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| resourceId | Resource ID |
[Request Body]
{
"description": "",
"metadata": "",
"name": "",
"path": "",
"priority": 0
}
| Key | Type | Required | Description |
|---|---|---|---|
| name | String | No | 필요 없음. |
| path | String | Yes | Resource 경로 최대 1024글자까지 등록 가능합니다. Resource 경로는 '/'의 조합으로 이루어져야 합니다. 예외적으로 Path Variable을 표현할 수 있는 {}가 올 수 있습니다. |
| description | String | Yes | Resource 설명 최대 128글자까지 등록 가능합니다. |
| priority | smallint | Yes | 같은 경로에서 보여지는 우선순위 -32768~32767 값이 올 수 있으며, 낮을수록 앞에 보이게 됩니다. |
| metadata | String | Yes | 사용자 정의 데이터 최대 65536글자까지 등록 가능합니다. |
| uiPath | String | Yes | UI Path 경로 최대 1024글자까지 등록 가능합니다. UI Path 경로는 Resource 이름과 '/'의 조합으로 이루어져야 합니다. |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| DELETE | /role/v1.0/appkeys/{appKey}/resources/{resourceId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| resourceId | Resource ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/resources/{resourceId}/authorizations |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| resourceId | Resource ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"authorizations": [
{
"operationId": "",
"roleId": ""
}
]
}
| Key | Type | Description |
|---|---|---|
| authorizations | List | 권한 정보 리스트 |
| authorizations[0].operationId | String | Operation ID |
| authorizations[0].roleId | String | Role ID |
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/resources/{resourceId}/authorizations |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| resourceId | Resource ID |
[Request Body]
{
"operationId": "",
"roleId": ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| operationId | String | Yes | Operation ID |
| scopeId | String | No | Scope ID, 없을 시 기본값 ALL |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/resources |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Query Parameter]
| Key | Value | Required | Description |
|---|---|---|---|
| userId | No | ||
| roleId | No | ||
| operationId | No |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "Success."
},
"resources": [
{
"description": "",
"metadata": "",
"name": "",
"path": "",
"priority": 0,
"resourceId": "",
"uiPath": ""
}
]
}
| Key | Type | Description |
|---|---|---|
| resources | List | Resource 정보 |
| resources[0].description | String | Resource 설명 |
| resources[0].metadata | String | 사용자 정의 데이터 |
| resources[0].name | String | Resource 이름 |
| resources[0].path | String | Resource 경로 |
| resources[0].priority | smallint | 우선순위 |
| resources[0].resourceId | String | Resource ID |
| resources[0].uiPath | String | uiPath |
[Method, URL]
| Method | URI |
|---|---|
| POST | /role/v1.0/appkeys/{appKey}/operations |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Request Body]
{
"description": "",
"operationId": ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| operationId | String | Yes | Operation ID 최대 32글자까지 등록 가능합니다. -_ 특수문자를 사용할 수 있으며, ID의 시작과 끝은 반드시 문자 및 숫자가 와야 합니다. |
| description | String | Yes | Operation 설명 최대 128글자까지 등록 가능합니다. |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/operations/{operationId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| operationId | Operation ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
},
"operation": {
"appKey": "",
"description": "",
"operationId": ""
}
}
| Key | Type | Description |
|---|---|---|
| operation | Object | Operation 정보 |
| operation.appKey | String | 앱키 |
| operation.operationId | String | Operation ID |
| operation.description | String | Operation 설명 |
[Method, URL]
| Method | URI |
|---|---|
| PUT | /role/v1.0/appkeys/{appKey}/operations/{operationId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| operationId | Operation ID |
[Request Body]
{
"description": ""
}
| Key | Type | Required | Description |
|---|---|---|---|
| description | String | Yes | Operation 설명 |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| DELETE | /role/v1.0/appkeys/{appKey}/operations/{operationId} |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
| operationId | Operation ID |
[Response Body]
{
"header" : {
"isSuccessful" : true,
"resultCode": 0,
"resultMessage" : "Success."
}
}
[Method, URL]
| Method | URI |
|---|---|
| GET | /role/v1.0/appkeys/{appKey}/operations |
[Request Header]
| Key | Value |
|---|---|
| X-Secret-Key | [CONSOLE] 에서 발급받은 SecretKey |
| Content-Type | application/json |
[Path Variable]
| Key | Value |
|---|---|
| appKey | [CONSOLE] 에서 발급받은 앱키 |
[Response Body]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "Success."
},
"operations": [
{
"appKey": "",
"description": "",
"operationId": ""
}
]
}
| Key | Type | Description |
|---|---|---|
| operations | List | Operation 정보 |
| operations[0].appKey | String | 앱키 |
| operations[0].description | String | Operation 설명 |
| operations[0].operationId | String | Operation ID |