Фирма «1С» опубликовала анонс новых возможностей, которые ожидаются в технологической платформе 8.3.21. Предполагается, что в релизе будет доступна аутентификация с помощью JWT-токенов.
Что такое аутентификация с помощью JWT-токенов и как ее можно будет применить в решениях 1С
Официальный технологический блог «Заметки из Зазеркалья» сообщил о том, что в платформе, начиная с версии 8.3.21, будет доступна аутентификация с помощью JWT-токенов. То есть платформа будет поддерживать ряд новых возможностей для настройки кроссплатформенной интеграции:
- возможность вызова из приложений, созданных на платформе, внешних HTTP / веб-сервисов, поддерживающих JWT-токены;
- возможность выполнить из приложения через HTTP / веб-сервис программный вызов функции другого приложения от лица определенного пользователя, но при этом не хранить и не подставлять логин и пароль этого пользователя;
- при помощи JWT-токена можно будет сгенерировать ссылку, по которой пользователь сможет в течение определенного времени интерактивно входить в приложение без ввода логина/пароля.
В заметке приводится несколько возможных сценариев использования новой функциональности. Например, можно будет из магазина сделать запрос на удаленный склад для получения остатков от лица конкретного менеджера. Или посылать новому сотруднику ссылку для первого входа в Документооборот без пароля, а уже в Документообороте пользователь сможет сам установить себе пароль для дальнейшей работы. Еще один возможный сценарий - создание временной ссылки для входа в приложение без пароля, например, для заполнения какой-то анкеты.
Авторы заметки указывают на то, что данный механизм аутентификации находит все более широкое распространение, и уже сейчас применяется на портале «Госуслуг» и в системе «Четный знак». В качестве наиболее очевидных преимуществ данного механизма обозначены такие:
- отсутствие необходимости серверу приложений хранить дополнительные данные о выданных сессиях: все, что должен сделать сервер приложений — это проверить подпись JWT-токена
- сервер приложений может не заниматься созданием токенов, а предоставить это внешнему серверу аутентификации.
- JWT-токены делают возможным предоставление одновременного доступа к различным сервисам в том числе серверам приложений, то есть реализовать технологию Single Sign-On (SSO).
Как будет работать новый механизм аутентификации помощью JWT-токенов
JWT-токен представляет собой JSON-структуру, в поля которой записана вся необходимая для аутентификации информация – кем и кому выдан токен, время жизни токена, в каких приложениях этот токен может быть использован для аутентификации и тому подобное.
Для использования JWT-токенов во встроенном языке будет доступен объект ТокенДоступа, свойства которого соответствуют JWT-структуре и имеют понятные имена.
Схема работы с JWT-токеном .Сервер 1С в 8.3.21 сможет выступать и в качестве сервера аутентификации, и в качестве сервера приложений.
Источник: wonderland.v8.1c.ru
Для поддержки JWT-токенов разработчики платформы реализовали следующие доработки:
- Во встроенном языке создание токенов доступа и заполнение их свойств нужными значениями. Перед отправкой для аутентификации токен должен быть подписан одним из 12 алгоритмов подписи токенов, поддерживаемых платформой. Для подписи токена нужно также указать ключ подписи. Ключ подписи обычно генерируется криптопровайдером; меняется он, как правило, редко, раз в несколько лет; хранить его можно, например, в константах конфигурации:
Программное создание токена доступа в платформе 8.3.21. Источник: wonderland.v8.1c.ru
- Информационным базам, HTTP и Web сервисам через параметр запроса AccessToken или в заголовке Authorization можно будет передавать токен доступа в формате Base64URL . Токен доступа при участии в строковых операциях автоматически конвертируется в строку в формате Base64URL:
Способы авторизации с помощью токена доступа. Источник: wonderland.v8.1c.ru
- Добавлен новый параметр AccessToken для запуска тонкого и веб-клиентов для опубликованных инфобаз с аутентификацией по JWT-токену.
- В файле веб-публикации *.vrd инфобазы можно будет для сервисов и информационных баз указывать список доверенных эмитентов токена. Например, список информационных баз, чьим пользователям разрешен доступ по токену в данную инфобазу, а также ключи для проверки подписи.
- В файле веб-публикации *.vrd будут настраиваться правила сопоставления пользователей токена и пользователей информационной базы. Например, если пришел токен с полем sub, в котором указан ИвановИИ, то можно настроить сопоставление с полем "Имя" пользователя ИБ. Также можно настроить сопоставление любого поля токена с полем Адрес электронной почты или Пользователь ОС пользователя ИБ.
- В параметрах пользователя можно разрешить или запретить аутентификацию по токенам.
Настройка доступности механизма аутентификации с помощью JWT-токенов в 8.3.21. Источник: wonderland.v8.1c.ru
Полный текст заметки об аутентификации с помощью JWT-токенов доступен в официальном технологическом блоге «Заметки из Зазеркалья».