Patch Role Mappings API
출처: 문서
본문
역할 매핑 패치 API
1.0에서 도입됨 {: .label .label-purple }
역할 매핑을 교체하지 않고 업데이트해요. 역할 이름을 지정하면 한 역할 매핑의 개별 속성을 업데이트하고, 역할 이름을 생략하면 한 번의 호출로 여러 역할 매핑을 생성, 업데이트 또는 삭제할 수 있어요.
엔드포인트
PATCH /_plugins/_security/api/rolesmapping
PATCH /_plugins/_security/api/rolesmapping/{role}
경로 파라미터
사용할 수 있는 경로 파라미터는 다음 표에 정리되어 있어요.
| 파라미터 | 데이터 타입 | 필수 여부 | 설명 |
|---|---|---|---|
role |
String | 아니요 | 업데이트하려는 매핑을 가진 역할의 이름이에요. 생략하면 요청이 여러 역할 매핑을 수정할 수 있어요. |
요청 본문 필드
요청 본문은 필수예요. JSON 객체의 배열 형태예요. 각 객체에는 다음 필드가 들어가요.
| 필드 | 데이터 타입 | 설명 | 필수 여부 |
|---|---|---|---|
op |
String | 수행할 작업이에요. 유효한 값은 add, remove, replace, move, copy, test예요. |
예 |
path |
String | 수정할 경로예요. 역할 이름을 지정하면 경로는 해당 역할의 매핑을 기준으로 한 상대 경로가 돼요(예: /users). 역할 이름을 생략하면 경로가 역할 이름을 나타내요(예: /readall). |
예 |
value |
Object | 새 값이에요. add, replace, test 작업에는 필수예요. |
아니요 |
요청 예제
다음 요청은 my-role 역할에 매핑된 사용자와 백엔드 역할을 교체해요:
PATCH _plugins/_security/api/rolesmapping/my-role
[
{
"op": "replace", "path": "/users", "value": ["myuser"]
},
{
"op": "replace", "path": "/backend_roles", "value": ["mybackendrole"]
}
]
{% include copy-curl.html security=true %}
다음 요청은 readall 역할에 대한 매핑을 추가하고 test-role-2 역할에 대한 매핑은 제거해요:
PATCH _plugins/_security/api/rolesmapping
[
{
"op": "add",
"path": "/readall",
"value": {
"backend_roles": [
"reporting"
]
}
},
{
"op": "remove",
"path": "/test-role-2"
}
]
{% include copy-curl.html security=true %}
응답 예제
역할 매핑 하나를 업데이트하는 요청은 응답에 역할 이름을 담아요:
{
"status": "OK",
"message": "'my-role' updated."
}
벌크 요청은 변경한 역할 매핑의 이름을 응답에 담지 않아요:
{
"status": "OK",
"message": "Resource updated."
}