Оплёт

Материал из Брацка Правки
Версия от 19:57, 2 апреля 2018; Test.user (обсуждение | вклад) (Автоматические)
Перейти к: навигация, поиск

Оплёт (Opplet) -- служебное программное обеспечение, которое собирает все пользовательские приложения Брацкого Облака (здесь и далее по тексту -- Облака) в единую федеральную систему. Сам Оплёт играет роль федерального центра, обслуживая все пользовательские приложения Облака, вне зависимости от их расположения в Облакe, теми Услугами, которые переданы от приложений Оплёту. Фактически Оплёт делает Облако Облаком, для которого Оплёт специально создан.


Функции

Федеративные услуги

Федеративные услуги -- это исключительные услуги Oплёта. Ни одно из пользовательских приложений не должно иметь возможности предоставлять эти услуги индивидуальным пользователям. Личные кабинеты пользователей, которые некоторые приложения типа Брацкой Справочной или Брацкой Учебки могут иметь, дополняют, а не заменяют личный кабинет Оплёта. Оплёт предоставляет следующие федеративные услуги:
Услуги Описание Потребители
Ведение личного кабинета Оплёт даёт пользователям возможность управлять той частью их учётных записей, которая называется "Личным кабинетом" Индивидуальные пользователи
Идентификация пользователей, Регистрация новых пользователей, Авторизация доступов пользователей к отдельным приложениям, Определение ролей пользователей и другие услуги Оплёт получает запросы пользовательских приложений Облака посредством API, обрабатывает их, используя учётные карточки, и отдаёт обработанные запросы тем же путём, которым эти запросы были получены. Пользовательские приложения

Безопасность

Сотрудники и авторизованные пользователи могут иметь обычный доступ через вэб-броузеры только к своим профилям. Всё остальное Центральное обслуживание доступно исключительно администраторам по PKI.

Взаимодействие

Для взаимодействия:
  • С идентификационными приложениями, такими, как OpenStack Keystone и Amazon Cognito, Оплёт сообщается через LDAP;
  • С пользовательскими приложениями Оплёт сообщается по API;
  • С индивидуальными пользователями Оплёт сообщается через интерфэйс личного кабинета.

Дополнительные функции

  1. Служить одной из площадок для дальнейшего развития профессиональных навыков участников учебных программ.

Определение ролей

Определение ролей пользователей должно происходить в одном из двух режимах:

  1. В автоматическом режиме должны назначаться пользовательские роли, например, слушателя вводного курса; и
  2. В ручном режиме должны назначаться административные роли, например, сетевого администратора Брацкой Справочной.

Автоматическое назначение

Сами пользовательские роли должны быть разработаны далее. Предварительно, будут задействованы девять ролей:
Роль Условие автоматического получения роли Автоматические доступы
Русский English
Неавторизованный Stranger Отсутствие условий -- любой посетитель сети Интернет (как зарегистрированный, так и нет), который не авторизовался в Оплёте. Смотри Автоматическая авторизация
Подписчик Subscriber Подписка на рассылку делает неавторизованного пользователя Подписчиком.
Временный Temp Запись на курс Что такое Школа -- эта роль присваивается автоматически любому слушателю вводного курса временно, на три месяца.
Клиент Client Пожертвование или покупка в магазине Careerprise Shop
Кандидат Candidate Завершение курса Что такое Школа
Партнёр Partner Завершение семинара Как стать партнёром
Волонтёр Volunteer Завершение семинара Как стать волонтёром
Студент Enrolled Завершение семинара Как трудоустроиться
Сотрудник Associate Завершение Учебной программы нового сотрудника -- эта роль присваивается автоматически любому выпускнику этого курса постоянно.

Ручное назначение

Приложение Роль Доступы
Русский English
Оплёт Бюрократ Bureaucrat Помимо всех доступов пользователя, бюрократ имеет доступ к учётным карточкам и, в частности, может регистрировать в ручном режиме новых пользователей, редактировать их карточки и назначать роли за исключением бюрократов и сисопов.
Сисоп Sysop Сисоп (системный оператор) может всё.

Регистрация

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

Обычные и корпоративные карточки

Существует два типа учётных карточек:
  1. Обычные учётные карточки, которые не содержат Корпоративных псевдонимов, заводятся автоматически в один этап и могут дать доступ к некоторым, но не всем пользовательским приложениям;
  2. Корпоративные учётные карточки, которые содержат всё, что обычные учётные карточки содержат и, в дополнение, хранят Корпоративные псевдонимы. Корпоративные карточки заводятся либо (1) автоматически в два этапа -- временные для участия в курсе Что такое Брацка Школа и постоянные после завершения этого курса, либо (2) вручную в один этап. Карточки этого типа нужны для доступа к Брацкой Почте, Архиву, а также служебным частям Портала.

Методы регистрации

Регистрация новых пользователей, фактически, заведение новых учётных карточек этих пользователей, должна производиться двумя методами:
Метод регистрации Обычные учётные карточки Корпоративные учётные карточки
В автоматическом режиме Вход через стороннюю идентификацию, Подписку на рассылки, Покупка в магазине, Пожертвование
В ручном режиме Not available Ручная регистрация

Создание обычных карточек

  • Вход через стороннюю идентификацию: Если пользователь заходит в Облако через Стороннюю идентификацию, Оплёт:
    1. Собирает информацию об имени пользователя и его электронном адресе;
    2. Проверяет, существует ли такой пользователь в базе данных;
    3. Если пользователь не существует в базе, то Оплёт заводит новую учётную карточку;
    4. Заводит пользователя на Брацкой Учебке, создаёт Корпоративный псевдоним и даёт доступ к курсу Что такое Брацка Школа;
    5. Отдаёт задание Брацкой Почте выслать пользователю сообщение о создании учётной карточки, доступе к курсу Что такое Брацка Школа и личному кабинету.
  • Подписка на рассылки: Если пользователь отдаёт свой имэйл в качестве заявки на подписку на рассылку на любом из вэб-сайтов Брацкой Вэб-поддержки, Оплёт:
    1. Проверяет, существует ли такой пользователь в базе данных;
    2. Если:
      • Пользователь существует, то Оплёт добавляет ту рассылку, на которую подписался пользователь, к его учётной карточке;
      • Пользователь не существует в базе, то Оплёт заводит новую учётную карточку и добавляет к ней ту рассылку, на которую подписался новый пользователь;
    3. Заводит пользователя на Брацкой Учебке, создаёт Корпоративный псевдоним, идентификатор и пароль, а также даёт доступ к курсу Что такое Брацка Школа;
    4. Отдаёт задание Брацкой Почте выслать пользователю подтверждение подписки, сообщение о создании учётной карточки, доступе к курсу Что такое Брацка Школа и личному кабинету;
    5. В случае, если на Брацкую Почту приходит сообщение об:
      • Отсутствии существования указанного пользователем имэйла, проверяет, есть ли на карточке другие записи и:
        1. Если другие записи есть, и одна из них -- имэйл, то Оплёт отдаёт задание Брацкой Почте выслать пользователю запрос правильности имэйла;
        2. Если другие записи есть, но ни одна из них -- имэйл, то Оплёт просто помечает ошибку на учётной карточке;
        3. Если других записей нет, то Оплёт переводит учётную карточку в проблемные;
      • Отказе от какой-либо рассылки, Оплёт удаляет эту рассылку с учётной карточки.
  • Покупка в магазине: Если пользователь совершил покупку в Careerprise Shop, Оплёт заводит пользователя в качестве клиента Брацкой Школы на клиентском модуле Брацкого Портала.
  • Пожертвование: Если пользователь совершил пожертвование в Careerprise Shop, Оплёт заводит пользователя в качестве клиента Брацкой Школы на клиентском модуле Брацкого Портала.

Корпоративные псевдонимы

Корпоративные псевдонимы содержатся исключительно в карточках сотрудников. Они создаются по формуле Имя Фамилия, причём:
  • Имя псевдонима должно быть нейтрально по роду: Валя, Воля, Женя, Зина, Кира, Лера, Мина, Мира, Мишель, Никита, Паша, Рома, Рося, Саша, Слава, Толя;
  • Фамилия псевдонима должна быть несклоняема: Амаду, Артмане, Белых, Бондарсо, Боссюэ, Бураго, Галуа, Гамарра, Ганди, Гёте, Гладких, Голсуорси, Грамши, Гретри, Грицких, Громыко, Гулиа, Гюго, Дебюсси, Дега, Делакруа, Джусойты, Дитрих, Доде, Долгих, Доливо, Дюма, Золя, Камю, Караджале, Карузо, Квитко, Клемансо, Корню, Короленко, Коротких, Крученых, Кудреватых, Лансере, Лану, Ларошфуко, Леонкавалло, Лонгфелло, Люка, Люлли, Макаренко, Манцу, Маринеску, Марло, Мегрэ, Мейе, Мийо, Модильяни, Моравиа, Моруа, Мюссе, Навои, Неру, Нобиле, Орджоникидзе, Петипа, Пикассо, Ремесло, Руставели, Рыжих, Седых, Семашко, Тарле, Товчих, Труайя, Ферма, Франко, Фрейндлих, Фурье, Хасхачих, Ходячих, Чабукиани, Черных, Шабрие, Шамиссо, Шелли, Шепитько, Шоу, Энеску, Эредиа, Эриа, Эрлих.

Запись на вводный курс

Регистрация через запись на вводный курс -- единственная, по которой пользователь получает временную регистрацию, которая действительна в течение 3-х месяцев. Если пользователь не окончил курс в течение этого времени, то его регистрация аннулируется. Если пользователь на любом из вэб-сайтов Брацкой Вэб-поддержки кликает на кнопки типа "Трудоустроиться", "Выучиться", "Стать волонтёром", "Стать партнёром" и так далее, Оплёт:
  1. Заводит временную учётную карточку со сведениями о том, (1) какая кнопка была нажата и (2) какой язык был использован;
  2. Заводит его пользователем Брацкой Учебки, Брацкой Сессии и Брацкого Видео;
  3. Загружает страницу "Добро пожаловать в Брацкую Школу. Чтобы сохранить в тайне личные данные, все участники пользуются корпоративными псевдонимами. Вы зачислены на вводный курс "Что такое Брацка Школа" под псевдонимом Женя Семашко" с тремя кнопками: "Начать курс под этим псевдонимом", "Заменить этот псевдоним на другой" и "Я придумаю свой псевдоним сам";
  4. Если пользователь выбирает:
    • "Заменить этот псевдоним на другой", то Оплёт создаёт новый псевдоним, переписывает поле "Псевдоним" учётной карточки и загружает новую страницу "Добро пожаловать в Брацкую Школу...";
    • "Начать курс под этим псевдонимом", то Оплёт создаёт идентификатор и пароль, затем проверяет способ идентификации и учётную карточку на наличие электронного адреса. Если карточка:
      1. Содержит адрес и пользователь использовал стороннюю идентификацию, то Оплёт отдаёт задание Брацкой Почте выслать имэйл с информацией об идентификаторе и пароле на имеющийся адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию Курса;
      2. Содержит адрес и пользователь использовал внутреннюю идентификацию, то Оплёт загружает такую страницу или зону: "Для Вас создан временный идентификатор -- zhenjas -- и пароль -- 01ZhenjaS20, которые будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса". Для Вашего удобства, информация об идентификаторе и пароле отправлены на тот электронный адрес, который указан в Вашем личном кабинете," отдаёт задание Брацкой Почте выслать имэйл с информацией об идентификаторе и пароле на имеющийся адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию Курса;
      3. Не содержит адрес, то Оплёт загружает такую страницу или зону: "Для Вас создан временный идентификатор -- zhenjas -- и пароль -- 01ZhenjaS20, которые будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса. Пожалуйста, сохраните этот идентификатор и пароль или отправьте их себе на электронную почту." с двумя кнопками: "Я сохранил это идентификатор и пароль" и "Отправьте идентификатор и пароль на мою электронную почту";
    • "Я придумаю свой псевдоним сам", то Оплёт предоставляет пользователю поля "Имя-псевдоним", "Фамилия-псевдоним", после заполнения которых, Оплёт создаёт идентификатор, пароль и загружает страницу "Ваш идентификатор -- zhenjas; Ваш пароль -- 01ZhenjaS20. Пожалуйста, сохраните этот идентификатор и пароль или отправьте их себе на электронную почту. Идентификатор и пароль будут актуальны в течение следующих 3х месяцев, которые даются на завершение курса." с двумя кнопками: "Я сохранил это идентификатор и пароль" и "Отправьте идентификатор и пароль на мою электронную почту";
  5. Если пользователь выбирает:
    • "Отправьте идентификатор и пароль на мою электронную почту", то Оплёт запрашивает имэйл-адрес пользователя, отдаёт задание Брацка Почта выслать имэйл-подтверждение на введённый адрес, зачисляет и перенаправляет этого пользователя на вводную лекцию Курса;
    • "Я сохранил это идентификатор и пароль", то Оплёт зачисляет и перенаправляет этого пользователя на вводную лекцию Курса.

Ручная регистрация

Любой пользователь может быть создан вручную, а не только в автоматическом режиме.

Поля учётных карточек

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

Заполняемые пользователем

Поле Тип Примечание
Имя (если необходимо для документов об окончании) Текст Заполняется при желании пользователя
Фамилия (если необходима для документов об окончании)
Имэйл (если есть желание получать уведомления) Текст со значком @ и как минимум одной точкой после него
Язык(и) Выбор из списка Автоматически вписывается и сохраняется язык входа, который может быть изменён или добавлен пользователем вручную.

Автоматические

Поле Примечание
Корпоративный псевдоним Список с возможностью исключения
Завершённые курсы
Курсы в прогрессе
Приложения
Рассылки Список с возможностью исключения и добавления

Ведение личного кабинета

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

Интересы

Оплёт собирает информацию о поведении пользователя, особенно, какие кнопки пользователь выбирает находясь на Облаке, для формирования центра действий именуемого "Интересы". Центр действий включает в себя 6 групп:
  1. Учёба и трудоустройство
  2. Трудоустройство (без учёбы)
  3. Волонтёрство
  4. Партнёрство
  5. Учёба (без трудоустройства)
  6. Благотворительность
Активные группы занимают отдельные зоны и включают кнопку "Сделать зону неактивной"; неактивные -- даны иконками под общим заголовком Ещё.

Личные данные

Личные данные включают в себя следующие поля:
  1. Имя (как должно появляться на документах об окончании)
  2. Фамилия (как должна появляться на документах об окончании)
  3. Корпоративный псевдоним
  4. Имэйл

Приложения

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

Языки

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

Рассылки

Оплёт управляет данными о том, на какие рассылки подписан пользователь.

Идентификация

Внутренняя

Сейчас идентификация пользователей идёт через simpleSAMLphp, что сильно ограничивает возможности системы. Будущая идентификация должна быть построена на имеющемся в наличии программном обеспечении:
  • В случае общественного облака может быть использован Amazon Cognito в AWS или Microsoft Azure Active Directory в Microsoft Azure;
  • В случае использования частного облака, будет задействован OpenStack Keystone с выводом на LDAP. Keystone - это служба OpenStack, которая обеспечивает аутентификацию API-клиента, обнаружение сервисов и распределенную авторизацию с несколькими арендаторами, внедряя OpenStack Identity API. Он поддерживает LDAP, OAuth, OpenID Connect, SAML и SQL. Keystone на самом деле не реализует никаких функций управления пользователями; скорее, он предоставляет подключаемые интерфейсы, чтобы организации могли использовать свои текущие службы аутентификации или выбирать из множества систем управления идентификацией, которые находятся на рынке.

Сторонняя

Пользователи, не являющиеся сотрудниками Брацкой Школы, должны иметь возможность входа в Облако через идентификацию в социальных сетях social login, например, Facebook Connect, и других сервисах, пользующихся OpenID Connect.
Используя стороннюю идентификацию, сотрудники не могут заходить на Брацкую Почту, Архив, а также служебные части Портала.

Авторизация доступов

Авторизация пользователей разрешает доступы:

  1. Автоматически к пользовательским ресурсам, например, к Брацкой Почте или Брацкой Сессии. Завершение вводного курса необходимо для автоматической авторизации;
  2. Вручную к административным ресурсам, например, к отдельным проектам Брацкого Архива.

Завершение вводного курса

Если в течение 3х месяцев пользователь:
  • Успешно завершает Курс, то Оплёт:
    1. Заводит его пользователем Брацкой Справочной и зачисляет на семинар Как трудоустроиться через Брацкую Школу;
    2. Если пользователь при первоначальной записи выбирал кнопку:
      • "Трудоустроиться", то Оплёт загружает страницу "Поздравляем с успешным завершением курса. Вы выражали интерес к трудоустройству. Вы желаете трудоустроиться через Брацкую Школу, не платя за услуги из своего кармана, или заказать платные услуги по трудоустройству? Кстати, если Ваш интерес поменялся, в Личном кабинете Вы всегда можете изменить своё решение." с кнопками "Трудоустроиться через Брацкую Школу", "Заказать платные услуги по трудоустройству" и "Что-то ещё";
        1. Если пользователь выбрал кнопку: "Трудоустроиться через Брацкую Школу", то Оплёт обновляет информацию учётной карточки. Регистрация в этом случае следует правилам описанным на вики-странице Трудоустройство через Брацкую Школу. Оплёт перенаправляет этого пользователя на семинар Как трудоустроиться через Брацкую Школу. После завершения этого семинара, Оплёт даёт пользователю доступ к Брацкой Вэб-поддержке, Брацкой Почте и Брацкому Порталу, а также зачисляет его в слушатели Учебной программы нового сотрудника Брацкой Школы;
        2. Если пользователь выбрал кнопку: "Заказать платные услуги по трудоустройству", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Careerprise Shop;
        3. Если пользователь выбрал кнопку: "Что-то ещё", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Личный кабинет;
      • "Выучиться", то Оплёт загружает страницу "Поздравляем с успешным завершением курса. Вы желаете совмещать учёбу и работу в Брацкой Школе, не платя за услуги из своего кармана, или заказать платные услуги образования? Кстати, если Ваш интерес поменялся, в Личном кабинете Вы всегда можете изменить своё решение." с кнопками "Учиться и работать в Брацкой Школе", "Заказать платные услуги образования", "Что-то ещё";
        1. Если пользователь выбрал кнопку: "Учиться и работать в Брацкой Школе", то Оплёт обновляет информацию учётной карточки и перенаправляет его на семинар Как трудоустроиться через Брацкую Школу. После завершения этого семинара, Оплёт даёт пользователю доступ к Брацкой Вэб-поддержке, Брацкой Почте и Брацкому Порталу, а также зачисляет его в слушатели Учебной программы нового сотрудника Брацкой Школы;
        2. Если пользователь выбрал кнопку: "Заказать платные услуги образования", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя на Careerprise Shop;
        3. Если пользователь выбрал кнопку: "Что-то ещё", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Личный кабинет;
      • "Стать волонтёром", то Оплёт загружает страницу "Поздравляем с успешным завершением курса. Вы выражали желание стать волонтёром Брацкой Школы, потому мы зачисляем Вас на семинар Как стать волонтёром Брацкой Школы. Кстати, если Ваш интерес поменялся, в Личном кабинете Вы всегда можете изменить своё решение." с кнопками "Зачислить на семинар "Как стать волонтёром"", "Что-то ещё";
        1. Если пользователь выбрал кнопку: "Зачислить на семинар "Как стать волонтёром"", то Оплёт перенаправляет его на семинар Как стать волонтёром Брацкой Школы. После завершения этого семинара, Оплёт даёт пользователю доступ к Брацкой Почте и Брацкому Порталу, а также заводит его в качестве кандидата в волонтёры Брацкой Школы на рекрутинговом модуле Брацкого Портала;
        2. Если пользователь выбрал кнопку: "Что-то ещё", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Личный кабинет;
      • "Стать партнёром", то Оплёт загружает страницу "Поздравляем с успешным завершением курса. Вы выражали желание стать партнёром Брацкой Школы, потому мы зачисляем Вас на семинар Как стать партнёром Брацкой Школы. Партнёром может быть любой работодатель, поставщик услуг по подготовке кадров и рекрутингу или любое иное лицо, заинтересованное в развитии Брацкой Школы. Кстати, если Ваш интерес поменялся, в Личном кабинете Вы всегда можете изменить своё решение." с кнопками "Зачислить на семинар "Как стать партнёром"", "Что-то ещё";
        1. Если пользователь выбрал кнопку: "Зачислить на семинар "Как стать партнёром"", то Оплёт перенаправляет его на семинар Как стать партнёром Брацкой Школы. После завершения этого семинара, Оплёт заводит пользователя в качестве кандидата в партнёры Брацкой Школы на клиентском модуле Брацкого Портала;
        2. Если пользователь выбрал кнопку: "Что-то ещё", то Оплёт обновляет информацию учётной карточки и перенаправляет этого пользователя в Личный кабинет.
  • Не завершает Курс и:
    1. Идентифицировался внутренне, то Оплёт удаляет его учётную карточку;
    2. Идентифицировался сторонне, то Оплёт оставляет его учётную карточку актуальной, но исключает из Курса и высылает соответствующее сообщение на электронный адрес.

Автоматическая авторизация

Роль Оплёт Учебка Справочна Видео Сессия Портал Почта Вэб Архив
Неавторизованный Нет доступа далее входной страницы Доступ к просмотру всех материалов Доступ к просмотру открытых материалов Нет доступа далее входной страницы
Временный Только на 3 месяца Доступ в качестве пользователя Нет доступа далее входной страницы
Подписчик Любой имеет доступ к личному кабинету Доступ к курсу Что такое Школа Доступ в качестве пользователя Доступ в качестве пользователя
Клиент Доступ в качестве клиента Нет доступа далее входной страницы
Кандидат Доступ к семинарам Как стать партнёром, волонтёром и трудоустроиться
Партнёр Доступ к Учебной программе нового сотрудника
Волонтёр
Студент
Сотрудник Доступ к любым курсам Доступ в качестве пользователя

Ручная авторизация

Любые роли могут быть назначены в ручном режиме согласно иерархии ролей Оплёта.

Перспективные услуги

Перспективно, Оплёт должен предоставлять следующие услуги:

  1. Регулировать загрузку, хранение и использование версий исходных кодов, скорее всего, совместно с инсталляцией Redmine;
  2. Регулировать загрузку, хранение и использование версий баз данных и снимков облаков;
  3. Вести календарь событий и обеспечивать организацию мероприятий.

Требования к разработке

  • Создать базу данных mysite
  • Зальем дамп таблицы users (код дампа ниже)
  • Сделаем форму регистрации и обработчик на PHP
  • Сделаем форму входа и обработчик
  • Сделаем мини-профиль после логина