|
Предварительные требования
- Установленный и настроенный 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

|