Добавить существующего пользователя в существующую группу apache ranger

Я смотрю на apache Ranger rest API, чтобы добавить существующего внутреннего пользователя / пользователей в существующую внутреннюю группу.

Я просматривал документы и не могу найти что-то полезное, есть ли для этого API?


person coding_potato    schedule 22.12.2020    source источник


Ответы (1)


Попробуйте выполнить следующий вызов api: -

curl -ivk -u admin:admin -H "Content-Type: application/json" -d '{"id":13,"createDate":"2020-12-23T07:55:04Z","updateDate":"2020-12-23T07:55:04Z","owner":"rangerusersync","updatedBy":"rangerusersync","name":"atlas","password":"*****","description":"atlas - add from Unix box","groupIdList":[6,59,4,131,133],"groupNameList":["atlas","hadoop","shadow"],"status":0,"isVisible":1,"userSource":1,"userRoleList":["ROLE_USER"],"otherAttributes":"{\"full_name\":\"atlas\",\"original_name\":\"atlas\"}"}'  -X PUT https://RANGER_HOST:6182/service/xusers/users

Он немного большой, но если пользователь уже добавлен в рейнджер, запустите следующий api, чтобы получить информацию об идентификаторе для пользователей: -

curl -ivk -u admin:admin -H "Accept : application/json" -X GET https://RANGER_HOST:6182/service/xusers/users

Когда у вас есть идентификаторы для всех пользователей, вы можете запустить следующий curl api, чтобы получить данные в формате json, которые вы можете использовать для изменения, а затем использовать метод PUT в первом упомянутом мной API: -

curl -ivk -u admin:admin -H "Accept: application/json" -X GET https://RANGER_HOST:6182/service/xusers/users/13

Выше Curl api должен возвращать что-то вроде следующего: -

{"id":13,"createDate":"2020-12-23T07:55:04Z","updateDate":"2020-12-23T16:45:14Z","owner":"rangerusersync","updatedBy":"admin","name":"atlas","password":"*****","description":"atlas - add from Unix box","groupIdList":[133,6],"groupNameList":["apitest","atlas","hadoop","shadow","ssb"],"status":0,"isVisible":1,"userSource":1,"userRoleList":["ROLE_USER"],"otherAttributes":"{\"full_name\":\"atlas\",\"original_name\":\"atlas\"}"}

вам нужно изменить "groupIdList":[133,6] из вышеприведенного вывода, скопировать весь вывод и передать его с помощью метода PUT, как показано в первом вызове API, упомянутом выше.

person rikamamanus    schedule 23.12.2020
comment
выглядит хорошо, я попробую, но один вопрос: будут ли проблемы, если groupIdList не будет точно соответствовать groupNameList? - person coding_potato; 29.12.2020
comment
@coding_potato не нужно беспокоиться о groupNameList, продолжайте обновлять groupIdList - person rikamamanus; 31.12.2020
comment
Спасибо! Кстати, есть способ выбрать нескольких пользователей с помощью api, не похоже, что мне может понравиться / xusers / users / username / {несколько имен пользователей, разделенных запятыми} - person coding_potato; 11.01.2021
comment
Я не думаю, что это способ, но вы можете попробовать запустить цикл на предпочитаемом языке, включая оболочку - person rikamamanus; 12.01.2021
comment
Я хотел уменьшить количество обращений к API, но пока подойдет цикл. Благодарность :) - person coding_potato; 12.01.2021