Обратите внимание!

Не используйте этот механизм –  он поддерживается для совместимости с предыдущими версиями.


Авторизация пользователей по OAuth 2.0

OAuth 2.0 доступна в базовой сборке продукта.

В файле конфигурации /etc/polymatica/polymatica.conf устанавливаются следующие значения:

# Тип автоматической аутентификации
plm.manager.auto_authentication_type = OAUTH2

# URI сервера авторизации для получения кода авторизации
plm.manager.auto_authentication_code_uri = http://<CA address>

# URI сервера авторизации для получения access-кода (token)
plm.manager.auto_authentication_uri = http://<CA address>

# URI в Polymatica Analytics для перехода после успешной авторизации сервером авторизации
plm.manager.auto_authentication_redirect_uri = http://<Polymatica address>/login/callback

# Credentials используется для авторизованного общения Polymatica Analytics с сервером авторизации
plm.manager.auto_authentication_clientid = polymatica
plm.manager.auto_authentication_password = password123


После этого необходимо перезапустить Polymatica Analytics.

В процессе авторизации Polymatica Analytics делает запрос к серверу авторизации на получение токена с правами пользователя. Токен имеет формат:

{
    "access_token": "<token id>",
    "token_type": "bearer",
    "expires_in": 9,
    "scope": "polymatica",
    "user_name": "<login>",
    "authorities": {
        "cubes": [{
                "name": "cube name 1",
                "uuid": "<cube id>",
                "dims": [{
                        "id": "some dimension 1",
                        "name": "some dimension 1 name"
                    }, {
                        "id": "some dimension 2",
                        "name": "some dimension 2 name"
                    }, {
                        "id": "some dimension 3",
                        "name": "some dimension 3 name"
                    },
                    ...
                ],
                "dims_restrictions": [],
                "facts": [],
                "creator": null,
                "available": false,
                "creation_time": 0
            },
            {
                "name": "cube name 2",
                "uuid": "<cube id>",
                "dims": [{
                        "id": "some dimension 1",
                        "name": "some dimension 1 name"
                    }, {
                        "id": "some dimension 2",
                        "name": "some dimension 2 name"
                    }, {
                        "id": "some dimension 3",
                        "name": "some dimension 3 name"
                    },
                    ...
                ],
                "dims_restrictions": [],
                "facts": [],
                "creator": null,
                "available": false,
                "creation_time": 0
            }
            ...
         ]
    }
}


Пустые значения dims, facts и dims_restrictions означают полную доступность всех размерностей и фактов.
Если необходимо указать доступ только на некоторые элементы размерности, то поле dims_restrictions заполняется следующим образом:

 "dims_restrictions": [{
                        "id": "<dimension id>",
                        "name": "<dimension name>",
                        "elements": ["element 1", "element 2", ... ]
                    }],


При этом вектор dims может быть пустым.

  • Нет меток