Create or Update User API
출처: 문서
본문
사용자 생성 또는 업데이트 API
1.0부터 도입 {: .label .label-purple }
지정한 사용자를 생성하거나 교체해요. password(일반 텍스트) 또는 hash(해시된 사용자 비밀번호) 중 하나를 반드시 지정해야 해요. password를 지정하면 Security plugin이 저장하기 전에 비밀번호를 자동으로 해시 처리해요.
opendistro_security_roles 배열에 지정하는 역할은 Security plugin이 사용자를 해당 역할에 매핑하려면 반드시 이미 존재해야 한다는 점에 유의하세요. 사전 정의된 역할을 보려면 사전 정의된 역할 목록을 참고하세요. 역할 생성 방법에 대한 안내는 역할 생성 또는 업데이트 API를 참고하세요.
엔드포인트
PUT /_plugins/_security/api/internalusers/{username}
요청 본문 필드
요청 본문은 필수예요. 다음 필드를 가진 JSON 객체예요.
| 필드 | 데이터 타입 | 설명 | 필수 여부 |
|---|---|---|---|
password |
String | 사용자의 비밀번호(일반 텍스트)예요. Security plugin이 저장하기 전에 비밀번호를 해시 처리해요. hash를 지정하지 않는 한 필수예요. |
No |
hash |
String | 사용자 비밀번호의 해시 값이에요. 직접 해시한 비밀번호를 전달하려면 이 필드를 사용하세요. password를 지정하지 않는 한 필수예요. |
No |
backend_roles |
Array of strings | 사용자에게 할당된 백엔드 역할이에요. 역할 매핑은 백엔드 역할을 사용해 사용자의 보안 역할을 결정해요. | No |
opendistro_security_roles |
Array of strings | 사용자에게 직접 매핑된 보안 역할이에요. 각 역할은 이미 존재해야 해요. | No |
attributes |
Object | 사용자와 연관된 사용자 지정 이름-값 쌍이에요. 문서 수준 보안 쿼리와 역할 매핑에서 사용해요. | No |
description |
String | 사용자에 대한 설명이에요. | No |
hidden |
Boolean | API와 OpenSearch Dashboards에서 사용자를 숨길지 여부예요. 기본값은 false예요. |
No |
reserved |
Boolean | 사용자가 읽기 전용으로 수정할 수 없는지 여부예요. 기본값은 false예요. |
No |
요청 예시
PUT _plugins/_security/api/internalusers/kirk
{
"password": "Str0ngPassw0rd_9182!",
"opendistro_security_roles": [
"maintenance_staff",
"database_manager"
],
"backend_roles": [
"captain",
"starfleet"
],
"attributes": {
"attribute1": "value1",
"attribute2": "value2"
}
}
{% include copy-curl.html security=true %}
응답 예시
{
"status": "CREATED",
"message": "'kirk' created."
}