Серверная платформа управления
Данное приложение представляет собой API, реализованное на основе фреймворка Tornado в стиле RESTful для управления серверной частью. В сочетании с интерфейсом администратора front-end (iView + vue) оно предлагает решение для управления правами пользователей и системы (предоставление функций входа, регистрации, изменения пароля, аутентификации, управления пользователями, ролями, разрешениями, компонентами переднего маршрута, уведомлениями API и базовой информацией о системе). Проект CODO является открытым исходным кодом и предоставляет поддержку для серверной части. На его основе можно также разработать собственный сайт. Более базовые функции находятся в процессе разработки. Если вы хотите узнать о последних обновлениях, вы можете посетить журнал обновлений, чтобы просмотреть последние обновления. Если вы новичок и хотите быстро развернуть проект, вы можете перейти к документации по развёртыванию, чтобы ознакомиться с ней.
Вход / выход (поддержка динамического кода Google, поддержка входа через электронную почту, поддержка LDAP-входа)
Изменение пароля
Аутентификация / обновление разрешений
Управление пользователями (на основе модели RBAC)
Ролевое управление
Разрешение управления (маршрутизация на основе ролей)
Компонентное управление (маршруты на основе ролей)
Уведомление управления (отправка SMS, отправка электронной почты API)
Конфигурация системы (адреса API, настройки SMS, настройки электронной почты, настройки хранилища, адреса электронной почты и т. д.)
Системный журнал (получение журнала через API-шлюз, или получение его самостоятельно из базового класса)
├── doc
│ ├── data.sql
│ ├── deployment.md
│ ├── nginx_ops.conf
│ ├── requirements.txt
│ └── supervisor_ops.conf
├── docker-compose.yml
├── Dockerfile
├── __init__.py
├── libs
│ ├── base_handler.py
│ ├── __init__.py
│ ├── my_verify.py
│ └── utils.py
├── mg
│ ├── applications.py
│ ├── handlers
│ │ ├── app_mg_handler.py
│ │ ├── app_settings_handler.py
│ │ ├── components_handler.py
│ │ ├── configs_init.py
│ │ ├── functions_handler.py
│ │ ├── __init__.py
│ │ ├── login_handler.py
│ │ ├── menus_handler.py
│ │ ├── notifications_handler.py
│ │ ├── roles_handler.py
│ │ ├── users_handler.py
│ │ └── verify_handler.py
│ ├── __init__.py
│ └── subscribe.py
├── models
│ ├── admin.py
│ ├── app_config.py
│ ├── __init__.py
├── README.md
├── settings.py
└── startup.py
Эта часть документации посвящена управлению пользователями и позволяет точно настроить права пользователей.
Список пользователей: как следует из названия, он используется для управления и отображения списка пользователей, а также подробной информации о пользователях.
Функции поддержки
Интерфейс отображения
Используется для детальной настройки разрешений для каждого интерфейса. По умолчанию не требует изменений.
Примечание:
/
, и нет необходимости изменять его, чтобы избежать ошибок при запросе системы на выполнение определённых функций.Описание функций:
Поддержка различных методов поиска, таких как название разрешения, путь запроса, метод запроса и время.
Поддержка создания, редактирования, блокировки, удаления и других операций управления разрешениями.
Поддерживает создание пользовательских функций разрешений, что удобно для разработчиков, пишущих API-интерфейсы, которые могут легко интегрировать управление разрешениями.
Некоторые подробные API и документы по использованию находятся в стадии обновления...
Компоненты меню: как следует из названия, это относится к функциям модуля навигации (например, управление пользователями, системное управление) и некоторым функциональным кнопкам (например, редактирование, удаление кнопок), которые обычно не требуют изменений.
Примечание:
Функциональное описание:
Перечислены следующие несколько меню и компонентов для ознакомления. Их значения очевидны из их английских названий:
Поскольку код не подходит для прямого использования китайского языка, вы можете выбрать платформу на английском языке, как показано на рисунке, чтобы чётко увидеть назначение каждой функции.
На основе управления доступом на основе ролей (RBAC) можно точно и удобно управлять правами пользователей.
Функциональное введение:
Роль поиска, редактирования, блокирования, удаления
Настройка имени роли, настройка прав компонентов, меню, управления разрешениями
Список может быть использован для поиска разрешений, что упрощает работу пользователей с визуальными операциями.
Пример введения делится на две части: создание администратора и создание обычного пользователя.
Создание пользователя:
Просто заполните информацию, как указано выше, и все права управления будут полностью настроены в управлении ролями.
Управление правами пользователя:
Нажмите «Управление ролями» — «Создать», введите информацию о роли и выберите роль для назначения прав.
Создать пользователя:
Щелкните список пользователей — «Новый пользователь», введите информацию.
Назначение прав пользователя:
Щелкните «Управление ролями» — «Новое», введите информацию о роли, выберите роль и назначьте права.
Этот раздел в основном описывает конфигурацию системы, которая в основном разделена на конфигурацию системы и системный журнал.
В этом разделе описывается конфигурация параметров системы, и в будущем будет поддерживаться всё больше основных функций.
Конфигурация системы:
Здесь необходимо настроить адрес вашего API-шлюза, который может быть IP-адресом или доменным именем. Это обязательный элемент. Развертывание API-шлюза
Настройка электронной почты:
Здесь в основном настраивается информация об электронной почте, после настройки этой информации последующие внутренние уведомления платформы будут использовать эту информацию об электронной почте.
Различные конфигурации поставщиков услуг могут ссылаться на FAQ Настройка электронной почты
SMS-интерфейс:
Здесь в основном настраиваются параметры интерфейса SMS. Интерфейс SMS поддерживает только Alibaba Cloud
Aliyun Big Fish
. Последующая платформа будет использовать этот интерфейс для отправки SMS.
cn-hangzhou
в настоящее время официально предоставляется только эта областьDysmsapi
в настоящее время официально предоставлено только это названиеdysmsapi.aliyuncs.com
В запросе текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — китайский.
В настоящий момент официальный адрес должен быть таким:
— KEY_ID: ваш IAM-доступный контрольный ключ;
— KEY_SECRET: ваш access_secret-ключ, примечание: «здесь необходимо иметь SMS-разрешение».
При нажатии на тестовый порт текущему пользователю будет отправлена SMS для тестирования.
Вход через электронную почту
Здесь в основном поддерживается вход через сторонние почтовые сервисы. Если вы хотите использовать электронную почту для входа на эту платформу, вы можете выполнить здесь настройку. Например, если корпоративная электронная почта нашей компании — это Tencent, а домен — opendevops.cn, SMTP — smtp.exmail.qq.com от Tencent, то после такой настройки я смогу войти на эту платформу с помощью своего адреса электронной почты yanghongfei@opendevops.cn и пароля.
— SMTP-адрес электронной почты: здесь введите SMTP-адрес вашего почтового сервиса;
— Домен электронной почты: здесь укажите суффикс вашего адреса электронной почты.
Конфигурация хранилища
Эта часть в основном предназначена для настройки информации Bucket. В настоящее время поддерживается только OSS от Alibaba Cloud. Здесь в основном используется для хранения содержимого аудита прыжковой доски в каталоге OSS. Если эта функция не настроена, данные будут сохранены в базе данных (что может привести к её значительному увеличению).
— Регион: доступный район Alibaba Cloud, например, cn-hangzhou;
— Название корзины: название корзины;
— SecretID: ключ доступа;
— Secret Key: ключ доступа.
Здесь записываются все запросы к этой системной платформе, такие как GET/POST/DELETE/PUT и т. д. Все ваши операции будут записаны. Не делайте ничего плохого. Администратор может всё увидеть. Безопасность по-прежнему важна для нас.
Поддерживается только Alibaba Big Fish.
— Адрес интерфейса: /v2/notifications/sms/;
— Метод запроса: POST;
— ContentType: application/json;
— Данные тела:
{"phone": "11-значный номер телефона, разделённый запятыми", "msg": {"msg": "содержание сообщения"},"sign_name": "подпись","template_code": "SMS_136397941111"}
— Адрес интерфейса: /v2/notifications/mail/;
— Метод запроса: POST;
— ContentType: application/json;
— Данные тела:
{"to_list": "1111@qq.com, 2222@qq.com", "subject": "заголовок","content": "контент"}
Эта система использует TOKEN для аутентификации. Когда пользователю требуется доступ к API, ему необходимо получить TOKEN и поместить его в cookie или URL-параметр.
Чтобы получить TOKEN:
— В меню «Управление пользователями» найдите кнопку get_token_btn. Она должна существовать и быть активирована.
— Найдите роль, которую вы хотите назначить, в разделе «Управление ролями», и добавьте в неё кнопку get_token_btn.
— Перейдите в список пользователей и увидите кнопку долгосрочного TOKEN. Если вы являетесь суперпользователем, вы можете выбрать пользователя, и система отправит TOKEN этого пользователя и выбранного пользователя по электронной почте. Срок действия TOKEN составляет три года. Рекомендуется использовать отдельного пользователя для работы с TOKEN, чтобы предотвратить проблемы с доступом при смене персонала. Необходимо точно контролировать разрешения и делать соответствующие заметки. Не предоставляйте этому пользователю права на меню и компоненты.
Использование TOKEN
Отправьте безопасный REST или HTTP-запрос на сервер CODO. Для вашей безопасности не делитесь своим ключом с другими. Мы рекомендуем регулярно менять ключи.
Простой пример на Python: перед использованием TOKEN обязательно проверьте, есть ли у него разрешение на этот интерфейс.
import requests
import json
auth_key= 'здесь ваш TOKEN'
url = 'https://xxx.xxxx.cn/api/kerrigan/v1/conf/publish/config/?project_code=shenshuo&environment=dev&service=nginx&filename=demo.conf'
### Использование cookie для передачи
try:
res = requests.get(url, cookies=dict(auth_key=auth_key))
ret = json.loads(res.content)
if ret['code'] == 0: return ret['data']
except Exception as e:
print('[Error:] 接口连接失败,错误信息:{}'.format(e))
exit(-1)
### Использование url для передачи
try:
_params = {'здесь имя параметра': 'здесь значение параметра', 'auth_key': auth_key}
res = requests.get(url, params=_params)
ret = json.loads(res.content)
if ret['code'] == 0: return ret['data']
except Exception as e:
print('[Error:] 接口连接失败,错误信息:{}'.format(e))
exit(-2)
Всё под лицензией GPL v3.0.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )