База знаний
Keycloak + 1C(OpenID-Connect)
Автор Sanal Badzhaev, Last modified by Sanal Badzhaev на 27 ноября 2025 02:30 PM

Предварительные требования

  • Установленный и настроенный Keycloak
  • Установленный и настроенный агент Keycloak
  • Опубликованная база 1C
  • Пользователю выдан и активирован токен согласно настройкам агента Keycloak

Настройка Keycloak

Создаем realm

Выбираем созданный realm и переходим в Configure – Authentication. На против browser нажимаем на три точки и выбираем Dublicate

Заполняем Name и Description и нажимаем Dublicate

Заходим в настройки созданного flow и в строке Indeed Cloud Browser нажимаем на + и выбираем Add execution

В появившемся окне необходимо найти MFASOFT, выбрать и добавить

В добавленном шаге необходимо переключить с Disable на Required и перейти в настройки


В появившемся окне задаем все необходимые параметры

В данном примере используется метод PUSH. И для этого в select type token выбираем PUSH и включаем Enable auto challenge. Сохраняем настройки

Во вкладке Authentication, на против Indeed Cloud нажимаем на три точки и выбираем Bind flow

В появившемся окне нажимаем Save

Добавляем пользователей из Active Directory(AD). Переходим в вкладку User federation и выбираем Add ldap providers

Заполняем параметры для подключения к AD

Настраиваем параметры получения пользователей и сохраняем настройки. После синхронизации пользователи появятся во вкладке Users

Во вкладке Clients нажимаем Create client

В появившемся окне Client type выбираем OpenID Connect, задаем Client ID и Name

Обратите внимание, что до версии платформы 8.3.22 поддерживается только поток авторизации "Implicit flow". Поэтому если вы используете версию 8.3.21 и младше, то на следующем шаге выберите флаг "Implicit flow"

Задаем Valid redirect URIs в формате http(s)://<fqdn>/<base>/authform.html где <fqdn> – fqdn сервера где опубликована база и <base> путь указанный при публикации. И нажмите кнопку "Save"

Т.к. пользователь в 1с добавлен из ad, то имя для в хода в 1с будет совпадать с атрибутом Name. А в openid connect передается Email, то нам необходимо изменить передаваемый атрибут
 Заходим в созданный ранее клиент, переходим во вкладку Client scopes и открываем 1C_OIDC-dedicated

В появившемся окне во вкладке Mappers нажимаем на Add predefined mapper

Выбираем email и нажимаем Add

Заменяем занчение User Attribute с email на username и сохраняем

Настройка 1С

Вносим в файл default.vrd данную конструкцию

<openidconnect>
     <providers>
         <![CDATA[
          [
             {
                 "name": "keycloak_oidc",
                 "title": "OIDC (Keycloak)",
                 "discovery": "https://<keycloak-server-name>/realms/<realm-name>/.well-known/openid-configuration",
                 "authenticationClaimName": "email",
                 "authenticationUserPropertyName": "name",
                 "clientconfig": {
                 "authority": "http://<keycloak-server-name>/realms/<realm-name>",
                 "client_id": "<client-id>",
                 "redirect_uri": "http://<web-server-name>/<publication-name>/authform.html",
                     "scope": "email openid",
                     "response_type": "id_token token",
                     "filterProtocolClaims": false,
                     "loadUserInfo": false
                 }
             }
         ]]]>
     </providers>
     <allowStandardAuthentication>true</allowStandardAuthentication>
 </openidconnect>


где
 name – имя подключения
 title – отображаемое имя
 discovery – url методанных keycloak
 authority – url realms
 redirect_uri – значение Valid redirect URIs

Включаем для пользователя аутентификацию по протоколу openid-connect

Проверяем подключение

В браузере открываем url с опубликованной базой

При нажатии кнопки «Войти» происходит редирект в keycloak

Для данного realm настроен способ push и после ввода логина/пароля приходит пуш в мобильное приложение indeed key в котором его необходимо подтвердить


Вход через тонкий клиент

Нажимаем на стрелочку

В появившемся окне заполняем учетные данные и нажимаем  Sign In

Подтверждаем PUSH


(0 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Добавить новый комментарий
 
 
Полное имя:
Email:
Комментарии:
Портал технической поддержки компании Индид