Пример настройки для Keycloak

Вы можете использовать любой identity-провайдер. В нашем примере мы продемонстрируем, как настроить Keycloak для аутентификации.

Для настройки работы с Keycloak необходимо выполнить следующие шаги:

  1. Запустите Keycloak на сервере с помощью следующей команды:
    sudo docker run --name keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=password -p 8080:8080 jboss/keycloak
    где
    KEYCLOAK_USER – логин, который используется для входа в консоль администратора в Keycloak.
    KEYCLOAK_PASSWORD – пароль для входа в консоль администратора в Keycloak.
    8080 – стандартный порт Keycloak для работы по HTTP. При работе с HTTPS используется порт 8443.

  2. Откройте в браузере консоль администратора Keycloak по адресу: {домен_Keycloak}/auth/admin

  3. На платформе Visiology в панели администрирования перейдите на вкладку Основные > Авторизация > OpenID Connect > Основные настройки:

     

    На вкладке Основные настройки заполните следующие поля (звездочкой помечены обязательные поля):

Поле

Описание

Поле

Описание

UserName claim*

Можно указать любое наименование из токена, например, preferred_username.

Repsonse type*

Проверка аутентификации. Доступные значения: id_token (проверка аутентификации через Implicit Flow) или code (проверка аутентификации через Authorization Code Flow). Значение code может также использоваться при любом значении поля Claims source.

Authentication scheme*

Схема аутентификации.

Authority*

http(https)://{домен Keycloak}/auth/realms/{наименование_Realm}

Client id*

Наименование клиента из Keycloak.

Client secret

Скопируйте секрет в настройках клиента в Keycloak на вкладке Credentials и вставьте в это поле.

Callback path*

Необязательный ограниченный путь для обработки обратного вызова аутентификации.

Scope*

Список запрашиваемых разрешений.

Resourse

Идентификатор ресурса, к которому будет запрошен доступ.

Claims source

Доступные значения:

  • userinfo endpoint (выберите это значение при подключении через Keylcoak)

  • id_token (выберите это значение при подключении через ADFS)

  • access_token

Примеры настройки с использованием различных типов ответа (поле Response type)

Проверка аутентификации через Implicit Flow (id_token)

Настройки в Keycloak

 

Настройки на платформе Visiology

 

Настройки в Keycloak

 

Настройки на платформе Visiology

 

Проверка аутентификации через Implicit Flow при использовании userinfo endpoint в качестве Claims source

Настройки в Keycloak

Настройки на платформе Visiology

 

Проверка аутентификации через Authorization Сode (code)

Настройки в Keycloak

 

Настройки на платформе Visiology

 

Настройки в Keycloak

 

Настройки на платформе Visiology

 

Примеры настройки с использованием различных значений в поле Claims source

При выборе значения в поле Claims source, необходимо включить соответствующую опцию в Keycloak в настройках Mappers клиента:

  • При использовании userinfo endpoint необходимо активировать опцию Add to userinfo.

  • При использовании id_token необходимо активировать опцию Add to ID token.

  • При использовании access_token необходимо активировать опцию Add to access token.

Настройки при использовании значения id_token

Настройки в Keycloak

 

Настройки на платформе Visiology

 

Настройки в Keycloak

 

Настройки на платформе Visiology

 

Настройки при использовании значения userinfo endpoint

Настройки в Keycloak

Настройки на платформе Visiology

Настройки при использовании значения access_token

Настройки в Keycloak

Настройки на платформе Visiology

Если вы настроили что-то неверно, то можно выключить, а затем включить внешнюю авторизацию с помощью скрипта.
Для этого на сервере нужно выполнить следующие команды:

ID=$(sudo docker ps | grep visiology_admin | awk '{print $1}') sudo docker exec -it $ID sh node administrator-tools/change-auth-type/index.js

По умолчанию скрипт работает на выключение.


Смотрите также