1С 8.3 Аутентификация по JWT-токену - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Аутентификация по JWT-токену

Реклама:
Перейти в раздел примеры кода 1С 8.3:
JSON Web Token (JWT) это открытый стандарт (RFC 7519) аутентификации для HTTP сервисов.
Подробно о JWT-токене: https://ru.wikipedia.org/wiki/JSON_Web_Token.

Для аутентификации токен должен быть подписан (перед отправкой) одним из 12 алгоритмов подписи токенов, поддерживаемых 1С 8.3. В параметрах пользователя можно разрешить или запретить аутентификацию по токенам.
Процедура инициализации токена доступа для аутетификации JWT в 1С 8.3 доступна с версии 8.3.21.
Пример структуры JWT-токена:
{  
     "alg": "HS256",
     "typ": "JWT"

} {
    
"sub": "09876",   
     "name": "Andy Siver",   
     "admin": true

}
Пример аутентификации с помощью JWT-токена в 1С 8.3:
Процедура Инициализация_JSON_Web_Token(НомерПримера) Экспорт

   // Параметр: НомерПримера - это вариант исполнения 1,2 или 3

   Токен = Новый ТокенДоступа;
   Токен.Эмитент = "БУ";
   Токен.Получатели.Добавить("УТ");
   Токен.ВремяСоздания = ТекущаяУниверсальнаяДата() - Дата(1970,1,1,0,0,0);
   Токен.ВремяЖизни = 5400;

   Ключ = Константы.КлючПодписи.Получить();
   Токен.Подписать(АлгоритмПодписиТокенаДоступа.HS256, Ключ);

   // Через параметр запроса "AccessToken" или в заголовке "Authorization"
   // можно передавать токен доступа в формате Base64URL (автоматически конвертируется
   // в строку в формате Base64URL)

   Если НомерПримера = 1 Тогда
       Запрос = Новый HTTPЗапрос("http://example.com/hs/testService?AccessToken=" + Токен);
   ИначеЕсли НомерПримера = 2 Тогда
       Запрос = Новый HTTPЗапрос("http://example.com/hs/testService");
       Запрос.ДобавитьТокенДоступа(Токен);
   ИначеЕсли НомерПримера = 3 Тогда
       Соотв = Новый Соответствие;
       Соотв.Вставить("Authorization", "Bearer " + Токен);
       Запрос = Новый HTTPЗапрос("http://example.com/hs/testService", Соотв);
   КонецЕсли;

   // В файле *.vrd можно указать список доверенных эмитентов токена
   // (например, список информационных баз, чьим пользователям разрешен доступ по токену в данную инфобазу)
   // и ключи для проверки подписи.
   //
   // А также настроить правила сопоставления пользователей токена и пользователей информационной базы.
   // (например, если пришел токен с полем 'vrt', в котором указан МакейВН,
   // то можно настроить сопоставление с полем "Имя" пользователя ИБ.
   // Также можно настроить сопоставление любого поля токена с полем "Адрес электронной почты"
   // или "Пользователь ОС" пользователя ИБ.

КонецПроцедуры
Поиск кода
0
комментарии
____________________
Copyright by 1Cnik.by©, «Программист 1С в г.Минске», 18.06.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Назад к содержимому