1С:Предприятие — вход в веб-клиент через Portun
Платформа 8.3.14 и выше, публикация на веб-сервере (Apache / IIS). Аутентификация OpenID Connect задаётся в
default.vrd публикации; работает для веб-клиента (и тонкого клиента через веб-сервер).
1. Приложение в Portun
Заголовок раздела «1. Приложение в Portun»redirect_uris: https://1c.example.com/<имя_публикации>/authform.html, scopes openid email profile,
first_party: true. См. README.
2. default.vrd
Заголовок раздела «2. default.vrd»В элемент <point …> публикации добавьте:
<openidconnect> <providers><![CDATA[[ { "name": "portun", "title": "Portun", "discovery": "https://id.example.com/.well-known/openid-configuration", "authenticationClaimName": "email", "authenticationUserPropertyName": "name", "clientconfig": { "authority": "https://id.example.com", "client_id": "<client_id>", "client_secret": "<client_secret>", "redirect_uri": "https://1c.example.com/<имя_публикации>/authform.html", "response_type": "code", "scope": "openid email profile", "filterProtocolClaims": false, "loadUserInfo": false } } ]]]></providers> <allowStandardAuthentication>true</allowStandardAuthentication></openidconnect>Перезапустите веб-сервер. На форме входа появится кнопка «Portun».
3. Сопоставление пользователей
Заголовок раздела «3. Сопоставление пользователей»1С ищет пользователя информационной базы, у которого свойство authenticationUserPropertyName равно claim
authenticationClaimName из токена Portun:
| Вариант | authenticationClaimName |
authenticationUserPropertyName |
Что заполнить в 1С |
|---|---|---|---|
| по почте (как выше) | email |
name |
имя пользователя ИБ = его email в Portun |
| по логину | preferred_username |
name |
имя пользователя ИБ = логин в Portun |
Claim email / preferred_username Portun кладёт в id_token при scope email / profile. У пользователя ИБ
должен быть включён вход через OpenID Connect (Конфигуратор → Администрирование → Пользователи → «Аутентификация
OpenID Connect»; в части версий — флаг «Аутентификация OpenID»).
Частые ошибки
Заголовок раздела «Частые ошибки»- «Пользователь не найден» — имя пользователя ИБ не совпадает с email/логином в Portun (регистр и пробелы).
- «network error» после входа — сервер 1С не достучался до
https://id.example.com(DNS, прокси, сертификат — цепочка сертификата Portun должна доверяться на сервере 1С). response_typeid_token token(из старых примеров) Portun не поддерживает — толькоcode.