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

17.08.20

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
GoogleAPI.cfe
.cfe 45,47Kb
8 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вводные

  • Нужно получить токен доступа к сервисам 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

См. также

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    6487    4    3    

7

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

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    21572    30    24    

24

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    3792    18    2    

20

WEB-интеграция Программист Руководитель проекта 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    8309    7    5    

9

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

В расширении реализован механизм интеграции между системой поставщика и Личным кабинетом СДТ. Реализован обмен заказами и реализациями (накладными), предусмотрено отслеживание статусов документов. Расширение предназначено для 1С:УТ 11.4.

35856 руб.

27.11.2024    2040    1    0    

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

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