Розробка модуля авторизації та реєстрації 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка модуля авторизації та реєстрації 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка модуля авторизації та реєстрації 1С-Бітрікс

Стандартний компонент авторизації bitrix:system.auth.form закриває більшість завдань, але бізнес регулярно приходить із вимогами, що виходять за його межі: вхід за номером телефону з OTP, авторизація через державні сервіси ідентифікації, багатофакторна аутентифікація, єдиний вхід для кількох сайтів, кастомні поля реєстрації з верифікацією. Кастомний модуль авторизації — відповідь на ці вимоги.

Як працює авторизація в Бітрікс

Бітрікс надає кілька точок розширення системи авторизації:

Соціальна авторизація реалізована через модуль socialservices. Провайдери розширюються через клас, що наслідує \Bitrix\SocialServices\Base. Для нестандартних провайдерів (Telegram, державні портали) створюється власний клас.

Авторизація за токеном / API-ключем — через обробник події OnBeforeUserLogin або через middleware в OnPageStart.

Подійна модель: ключові події для розширення авторизації:

  • OnBeforeUserLogin — до авторизації (можна заборонити)
  • OnAfterUserLogin — після успішного входу
  • OnUserLoginAttempt — при кожній спробі (для логування, rate limiting)
  • OnBeforeUserRegister — до реєстрації
  • OnAfterUserRegister — після успішної реєстрації

Авторизація за номером телефону з OTP

Найчастіший запит. Схема роботи:

  1. Користувач вводить номер телефону
  2. Сервер генерує OTP-код (6 цифр), зберігає в сесію або кеш із TTL 5 хвилин
  3. Відправляє SMS через провайдера (Infobip, SMS.ru, Twilio)
  4. Користувач вводить код
  5. Сервер верифікує код, шукає користувача за полем UF_PHONE або PERSONAL_PHONE, логінить через CUser::Authorize($userId)
// Верифікація OTP та авторизація
public function verifyOtp(string $phone, string $code): bool
{
    $session = Application::getInstance()->getSession();
    $stored = $session->get('otp_' . md5($phone));

    if (!$stored || $stored['code'] !== $code || $stored['expires'] < time()) {
        return false;
    }

    $session->delete('otp_' . md5($phone));

    // Знайти користувача за телефоном
    $user = UserTable::getRow([
        'filter' => ['=PERSONAL_PHONE' => $phone, '=ACTIVE' => 'Y'],
        'select' => ['ID'],
    ]);

    if ($user) {
        CUser::Authorize($user['ID']);
        return true;
    }

    // Авторееєстрація якщо потрібно
    return $this->autoRegister($phone);
}

Інтеграція з державними сервісами ідентифікації

Авторизація через державні портали використовує протокол OAuth 2.0 + OpenID Connect. Особливості:

  • Потрібна реєстрація інформаційної системи в реєстрі відповідного відомства
  • Необхідне використання PKCS#7/GOST-R підпису запитів (криптографічна бібліотека або OpenSSL з відповідними алгоритмами)
  • Тестове середовище доступне за окремим URL

Інтеграція реалізується як провайдер авторизації, що наслідує \Bitrix\SocialServices\Base, або як окремий обробник із redirect URI.

Єдиний вхід (SSO) для кількох сайтів

При мультисайтовій конфігурації Бітрікс підтримує SSO через механізм «Сховище сесій». Для сайтів на різних доменах — реалізується через:

  • Спільний домен другого рівня (.example.ua) із cookie на домен
  • OAuth2-сервер на основному сайті + клієнти на дочірніх
  • JWT-токени в URL-параметрах для крос-доменного переходу

Двофакторна аутентифікація (2FA)

2FA реалізується через обробник OnAfterUserLogin:

public static function onAfterUserLogin(array &$params): void
{
    $userId = $params['USER_ID'];

    if (self::is2FAEnabled($userId)) {
        // Зберегти прапор «потрібна 2FA» у сесії
        $session = Application::getInstance()->getSession();
        $session->set('2fa_required', true);
        $session->set('2fa_user_id', $userId);

        // Вийти з поточної сесії та перенаправити на сторінку введення коду
        CUser::Logout();
        LocalRedirect('/auth/2fa/');
    }
}

TOTP (Time-based One-Time Password за RFC 6238) — стандартний алгоритм для сумісності з Google Authenticator та аналогічними застосунками.

Кастомні поля реєстрації

Поля реєстраційної форми розширюються через користувацькі поля UF_* модуля user. Специфічні завдання:

  • Верифікація ідентифікаційних кодів при реєстрації юрособи — через API податкових органів або сторонні сервіси перевірки
  • Підтвердження email через унікальне посилання — стандартний механізм Бітрікс + кастомізація листа
  • Завантаження документів при реєстрації — через UF_-поля типу «файл» із модерацією

Типові терміни розробки

Функціональність Термін
OTP-авторизація за телефоном 1–2 тижні
Соціальна авторизація (2–3 провайдери) 1–2 тижні
2FA (TOTP) 1 тиждень
Авторизація через державний портал 3–5 тижнів
SSO для кількох сайтів 2–4 тижні
Комплексний модуль (все разом) 6–10 тижнів

Модуль тестується на відповідність вимогам безпеки: захист від брутфорсу (rate limiting), захист від CSRF, коректне завершення сесій, зберігання токенів у хешованому вигляді.