Перейти к содержимому
Вы читаете документацию версии 0.7. Актуальная — 0.8. Перейти →

1С:Предприятие — вход в веб-клиент через Zentro

Платформа 8.3.14 и выше, публикация на веб-сервере (Apache / IIS). Аутентификация OpenID Connect задаётся в default.vrd публикации; работает для веб-клиента (и тонкого клиента через веб-сервер).

redirect_uris: https://1c.example.com/<имя_публикации>/authform.html, scopes openid email profile, first_party: true. См. README.

В элемент <point …> публикации добавьте:

<openidconnect>
<providers><![CDATA[[
{
"name": "zentro",
"title": "Zentro",
"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>

Перезапустите веб-сервер. На форме входа появится кнопка «Zentro».

1С ищет пользователя информационной базы, у которого свойство authenticationUserPropertyName равно claim authenticationClaimName из токена Zentro:

Вариант authenticationClaimName authenticationUserPropertyName Что заполнить в 1С
по почте (как выше) email name имя пользователя ИБ = его email в Zentro
по логину preferred_username name имя пользователя ИБ = логин в Zentro

Claim email / preferred_username Zentro кладёт в id_token при scope email / profile. У пользователя ИБ должен быть включён вход через OpenID Connect (Конфигуратор → Администрирование → Пользователи → «Аутентификация OpenID Connect»; в части версий — флаг «Аутентификация OpenID»).

  • «Пользователь не найден» — имя пользователя ИБ не совпадает с email/логином в Zentro (регистр и пробелы).
  • «network error» после входа — сервер 1С не достучался до https://id.example.com (DNS, прокси, сертификат — цепочка сертификата Zentro должна доверяться на сервере 1С).
  • response_type id_token token (из старых примеров) Zentro не поддерживает — только code.