Я смотрю на apache Ranger
rest API, чтобы добавить существующего внутреннего пользователя/пользователей в существующую внутреннюю группу.
Я просматривал документы и не могу найти что-то полезное, есть ли для этого API?
Попробуйте выполнить вызов 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, упомянутом выше.
@coding_potato не нужно беспокоиться о groupNameList, продолжайте обновлять groupIdList
Спасибо! Кстати, есть ли способ выбрать несколько пользователей с помощью API, не похоже, что мне может понравиться /xusers/users/username/{несколько имен пользователей, разделенных запятыми}
Я не думаю, что это способ, но вы можете попробовать запустить цикл for на предпочтительном языке, включая оболочку.
Я хотел уменьшить вызовы API, но пока подойдет цикл. Спасибо :)
выглядит хорошо, я попробую, но есть один вопрос: будут ли проблемы, если groupIdList не будет точно соответствовать groupNameList?