Многофакторная авторизация. Шаблон проектирования для «1С:Предприятие 8». На примере API «Приватбанка» для юр. лиц

Публикация № 671595

Администрирование - Информационная безопасность

Многим из читателей знакомы понятия стандартов разработки и шаблонов проектирования. Для платформы «1С:Предприятие 8» на сайте its.1c.ru описаны базовые стандарты оформления кода и некоторые полезные примеры, но отсутствует информация об высокоуровневых абстракциях. Почти у каждого банка есть реализация обмена с конфигурациями «1С:Предприятие 8», но анализировать код, а тем более реализацию без слёз невозможно. Данная статья предлагает использовать некий шаблон оформления кода для многофакторной авторизации.

Прежде чем начать

Как тестовый пример будем рассматривать описание API банка «Приватбанк». Детально описание можно найти по ссылке. Данный пример хорош тем, что затрагивает взаимодействие с пользователем, мобильными номерами (OTP-авторизация, правда не во всех случаях), а так же имеется разграничения прав как на уровне приложения так и на уровне доступной роли клиента. Даже беглое описание, наверное, вызывает определенные сложности в оценке времени на разработку, а так же вопросы по поводу организации кода.

Анализируем шаги авторизации

Весь процесс состоит из четырех последовательных шагов:

  1. Получение ID сессии — состоит в том, что бы по R03;ID и R03;secret приложения получить R03;R03;token, который будет передаваться с каждым запросом к Web-сервису банка, в данном случае так же получим права доступа;
  2. Авторизация с помощью пары логин/пароль пользователя — основная цель это повысить права доступа R03;token полученного на предыдущем шаге;
  3. Прохождение OTP-авторизации — если используется двух-факторная авторизация необходимо отправить запрос на получения OTP-пароля, который придет на мобильное устройство;
  4. Проверка OTP-авторизации — отправляем подтверждение повышения прав с помощью OTP-пароля.

Определим объекты которые будут необходимы:

  • Id — идентификатор сессии;
  • ExpiresIn — дата в формате Unix Timestamp, когда истечет сессия;
  • ApplicationId — идентификатор приложения;
  • ApplicationSecret — секрет приложения;
  • Login — логин пользователя;
  • Password — пароль пользователя;
  • OtpDev — устройство для получения OTP-пароля;
  • Otp OTP-пароль полученный на устройство;
  • Роли — таблица ролей доступных сессии.

Срок истечения сессии достаточно мал, получается, что нет смысла выполнять предварительную авторизацию и хранить данные сессии. Логично сохранять только текущую сессию и при каждом запросе к Web-сервису банка проверять валидность сессии и необходимые права доступа к команде сервиса. При надобности обновлять сессию и повышать права к определенному уровню. Теперь можно переходить к псевдокоду.

ШАГ 0. Выбор команды Web-сервиса банка

После предварительного анализа уже понятно, что необходимо для каждого запроса выполнять проверку сессии и если есть потребность проходить авторизацию. Сделаем это с помощью псевдокода для выписок банка:

&НаКлиенте
Процедура ВыпискиПоСчетуНаКлиенте()
    
    ВыпискиИзБанка.Очистить();
    
    ОписаниеОповещения = Новый ОписаниеОповещения(
        "ВыполнитьОбновлениеВыписокПоСчету", 
        ЭтотОбъект, 
        Новый Структура("Роль", "ROLE_P24_BUSINESS"));
    
    АвторизироватьКлиентБанк(ОписаниеОповещения);
        
КонецПроцедуры // ВыпискиПоСчетуНаКлиенте()

&НаКлиенте
Процедура ВыполнитьОбновлениеВыписокПоСчету(Результат, 
    ДополнительныеПараметры = Неопределено) Экспорт
    
    Если Результат = Истина Тогда
        ОбновитьДанныеПоСчетуНаСервере();
    КонецЕсли;
    
КонецПроцедуры // ВыполнитьОбновлениеВыписокПоСчету()

Происходит очистка объекта в который будет выполнятся загрузка выписок банка, далее создается описание оповещения, которое будет выполнено при актуальной сессии и доступной роли для данной операции (Роль передается как структура в дополнительных параметрах).

ШАГ 1. Получаем ID сессии

&НаКлиенте
Процедура АвторизироватьКлиентБанк(ОписаниеЭтапаПолученияДанных) 

    // Очищаем чтобы проверить доступные роли для токена и сравнить с необходимой 
    // ролью для выполнения запроса указаного в описании оповещения.
    Роли.Очистить();
    
    // Проходим авторизацию приложения
    ПриложениеАвторизация = АвторизироватьПриложение();
    ОписаниеСледующиегоЭтапаАвторизации = Новый ОписаниеОповещения(
        "ВыполнитьПослеАвторизацииПриложения", 
        ЭтотОбъект, 
        ПриложениеАвторизация);
    
    ОбработатьРезультатАвторизации(ПриложениеАвторизация, 
        ОписаниеЭтапаПолученияДанных, 
        ОписаниеСледующиегоЭтапаАвторизации); 
     
КонецПроцедуры // АвторизироватьКлиентБанк()

&НаСервере
Функция АвторизироватьПриложение()
    
    // Заполняем ApplicationId, ApplicationSecret, Login, Password из БД или данных формы.
    ЗаполнитьДанныеАвторизации(); 
    
    // Id сессии может быть заполнен, тогда при вызове необходимо проверить его валидность
    // https://link.privatbank.ua/console/wiki/client_auth Валидация SessionID.
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    РезультатАвторизации = ОбработкаОбъект.АвторизироватьПриложение(
        ApplicationId, ApplicationSecret, Id);
    ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект");
    
    Возврат РезультатАвторизации;  
  
КонецФункции // АвторизироватьПриложение()

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

&НаКлиенте
Процедура ОбработатьРезультатАвторизации(Результат, 
    ОписаниеЭтапаПолученияДанных, 
    ОписаниеСледующиегоЭтапаАвторизаци = Неопределено)
    
    Перем МассивРолей;
    
    Если ТипЗнч(Результат) = Тип("ФиксированнаяСтруктура") Тогда
        
        Результат.Свойство("Id", Id); 
        Результат.Свойство("ExpiresIn", ExpiresIn);
        Если Результат.Свойство("Roles", МассивРолей) Тогда
            
            Роли.Очистить();
            Для Каждого ЭлементМассива Из МассивРолей Цикл
                Роли.Добавить().Роль = ЭлементМассива;   
            КонецЦикла;
            
        КонецЕсли;
          
    КонецЕсли;
    
    АвторизацияПройдена = Ложь;
    Если ТипЗнч(ОписаниеЭтапаПолученияДанных) = Тип("ОписаниеОповещения") Тогда
        
        ПараметрыОтбора = ОписаниеЭтапаПолученияДанных.ДополнительныеПараметры;
        Если ТипЗнч(ПараметрыОтбора) = Тип("Структура") Тогда 
            Если Роли.НайтиСтроки(ПараметрыОтбора).Количество() > 0 Тогда;
                АвторизацияПройдена = Истина;
                ВыполнитьОбработкуОповещения(ОписаниеЭтапаПолученияДанных, Истина);        
            КонецЕсли;        
        КонецЕсли;
        
    КонецЕсли;
    
    Если АвторизацияПройдена = Ложь Тогда
        Если ТипЗнч(ОписаниеСледующиегоЭтапаАвторизаци) = Тип("ОписаниеОповещения") Тогда
            ВыполнитьОбработкуОповещения(ОписаниеСледующиегоЭтапаАвторизаци, 
                ОписаниеЭтапаПолученияДанных);    
        КонецЕсли;
    КонецЕсли;
      
КонецПроцедуры // ОбработатьРезультатАвторизации()

ШАГ 2. Авторизация с помощью пары логин/пароль

// Процедура выполняется после успешной авторизации приложения и если доступные
// роли не удовлетворяют требованиям выполняемого запроса к клиент-банку.
// 
// Параметры:
//  ОписаниеЭтапаПолученияДанных - ОписаниеОповещения - оповещение которое будет выполнено если 
//                                                      авторизация будет успешной.
//  ПриложениеАвторизация        - Произвольный       - результат предыдущего этапа авторизации.
//              
&НаКлиенте
Процедура ВыполнитьПослеАвторизацииПриложения(ОписаниеЭтапаПолученияДанных,
    ПриложениеАвторизация = Неопределено) Экспорт
    
    // Проходим авторизацию клиента
    КлиентАвторизация = АвторизироватьКлиента();
    ОписаниеСледующиегоЭтапаАвторизации = Новый ОписаниеОповещения(
        "ВыполнитьПослеАвторизацииКлиента", 
        ЭтотОбъект, 
        КлиентАвторизация);
    
    ОбработатьРезультатАвторизации(КлиентАвторизация, 
        ОписаниеЭтапаПолученияДанных, 
        ОписаниеСледующиегоЭтапаАвторизации);
      
КонецПроцедуры // ВыполнитьПослеАвторизацииПриложения()

&НаСервере
Функция АвторизироватьКлиента()
    
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    РезультатАвторизации = ОбработкаОбъект.АвторизироватьКлиента(
        Login, Password, Id);
    ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект");
    
    Возврат РезультатАвторизации;    
        
КонецФункции // АвторизироватьКлиента()

После авторизации пользователя, необходимо проверить результат выполнения. Если валидация сессии прошла успешно и роль для вызова операции Web-сервера банка доступна, тогда выполняем запрос на получения полезных данных, иначе переходим на следующий этап авторизации.

ШАГ 3. Прохождение OTP-авторизации

// Процедура выполняется после успешной авторизации клиента и если необходимо
// пройти OTP-авторизацию клиент-банка.
// 
// Параметры:
//  ОписаниеЭтапаПолученияДанных - ОписаниеОповещения - оповещение которое будет выполнено если 
//                                                      авторизация будет успешной.
//  КлиентАвторизация            - Произвольный       - результат предыдущего этапа авторизации.
// 
&НаКлиенте
Процедура ВыполнитьПослеАвторизацииКлиента(ОписаниеЭтапаПолученияДанных,
    КлиентАвторизация = Неопределено) Экспорт
    
    Если ТипЗнч(КлиентАвторизация) = Тип("ФиксированнаяСтруктура") Тогда
        
        Если ТипЗнч(КлиентАвторизация.Message) = Тип("ФиксированныйМассив") Тогда
            
            ПараметрыФормы = Новый Структура("НомераТелефонов", 
                КлиентАвторизация.Message);
                            
            ОткрытьФорму("ВнешняяОбработка.Приват24.Форма.ФормаВыбораНомераТелефона", 
                ПараметрыФормы, 
                ЭтотОбъект,
                ,
                ,
                ,
                Новый ОписаниеОповещения(
                    "ВыполнитьПослеЗакрытияФормыВыбораТелефона", 
                    ЭтотОбъект, 
                    ОписаниеЭтапаПолученияДанных),
                РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);            
            
        Иначе
            
            ОткрытьФорму("ВнешняяОбработка.Приват24.Форма.ФормаOTP", 
                , 
                ЭтотОбъект,
                ,
                ,
                ,
                Новый ОписаниеОповещения(
                    "ВыполнитьПослеЗакрытияФормыOTP", 
                    ЭтотОбъект, 
                    ОписаниеЭтапаПолученияДанных),
                РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
        
        КонецЕсли;
        
    КонецЕсли;
              
КонецПроцедуры // ВыполнитьПослеАвторизацииКлиента()

&НаКлиенте
Процедура ВыполнитьПослеЗакрытияФормыВыбораТелефона(РезультатЗакрытия,
    ОписаниеЭтапаПолученияДанных = Неопределено) Экспорт
    
    Если ЗначениеЗаполнено(РезультатЗакрытия) Тогда
        
        OtpDev = РезультатЗакрытия;
        
        КлиентАвторизация = АвторизироватьКлиентаОтправитьOTP();    
        ОписаниеСледующиегоЭтапаАвторизации = Новый ОписаниеОповещения(
            "ВыполнитьПослеАвторизацииКлиента", 
            ЭтотОбъект, 
            КлиентАвторизация);
        
        ОбработатьРезультатАвторизации(КлиентАвторизация, 
            ОписаниеЭтапаПолученияДанных, 
            ОписаниеСледующиегоЭтапаАвторизации);
        
    КонецЕсли;
    
КонецПроцедуры // ВыполнитьПослеЗакрытияФормыВыбораТелефона() 

ШАГ 4. Проверка OTP-авторизации

На последнем этапе уже нет необходимости создавать описание оповещения для следующего этапе авторизации, этот уже последний.

&НаКлиенте
Процедура ВыполнитьПослеЗакрытияФормыOTP(РезультатЗакрытия,
    ОписаниеЭтапаПолученияДанных = Неопределено) Экспорт
    
    Если ЗначениеЗаполнено(РезультатЗакрытия) Тогда
        
        Otp = РезультатЗакрытия;
        
        КлиентАвторизация = АвторизироватьКлиентаПроверитьOTP();
        ОбработатьРезультатАвторизации(КлиентАвторизация,
            ОписаниеЭтапаПолученияДанных);
        
    КонецЕсли;
       
КонецПроцедуры // ВыполнитьПослеЗакрытияФормыOTP()

&НаСервере
Функция АвторизироватьКлиентаПроверитьOTP()
    
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    РезультатАвторизации = ОбработкаОбъект.АвторизироватьКлиентаПроверитьOTP(
        Otp, Id);
    ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект");
    
    Возврат РезультатАвторизации;
        
КонецФункции // АвторизироватьКлиентаПроверитьOTP()

Если все прошло успешно, будут получены выписки из банка. В случае проблем, ЗначениеВРеквизитФормы использовалось для того что бы формировать вполне симпатичные логи:

10.09.2017 23:36:59:

REQUEST URL
Production Base URL: link.privatbank.ua
Operation: POST /api/auth/createSession

REQUEST BODY
{
"clientId": "*******",
"clientSecret": "*******"
}

10.09.2017 23:36:59:

RESPONSE
{"id":"*******","clientId":"*******","expiresIn":1505079419,"roles":["ROLE_CLIENT"]}

10.09.2017 23:36:59: Выполнен запрос авторизации приложения (279 мс).
10.09.2017 23:36:59: OK: Приложение успешно авторизировано.
10.09.2017 23:36:59:

REQUEST URL
Production Base URL: link.privatbank.ua
Operation: POST /api/p24BusinessAuth/createSession

REQUEST BODY
{
"login": "*******",
"password": "*******",
"sessionId": "*******"
}

10.09.2017 23:37:00:

RESPONSE
{"id":"*******","clientId":"*******","expiresIn":1505079419,"message":"Authentication successfull","roles":["ROLE_P24_BUSINESS","ROLE_CLIENT"]}

10.09.2017 23:37:00: Выполнен запрос авторизации клиента (1 129 мс).
10.09.2017 23:37:00: Authentication successfull
10.09.2017 23:37:00:

REQUEST URL
Production Base URL: link.privatbank.ua
Operation: GET /api/p24b/statements?acc=26006054710862&stdate=10.09.2017&endate=10.09.2017

10.09.2017 23:37:01:

RESPONSE
{}

10.09.2017 23:37:01: Выполнен запрос для получения выписок из банка (552 мс).
10.09.2017 23:37:01: OK: Выписки из банка за указанный период отсутствуют.

Вместо послесловия

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

Статья в личном блоге клац

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. koshak84 8 13.09.17 12:53 Сейчас в теме
Сейчас как раз занимаюсь автоматической загрузкой выписок из 3х разных банков в старую-древнюю УПП. Посмотрел код реализации DirectBank в Библиотеке электронных документов и решил пойти другим путем. Просто в конфигурации БЭД написал обработку, которая с заданной периодичностью запрашивает документы из банков по уже готовым алгоритмам, а потом просто выгружает полученные файлы в УПП. Задача решилась малой кровью. А так да, смотреть без слез на то, что написано в БЭД не возможно.
2. bulpi 178 12.10.17 21:18 Сейчас в теме
Автор, надо бы выложить обработку. Иначе единственное, что понятно из этой статьи, так это то, что Вы очень умный, а я нет. Если это было целью, то Вы добились своего.
3. Inkasor 27 13.10.17 01:07 Сейчас в теме
(2)Это шаблон архитектуры, весь код с примерами прямо в статье, какая ещё обработка?
4. bulpi 178 13.10.17 09:28 Сейчас в теме
В коде есть ссылки на объекты, например, Роли. В коде есть ссылки на формы обработки. Без обработки это не код, а сочинение на вольную тему. Представьте, что Вы читатель статьи, и Вам нужно что-то сделать. Как ? Впрочем, хозяин-барин.
5. pbazeliuk 1780 13.10.17 10:15 Сейчас в теме
(4) Роли это простая структура которая согласуется с описанием АPI (https://link.privatbank.ua/console/wiki/p24business_auth), это не роли конфигурации.
"Объект" это объект обработки, основной реквизит формы.
Каждый переход в модуль обработки, это обычный HTTP запрос к сервису банка и преобразование ответа в структуру\массив, цель статьи не дать готовое решение, а подумать и развить аналитические навыки.

Вот, Петр Цап, тоже написал статью над которой необходимо было подумать, и там ни строчки кода, но есть классные идеи.
6. Inkasor 27 13.10.17 15:31 Сейчас в теме
(5) Спасибо на добром слове :) Я ваши статьи тоже сейчас активно осмысливаю на предмет практического применения, вот эта была прямо вообще в тему.
Оставьте свое сообщение

См. также

Права доступа в 1С:Документооборот 2.1 Промо

Информационная безопасность Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Бесплатно (free)

В программе 1С:Документооборот ред 2.1 механизм системы прав доступа сильно изменился. С одной стороны, права доступа в данной версии стали проще и быстрее, с другой стороны - права по рабочим группам объектов теперь могут противоречить политикам доступа. Разберемся в данной статье как работает механизм прав доступа в 1с документообороте 2.1.

16.09.2016    76061    vlush78    0    

Доступ на уровне записей в типовых конфигурациях. Настройка доступа пользователей с разделением по подразделениям/складам – практический пример

Роли и права v8 v8::Права 1cv8.cf Бесплатно (free)

Многим известно, что в современных конфигурациях, разработанных с использованием БСП, имеются широкие возможности для настройки прав доступа. В частности, реализован функционал разделения доступа на уровне записей (RLS). Однако администратор(разработчик) при планировании схемы доступа в организации неминуемо столкнется со сложностями, если временами путается в понятиях: Группы пользователей/Группы доступа/Профили групп доступа. В статье представлен принцип решения типичной задачи – ограничения прав пользователя на просмотр/изменение информации «чужих» складов и подразделений в конфигурации 1С: Управление торговлей 11.4.

сегодня в 09:30    115    Sergey1CSpb    0    

Настраиваем PWA приложение на платформе 8.3.18 с бесплатным действительным сертификатом SSL

Информационная безопасность ИТ-инфраструктура IIS v8 1cv8.cf Бесплатно (free)

Вышла платформа 8.3.18 с поддержкой PWA приложений. Получаем БЕСПЛАТНЫЙ действительный сертификат SSL. Настраиваем прогрессивное веб приложение для опубликованной бухгалтерии 3.0 на IIS сервере.

18.10.2020    3326    IamAlexy    24    

RLS добавление ограничения доступа к данным по произвольному справочнику через штатные механизмы

БСП (Библиотека стандартных подсистем) Информационная безопасность Роли и права v8 КА2 Россия УУ Бесплатно (free)

Решал задачу ограничения доступ к объектам по справочнику "Банковские счета" штатными средствами БСП. Конфигурация КА 2.2. В остальных на БСП должно работать так же. Хотел сделать инструкцию для себя на будущее, решил поделиться.

05.08.2020    1675    ER34    2    

Доработки RLS. Примеры шаблонов. (в т.ч исключения из ограничений) Промо

Информационная безопасность v8 Бесплатно (free)

Допиливаем шаблоны RLS. Даем доступ пользователям к некоторым объектам

19.06.2013    64422    EvilDoc    38    

Изменение RLS в ЗУП 3.1 для ограничения доступа к списку сотрудников

Роли и права v8 v8::Права ЗУП3.x Россия Бесплатно (free)

При переезде из УПП в ЗУП 3.1 бизнесом было поставлено условие, система должна ограничивать видимость сотрудников по подразделениям организации. Позиция 1С по этому вопросу однозначна, так делать нельзя. Но с определенными оговорками и условиями можно...

10.07.2020    2140    Zhilyakovdr    0    

Безопасность мобильных приложений 1С, взгляд по диагонали

Информационная безопасность Мобильная разработка v8::Mobile 1cv8.cf Бесплатно (free)

Что приходит первое в голову при словах «1С Предприятие»? Даже тем, кто далек от ИТ, представляется большущий компьютер (а тем, кто недалек, стойка двух-юнитных серверов), рядом слушает музыку сервера (как вариант просто музыку) сисадмин, за стеной в опен-спейсе менеджеры принимают заказы и бухгалтерия, сдающая отчетность. «Зарплата, зарплата!»: слышны их радостные крики. «И кадры»: уточняет HR. Да, все верно. Это 1С. Кто в теме, напомнит про крики не совсем приятные: «Все тормозит! Сделайте что-нибудь, #тыжпрограммист». И борющихся за живучесть ИТ-шников. В обычном офисном потоке дел, редко кто задумывается о безопасности. А тех, кто задумывается, прошу под кат…

05.06.2020    3544    capitan    32    

"Неверный реквизит платежного документа КодНазПлатежа". Исправляем обработку КлиентБанк

Обмен с банком v8 1cv8.cf Россия Бесплатно (free)

C 01.06.2020 банки требуют указывать реквизит КодНазПлатежа (код вида дохода) в выписках. При этом его заполнение необязательно. Соответственно в старых версиях обработок "Клиент банк" не загружаются файлы с плат.поручениями.

01.06.2020    28031    d.zhukov    65    

Тестируем быстро. Запуск сеанса под другим пользователем за 6 секунд!

Роли и права Пароли v8 v8::Права 1cv8.cf Бесплатно (free)

Как часто вам приходится запускать отладку под другим пользователем? Сколько времени у вас занимает запуск "чужого" сеанса? Убрать (если имеется) у себя аутентификацию ОС, сбросить пароль пользователя и восстановить его потом и т.д. Есть простой и действенный код, который поможет запускать сеансы под другим пользователем без ручной смены параметров аутентификации.

06.05.2020    4176    feva    15    

Права пользователя исключительно на просмотр (чтение) для УТ 11.4

Роли и права v8 v8::Права УТ11 Россия Бесплатно (free)

Простая и понятная инструкция по шагам для создания профиля группы доступа «Только чтение» для УТ 11.4. Выполняется в режиме пользователя, без использования конфигуратора и снятия базы с поддержки.

21.11.2019    6869    Aleksandr55555    8    

Типичные ошибки при разработке прав доступа

Роли и права v8 v8::Права Бесплатно (free)

Рассмотрим самые распространенные ошибки в разработке прав доступа.

02.10.2019    20359    YPermitin    57    

Проверка наличия роли у пользователя

Роли и права v8 v8::Права 1cv8.cf Бесплатно (free)

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

29.06.2019    21008    ni_cola    17    

Назад в прошлое! Небольшие заметки по администрированию пользователей в УПП

Роли и права v8 УПП1 Бесплатно (free)

Небольшие заметки по функционалу "Администрирование пользователей" конфигурации "Управление производственным предприятием" версии 1.3. Затрагиваются такие темы как: роли, профили доступа, дополнительные права, настройки пользователей и ограничения доступа на уровне записей (RLS).

06.06.2019    13665    YPermitin    18    

Подсистема БСП «Управление доступом», основные объекты и регистры

БСП (Библиотека стандартных подсистем) Роли и права v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free)

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    23283    ids79    9    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    42050    ids79    9    

Влияние настройки роли на потребление памяти

Роли и права v8::Права 1cv8.cf Бесплатно (free)

На днях разбирался с проблемой с потреблением памяти процессами конфигуратора и rphost. Как оказалось - причина в настройках ролей. Один поворот не туда, и настройки роли приводят к чрезмерному потреблению оперативки.

29.01.2019    13546    mickey.1cx    15    

Использование утилиты ring для выяснения данных о программных лицензиях

Информационная безопасность v8 Бесплатно (free)

Использование утилиты ring для управления программными лицензиями без ее установки на компьютер пользователя.

22.12.2018    11647    Vovan58    20    

Загрузка платежей из Сбербанк Онлайн по картам физических лиц

Банковские операции Обмен с банком Банковские операции v8 1cv8.cf Россия Бесплатно (free)

Код для загрузки выписки по карте из Сбербанк.Онлайн НЕ Сбербанк Бизнес Онлайн.

27.09.2018    6629    compguru    0    

Доработка RLS для УНФ

Роли и права v8::Права 1cv8.cf Бесплатно (free)

Инструкция для тех, кто столкнулся с RLS на управляемых формах впервые и не знает, с чего начать.

14.05.2018    16687    FesenkoA    10    

Решение проблемы автоматического утверждения расчета кадровиком документов. Разграничение прав кадровиков и расчетчиков. ЗУП 3.1

Информационная безопасность Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР v8::Права ЗУП3.x БУ Бесплатно (free)

Статья посвящена тем, кто столкнулся с проблемой автоматической установки "Расчет утвердил". Также рассматривается решение проблемы с отображением ФОТ и оклада у кадровика. Добавление роли ЧтениеДанныхДляНачисленияЗарплатыРасширенная кадровику без последствий для расчетчика.

04.04.2018    24871    leaderonex    23    

Проверка безопасности установленных паролей

Информационная безопасность v8 Бесплатно (free)

Код выводит не установленные пароли, а так же очень простые (1, 123) пароли пользователей. Список можно пополнять.

08.03.2018    9691    nomadon    12    

Информирование об утечке базы 1С

Информационная безопасность v8 1cv8.cf Бесплатно (free)

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

03.03.2018    14026    dima_home    81    

Отключаем предупреждения безопасности в 1С 8.3.9 и выше вручную

Информационная безопасность v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free)

Как включить/выключить механизм защиты от опасных действий реализованный в новой версии платформы 1С:Предприятие 8.3.9. Одним из нововведений новой версии платформы 1С:Предприятие 8.3.9 стал механизм от опасных действий. После установки новой версии платформы 1С (начиная версии 8.3.9.2033) при попытке открыть внешнюю обработку или расширение программа выдает сообщение..

01.11.2017    45421    webresurs    11    

Управление доступом: роли, права, профили, группы доступа, функциональные опции, RLS

Роли и права v8::Права Бесплатно (free)

В 1С достаточно много механизмов, отвечающих за доступ к данным. Группы доступа, профили групп доступа, роли, права доступа, функциональные опции, RLS. Иногда сложно сразу понять, зачем все это нужно, как эти элементы друг с другом связаны и как ими пользоваться.

11.10.2017    95782    ekaruk    16    

Как создать свой профиль доступа в пользовательском режиме в 1С:Бухгалтерии 3.0

Информационная безопасность v8 БП3.0 Россия Бесплатно (free)

Допустим, есть следующая задача. Нужно добавить нового пользователя «Анна» в базу 1С:Бухгалтерия 3.0. При этом Анна должна только выставлять и распечатывать Счета на оплату. При этом все остальные документы и справочники только для просмотра. Т.е. добавлять новую номенклатуру и контрагентов она не может. Обязательное условие - не изменять типовую конфигурацию.

06.09.2017    17089    alfanika    3    

Копирование групп доступа между пользователями

Информационная безопасность v8 УТ11 Бесплатно (free)

Доработки, позволяющие переносить группы доступа между пользователями. Подходит для Управление торговлей для Украины, редакция 3.1, Управление торговлей, редакция 11.1 и, я думаю, для других конфигураций, написанных на базе БСП.

03.09.2017    9430    Pervuy    0    

1001-й способ ограничить пользователей 1С

Информационная безопасность v8 v8::Права Розница Бесплатно (free)

Описан еще один способ ограничить пользователя 1С, при помощи подписки на события

13.07.2017    14215    donpadlo    39    

Этюды по программированию. Разграничение прав

Информационная безопасность v8 Бесплатно (free)

Задача: Имеется конфигурация на базе Библиотеки Стандартных Подсистем(БСП) -практически любая стандартная конфигурация 1С. Есть, к примеры заказы покупателей. Есть группы менеджеров, каждая из которых должна иметь доступ только к заказам своей группы.

29.04.2017    14522    milkers    8    

Недостаточно прав доступа или опять забыли дать права на новые объекты

Информационная безопасность v8 Бесплатно (free)

При постоянной доработке конфигураций в больших коллективах иногда возникает ситуация, когда программист поместил новые объекты в базу, а права на них дать забыл. При этом обновлять базу не позволяет бизнес. Что же делать? Есть небольшая хитрость.

06.04.2017    29672    Silenser    55    

Интеграция ДБО BS-Client (Белагропромбанк) и БП 1.6 (не используемая обработка "КлиентБанк")

Файловые протоколы обмена, FTP Обмен с банком Банковские операции Банковские операции v8 БП1.6 Беларусь Бесплатно (free)

Как можно сделать рабочую интеграцию с клиентом банка за два часа? Привожу пример из личного опыта.

26.11.2016    18431    c1nil    1    

Генерация паролей 1С 8.3 (код, инструкция)

Практика программирования Информационная безопасность v8 Бесплатно (free)

Инструкция по самостоятельному написанию генерации пароля в 8.3. Может кому-нибудь пригодится, т.к. весь материал на ИС за монетку а делать-то на самом деле нечего

22.07.2016    19347    Tommy82    18    

Работа с 1С:ДиректБанк в системе ДБО iBank 2

Бухгалтерский учет Обмен с банком Банковские операции Банковские операции v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ ERP2 Россия Бесплатно (free)

В современных типовых конфигурациях фирмы "1С" есть возможность работать с системой ДБО iBank 2 напрямую из 1С:Предприятия. Пользователям доступны такие функции, как подпись и отправка платежа в банк, подтверждение платежа по SMS и получение выписки. Промышленная система ДБО iBank 2 установлена в более чем трети российских банков, и многие из них уже начали предоставление сервиса прямого обмена. В статье вкратце описан порядок подключения услуги и настройки DirectBank с системой ДБО iBank 2.

26.05.2016    27094    ph_1984    32    

ubuntu + 1Cv8. Как правильно задать права доступа к базе в терминальном режиме

Информационная безопасность v8 Бесплатно (free)

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

30.03.2016    21550    viptextil    14    

Загрузка выписки из Банк - клиента в 1С: Бухгалтерию - настройка

Обмен с банком Банковские операции Банковские операции v8 БП2.0 БУ Бесплатно (free)

Регулярно приходится объяснять бухгалтерам как формировать платежные поручения в банк-клиенте, а также еще раз заносить их в программы 1С. Чтобы избежать двойной нудной работы достаточно настроить простой перенос загрузку выписок из банк в программу. Сложность данной операции не велика для любого бухгалтера и он способен справиться с этим самостоятельно, разобраемся.

23.03.2016    36895    Bylka    2    

Готовим конфигурацию "Бухгалтерия предприятия 3.0" к аудиторской проверке

Информационная безопасность v8 БП2.0 Россия Бесплатно (free)

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

21.03.2016    10802    duhh    14    

Клиент банк из 1С

Обмен с банком Банковские операции Банковские операции v8 КА1 БП2.0 УТ10 УНФ ERP2 БУ УУ Бесплатно (free)

Хочу рассказать про отличную возможность 1с Бухгалтерии 3.0 (и некоторых других конфигураций) использования клиент банка прямо из 1С. Теперь не надо делать выгрузку в файлик и загружать выписки из файлика. Достаточно нажать кнопку Обмен с банком в 1С и получить необходимые документы. А для платежек нажать кнопку Создать и отправить электронные документы.

12.02.2016    53163    ameli-130412    64    

Ограничение доступа к справочнику Склады для УТ 10.3

Информационная безопасность v8 УТ10 Россия Бесплатно (free)

Краткая инструкция простого метода, как ограничить видимость складов для определенных пользователей в УТ 10.3.

25.12.2015    19588    Viktor_Ermakov    9    

Новый вид доступа в УТ 11. Как в УТ 11 изменить константу "ПараметрыОграниченияДоступа"

Информационная безопасность v8 УТ11 Россия Бесплатно (free)

В УТ11 существуют стандартные виды ограничения прав доступа. Например: "Подразделения", "Склады", "Кассы", "ВидыЦен" и т.д. До поры до времени такой набор стандартных видов ограничений устраивает пользователей. Но что делать, если возникла необходимость добавить новый вид доступа? Об этом и пойдет речь в данной статье.

16.12.2015    27093    Spacer    10    

Запуск под пользователем (асинхронный вызов)

Администрирование данных 1С Информационная безопасность v8 1cv8.cf Бесплатно (free)

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

30.07.2015    10158    kvikster    7    

Разделение доступа к документам с учетом подразделения

Информационная безопасность v8 БП2.0 Бесплатно (free)

Задача: имеется типовая Бухгалтерия КОРП 3.0. Организация одна, имеется ряд подразделений (не обособленных). Необходимо разделить доступ к документам и отчетам с учетом подразделения. Центральный офис должен видеть все данные.

20.07.2015    31593    mmtv68    8