1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/opendevops-codo-admin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 22 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 10:23 06611bc

Серверная платформа управления

Журнал обновлений

Документация по развёртыванию

Онлайн доступ

Введение

   Данное приложение представляет собой 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

Демонстрация

Управление пользователями

Эта часть документации посвящена управлению пользователями и позволяет точно настроить права пользователей.

Список пользователей

Список пользователей: как следует из названия, он используется для управления и отображения списка пользователей, а также подробной информации о пользователях.

Функции поддержки

  • Поиск пользователей
  • Создание пользователей
  • Удаление пользователей
  • Блокировка пользователей
  • Сброс пароля
  • Сброс MFA (Google Authenticator)
  • Получение токена

Интерфейс отображения

user_list

Список разрешений

Используется для детальной настройки разрешений для каждого интерфейса. По умолчанию не требует изменений.

Примечание:

  • Система уже настроила все разрешения и методы по умолчанию. Администратор по умолчанию имеет разрешение /, и нет необходимости изменять его, чтобы избежать ошибок при запросе системы на выполнение определённых функций.

Описание функций:

  • Поддержка различных методов поиска, таких как название разрешения, путь запроса, метод запроса и время.

  • Поддержка создания, редактирования, блокировки, удаления и других операций управления разрешениями.

  • Поддерживает создание пользовательских функций разрешений, что удобно для разработчиков, пишущих API-интерфейсы, которые могут легко интегрировать управление разрешениями.

  • Некоторые подробные API и документы по использованию находятся в стадии обновления...

user_list

Компоненты меню

Компоненты меню: как следует из названия, это относится к функциям модуля навигации (например, управление пользователями, системное управление) и некоторым функциональным кнопкам (например, редактирование, удаление кнопок), которые обычно не требуют изменений.

Примечание:

  • Система по умолчанию уже настроила все функции меню и компоненты, и нет необходимости вносить изменения, чтобы предотвратить ошибки доступа.

Функциональное описание:

Перечислены следующие несколько меню и компонентов для ознакомления. Их значения очевидны из их английских названий:

  • home: домашний каталог
  • usermanage: управление пользователями
  • cron: запланированные задачи
  • edit_button: кнопка редактирования

Поскольку код не подходит для прямого использования китайского языка, вы можете выбрать платформу на английском языке, как показано на рисунке, чтобы чётко увидеть назначение каждой функции.

menus

Управление ролями

На основе управления доступом на основе ролей (RBAC) можно точно и удобно управлять правами пользователей.

Функциональное введение:

  • Роль поиска, редактирования, блокирования, удаления

  • Настройка имени роли, настройка прав компонентов, меню, управления разрешениями

  • Список может быть использован для поиска разрешений, что упрощает работу пользователей с визуальными операциями.

rbac

Пример введения делится на две части: создание администратора и создание обычного пользователя.

Пример создания обычного пользователя

Создание пользователя:

Просто заполните информацию, как указано выше, и все права управления будут полностью настроены в управлении ролями.

Управление правами пользователя:

Нажмите «Управление ролями» — «Создать», введите информацию о роли и выберите роль для назначения прав.

create_general_user

general_user_epm

Пример создания администратора

Создать пользователя:

Щелкните список пользователей — «Новый пользователь», введите информацию.

Назначение прав пользователя:

Щелкните «Управление ролями» — «Новое», введите информацию о роли, выберите роль и назначьте права.

create_user

create_rbac

user_emp

user_emp02

user_emp03

Системное управление

Этот раздел в основном описывает конфигурацию системы, которая в основном разделена на конфигурацию системы и системный журнал.

Конфигурация системы

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

Конфигурация системы:

Здесь необходимо настроить адрес вашего API-шлюза, который может быть IP-адресом или доменным именем. Это обязательный элемент. Развертывание API-шлюза

  • Адрес API: адрес вашего шлюза API, который может быть IP/доменом, обязательным полем.

Настройка электронной почты:

Здесь в основном настраивается информация об электронной почте, после настройки этой информации последующие внутренние уведомления платформы будут использовать эту информацию об электронной почте.

Различные конфигурации поставщиков услуг могут ссылаться на FAQ Настройка электронной почты

  • Тема SMTP: тема электронного письма
  • Хост SMTP: адрес сервера
  • Порт SMTP: порт сервера
  • Аккаунт SMTP: имя учётной записи электронной почты
  • Пароль SMTP: пароль учётной записи электронной почты
  • Если порт SMTP равен 465, обычно требуется включить SSL
  • Если порт SMTP равен 587, обычно требуется включить TLS
  • Тестирование электронной почты отправит электронное письмо текущему пользователю для тестирования

SMS-интерфейс:

Здесь в основном настраиваются параметры интерфейса SMS. Интерфейс SMS поддерживает только Alibaba Cloud Aliyun Big Fish. Последующая платформа будет использовать этот интерфейс для отправки SMS.

  • Область SMS: cn-hangzhou в настоящее время официально предоставляется только эта область
  • Название API: Dysmsapi в настоящее время официально предоставлено только это название
  • Домен API: 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 и т. д. Все ваши операции будут записаны. Не делайте ничего плохого. Администратор может всё увидеть. Безопасность по-прежнему важна для нас.

API отправки SMS

Поддерживается только Alibaba Big Fish.

— Адрес интерфейса: /v2/notifications/sms/;
— Метод запроса: POST;
— ContentType: application/json;
— Данные тела:

{"phone": "11-значный номер телефона, разделённый запятыми", "msg": {"msg": "содержание сообщения"},"sign_name": "подпись","template_code": "SMS_136397941111"}

API отправки электронной почты

— Адрес интерфейса: /v2/notifications/mail/;
— Метод запроса: POST;
— ContentType: application/json;
— Данные тела:

{"to_list": "1111@qq.com, 2222@qq.com", "subject": "заголовок","content": "контент"}

Получение TOKEN

Эта система использует 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/opendevops-codo-admin.git
git@api.gitlife.ru:oschina-mirror/opendevops-codo-admin.git
oschina-mirror
opendevops-codo-admin
opendevops-codo-admin
master