Eclipse Che — проблема с настройкой разрешений через API

К сожалению, у меня возникли некоторые проблемы с Eclipse Che (6.1.1) Multiuser, работающим в Docker.

Я прочитал документацию здесь https://www.eclipse.org/che/docs/6/che/docs/permissions.html

Допустим, у меня есть два пользователя, один администратор и один обычный пользователь.

Проблема 1)

Я могу получить общую информацию о пользователях через http://hostname:8081/api/user/1daa1ba9-ad7a-4d31-8e0c-df6f22d6b15f

Также я могу отобразить все разрешения через http://hostname:8081/api/permissions

[
{
    "id": "system",
    "allowedActions": [
        "manageSystem",
        "setPermissions"
    ]
},
{
    "id": "workspace",
    "allowedActions": [
        "read",
        "use",
        "run",
        "configure",
        "setPermissions",
        "delete"
    ]
},
{
    "id": "stack",
    "allowedActions": [
        "search",
        "read",
        "update",
        "setPermissions",
        "delete"
    ]
},
{
    "id": "organization",
    "allowedActions": [
        "manageSuborganizations",
        "update",
        "setPermissions",
        "delete",
        "manageResources",
        "createWorkspaces",
        "manageWorkspaces"
    ]
}
]

Теперь, когда я хочу получить разрешения для системного домена http://hostname:8081/api/permissions/system я получаю

{
"message": "System permissions for user '1daa1ba9-ad7a-4d31-8e0c-df6f22d6b15f' not found"
}

Для http://{{host}}:{{port}}/api/permissions/system/all я получаю

{
"message": "User is not authorized to perform this operation"
}

Оба работают с учетной записью администратора, созданной по умолчанию.

Проблема 2)

Я не нашел способа отобразить разрешения для других пользователей? Например. для отображения общих разрешений пользователей из учетной записи администратора. Возможно ли это и, возможно, отсутствует в документации?

Спасибо и с уважением, Доминик


person p0laris    schedule 03.03.2018    source источник


Ответы (1)


Проблема 1. Я полагаю, что пользователь с идентификатором 1daa1ba9-ad7a-4d31-8e0c-df6f22d6b15f не является администратором. Вот почему вы получаете код ответа 404 с указанным сообщением, когда запрашиваете системные разрешения для текущего пользователя. Это означает, что текущий пользователь не имеет никаких системных разрешений.

Предполагается, что второй запрос http://{{host}}:{{port}}/api/permissions/system/all будет отправлен всем пользователям, имеющим системные разрешения, то есть всем администраторам. API позволяет получить разрешения всех пользователей для указанного домена, например, только если пользователь имеет там какое-либо разрешение. Таким образом, только администраторы (независимо от того, какие действия у них есть) могут просматривать список администраторов.

Проблема 2. Существует только способ получить разрешения всех пользователей для конкретного экземпляра указанного домена https://www.eclipse.org/che/docs/6/che/docs/permissions.html.

Например, http://{{host}}:{{port}}/api/permissions/system/all вернет все разрешения администратора, или http://{{host}}:{{port}}/api/permissions/workspace/all?instance={{workspaceId}} вернет все разрешения пользователей для указанной рабочей области.

Дайте мне знать, если что-то пропущено или что-то непонятно.

P.S. Я создам задачу для документации Che, чтобы было более понятно, какие разрешения требуются для запроса методов Permissions API.

person Serhii Leshchenko    schedule 03.03.2018
comment
Спасибо за быстрый ответ! Проблема 1 Поскольку пользователю разрешено setPermissions действий, я предположил, что эта операция сработала. Как мне сделать пользователя администратором? Проблема 2 Теперь я понимаю, что команды будут отправлять сюда список всех пользователей, у которых есть необходимые разрешения, вместо того, чтобы показывать разрешения для конкретных пользователей. Я попробую с другими пользователями и посмотрю, как он себя поведет, спасибо! - person p0laris; 04.03.2018
comment
Проблема 1 Действия связаны с конкретным экземпляром. Чтобы сделать пользователя администратором, вы должны предоставить ему действия, связанные с системным доменом: manageSystem, manageUsers, setPermissions. У вас нет manageUsers, это похоже на ошибку. Я создам проблему. Итак, чтобы сделать пользователя администратором, вы должны использовать назначить-разрешения метод. POST {CHE_HOST}/api/permissions ``` { действия: [manageSystem, manageUsers, setPermissions], userId: {USER_ID}, domainId: system} ``` - person Serhii Leshchenko; 05.03.2018