Аутентификация в сервисах google с использованием ключа сервисного пользователя

17.08.20

Интеграция - WEB-интеграция

В статье опишу вариант аутентификации в сервисах google используя ключ сервисного пользователя и криптографию windows.

Скачать файлы

Наименование Файл Версия Размер
GoogleAPI.cfe
.cfe 45,47Kb
6
.cfe 45,47Kb 6 Скачать

Вводные

  • Нужно получить токен доступа к сервисам google для сервисного пользователя
  • Для аутентификации используется JWT c RS256 (SHA256RSA)
  • Для получения токена возможно использовать форматы ключей
    • p12 с предопределенным паролем
    • PEM в составе JSON
  • Сервер 1С на windows

Реализация

При реализации использовал наработки:

Документация аутентификации ссылка

В 1С не реализован механизм RSA, используются:

  • "МенеджерКриптографии()", как в него поместить ключ из файла или из строки не понял
  • COMОбъект("System.Security.Cryptography.RSACryptoServiceProvider"), он работает с ключом в формате XML
  • нативная реализация от uno-c, не стал использовать "в лоб", т.к. автор написал что разбор PEM не оптимален и заточен только под формат google, так же не получилось сопоставить XML формат и результат его разбора формата PEM.

В windows есть подсистема "System.Security.Cryptography" которая умеет работать с SHA256RSA (документация), для работы использует формат XML, который можно получить из ключа p12 используя system.security.cryptography.x509certificates (документация). Пример скрипта конвертации PowerShell взял у uno-c, перенес в код ПолучитьЗапуститьСкриптКонвертации(), конвертировать из PEM используя PowerShell у меня не получилось, ломается на ошибке импорта из массива байт, если тема интересна могу код скрипта в комментариях разместить.

 

Реализовал в виде расширения

  • Основной функционал в общем модуле "auth_g_Сервер".
  • Данные по пользователям храню в спр. "auth_g_СервисныеПользователи"
  • Полученные токены храню в РС auth_g_Токены

В форме спр. "auth_g_СервисныеПользователи" реализовал

  • обращение к файлу p12 и передачу данных для конвертации в XML
  • получение PEM ключей из файла JSON
  • обращение для получения токена с выбранными правами доступа
  • проверку через получение информации о токене и списку ролей (для доступа нужно на уровне консоли включить API для AIM)

Исходный код на GitHub (ссылка).

Для linux серверов рассматривал обращение к node.js сервису с HTTP сервисом и использованием библиотеки jsonwebtoken.

Тестировалось на БСП 3.1.2 (режим совместимости 8.3.14)

Благодарю за внимание.

SHA256RSA google RS256 JWT

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15655    9    17    

9

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12809    30    8    

10

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17423    6    15    

13

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25686    9    0    

7

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16256    41    49    

22
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. uno-c 234 12.09.20 04:38 Сейчас в теме
В 1С не реализован механизм RSA,

1С работает с системными RSA-криптопровайдерами, но не поддерживает хеширование SHA-256, хотя сам криптопровайдер при этом может поддерживать SHA-256. Например, используя МенеджерКриптографии, можно поставить подпись RSA c хешированием SHA-1.
Оставьте свое сообщение