인증 관리
네이버 클라우드 플랫폼 Archive Storage는 OpenStack Keystone V3 API를 이용하여 인증하고 토큰을 생성할 수 있습니다. 생성된 토큰은 어카운트, 컨테이너, 오브젝트 오퍼레이션 이용 시 X-Auth-Token 헤더 값으로 입력하여 사용합니다.
버전: v3.8
문서 : https://developer.openstack.org/api-ref/identity/v3/
password 인증 방식을 사용하여 토큰을 생성하고, 포털 마이페이지 > 계정 관리 > 인증키 관리에서 생성한 API 인증키 정보 중 Access Key ID는 user name, Secret Key는 user password로 사용합니다.
토큰 생성 시 project 범위로 한정(scope)은 필수이며 project ID와 domain ID는 Archive Storage 콘솔에서 이용 신청 후 [API 이용 정보 확인] 버튼을 통해 확인할 수 있습니다.
토큰의 유효 시간은 24시간이고 토큰 삭제 요청을 통해 이용을 중지시킬 수 있습니다.
토큰 생성
구문
POST /v3/auth/tokens
요청 예
curl -i -X POST -H "Content-Type: application/json" https://kr.archive.ncloudstorage.com:5000/v3/auth/tokens -d '
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "{access_key_id}",
"password": "{secret_key}",
"domain": {
"id": "{domain_id}"
}
}
}
},
"scope": {
"project": {
"id": "{project_id}"
}
}
}
}'
응답 예
HTTP/1.1 201 Created
Date: Mon, 17 Sep 2018 23:46:11 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
X-Subject-Token: gAAAAABboDzDOzds2V_2uzR9xn-AQkg5RRejRkGD9L5NuhwezSqqxpmY8ZNl48vYnC1GCn21AiffNtRrDedbvVq2usnPDH2qIp-Cq2Rx54fnH406NhhW9OiaKMzFwRzS7-js3j4xGMvEk2bPErmolAT4E1Du0vsF2azycC6sNcIMsVWcvd
Vary: X-Auth-Token
x-openstack-request-id: req-40a163b1-1fcc-423d-8ec3-3f40fd413ab6
Content-Length: 1759
Content-Type: application/json
{
"token": {
"is_domain": false,
"methods": [
"password"
],
"roles": [
{
"id": "488fac210a714fcc91b61a32525b5693",
"name": "user"
}
],
"expires_at": "2018-09-18T23:46:11.000000Z",
"project": {
"domain": {
"id": "default",
"name": "Default"
},
"id": "0a11d053d4804b4c86d26ae1ff48dc1e",
"name": "ncp-test-0"
},
"catalog": [
{
"endpoints": [
{
"region_id": null,
"url": "https://kr.archive.ncloudstorage.com:5000/v3",
"region": null,
"interface": "public",
"id": "3bf62632266c4be0880cd7170ca90f55"
},
{
"region_id": null,
"url": "https://kr.archive.ncloudstorage.com:35357/v3",
"region": null,
"interface": "admin",
"id": "a29ce505b6cb429ea9ca15cb126251f7"
},
{
"region_id": null,
"url": "https://kr.archive.ncloudstorage.com:35357/v3",
"region": null,
"interface": "internal",
"id": "e524bcde8c5a4eec8750acf3e5819d69"
}
],
"type": "identity",
"id": "ae1a92e6b64f4e9886517aaca2540b26",
"name": "keystone"
},
{
"endpoints": [
{
"region_id": "RegionOne",
"url": "https://kr.archive.ncloudstorage.com/v1/AUTH_0a11d053d4804b4c86d26ae1ff48dc1e",
"region": "RegionOne",
"interface": "internal",
"id": "80773860110449b9b78dc3a05f3f6360"
},
{
"region_id": "RegionOne",
"url": "https://kr.archive.ncloudstorage.com/v1/AUTH_0a11d053d4804b4c86d26ae1ff48dc1e",
"region": "RegionOne",
"interface": "public",
"id": "40f7102a57024603a53f41c4d8cb7cf3"
},
{
"region_id": "RegionOne",
"url": "https://kr.archive.ncloudstorage.com",
"region": "RegionOne",
"interface": "admin",
"id": "5297ae442163478e82f6f9630919b93f"
}
],
"type": "object-store",
"id": "fb4cbd0bf18f4beb9ac29b09f0862ce2",
"name": "swift"
}
],
"user": {
"password_expires_at": null,
"domain": {
"id": "default",
"name": "Default"
},
"id": "ac1eca9c1b9f4900a0b1c4a82be49686",
"name": "qQXiRLju7XHMXpmEskHn"
},
"audit_ids": [
"U-O5n4rBSoO5jBykNXYNsw"
],
"issued_at": "2018-09-17T23:46:11.000000Z"
}
}
요청 파라미터
Name | In | Type | Description |
---|---|---|---|
auth | body | object | auth 오브젝트 |
identity | body | object | identity 오브젝트 |
methods | body | array | 인증 방식. password 인증 방식을 사용합니다. |
password | body | object | password 오브젝트 |
user | body | object | user 오브젝트. id, password, domain 입력이 필수입니다. |
domain | body | object | domain 오브젝트. id를 입력해서 사용하고, domain ID는 Archive Storage 콘솔의 [API 이용 정보 확인] 버튼을 통해 확인할 수 있습니다. |
scope | body | object | scope 오브젝트. 토큰 사용 범위를 project로 지정하여 사용합니다. |
project | body | object | project 오브젝트. id를 입력해서 사용하고, project ID는 Archive Storage 콘솔의 [API 이용 정보 확인] 버튼을 통해 확인할 수 있습니다. |
응답 파라미터
Name | In | Type | Description |
---|---|---|---|
X-Subject-Token | header | string | 생성된 토큰. 토큰 값은 request body가 아닌 헤더로 전달합니다. |
token | body | object | token 오브젝트 |
methods | body | array | 인증 방식. password 인증 방식을 사용합니다. |
roles | body | array | role 정보 목록. id, name 정보를 포함합니다. |
expires_at | body | string | 토큰 만료 일시. YYYY-MM-DDThh:mm:ss.sssZ (ISO 8601). 토큰 만료 일시가 null일 경우 만료되지 않습니다. |
issued_at | body | string | 토큰 생성 일시. YYYY-MM-DDThh:mm:ss.sssZ (ISO 8601) |
project | body | object | project 오브젝트. domain, id, name 정보를 포함합니다. |
catalog | body | array | catalog 오브젝트 |
endpoints | body | array | endpoint 정보 목록 |
region_id | body | string | 서비스 endpoint가 속한 리전 정보 |
url | body | string | endpoint URL. |
interface | body | string | 인터페이스 타입. admin 타입은 admin 권한이 있는 유저만 사용가능합니다. |
type | body | string | endpoint 타입 |
audit_ids | body | array | 랜덤으로 생성되는 고유의 값으로 토큰 정보를 조회할 때 사용합니다. |
토큰 삭제
구문
DELETE /v3/auth/tokens
요청 예
curl -i -X DELETE -H "X-Auth-Token: $token" -H "X-Subject-Token: $token_to_delete" https://kr.archive.ncloudstorage.com:5000/v3/auth/tokens
응답 예
HTTP/1.1 204 No Content
Date: Tue, 18 Sep 2018 05:44:00 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
Vary: X-Auth-Token
x-openstack-request-id: req-b6e8efbe-c3f2-41bc-8ca5-1067753318d4
Content-Type: text/plain; charset=UTF-8
요청 파라미터
Name | In | Type | Description |
---|---|---|---|
X-Auth-Token | header | string | 인증을 위한 유효한 토큰 |
X-Subject-Token | header | string | 삭제 대상 토큰. 요청이 성공하는 즉시 이용할 수 없게 됩니다. |
요청이 성공하게 되면 No Content (204) 상태 코드를 응답합니다.