Подключение к SSO

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

Переменная

Описание

Пример значения

SSO_SERVICE_ENCRYPTION_KEY

Ключ, используется для безопасной передачи данных между сервисами. Для генерации можно использовать openssl rand -hex 32. Обязателен.

SSO_SERVICE_ENCRYPTION_KEY=7cdf59ed...cccb8489

SSO_URL

URL по которому будет доступен сервис SSO. Обязателен.

SSO_URL=https://sso.gram.ax

AUTH_METHOD

Метод авторизации в SSO. Необходимо выбрать любой доступный один способ авторизации.

Варианты:

  • azure

  • adfs

  • keycloak

  • openid

  • ldap

  • kerberos

Все параметры связанные с AUTH_METHOD, обязательны.

AUTH_METHOD=azure

CONNECTOR_TYPE

Метод получения списка пользователей. Варианты:

  • ldap

  • keycloak

  • scim

Все параметры связанные с CONNECTOR_TYPE обязательны.

CONNECTOR_TYPE=ldap

Авторизация

При AUTH_METHOD = azure

Переменная

Описание

Пример значения

AZURE_TOKEN_URL

Урл до эндпоинта для получения токена.

https://login.microsoftonline.com/HohLpGvI-uPW8-vyyn-QBH1-88fuprQzzpu3/oauth2/v2.0/authorize.

AZURE_API_URL

Урл до эндпоинта получения информации по api.

https://login.microsoftonline.com/HohLpGvI-uPW8-vyyn-QBH1-88fuprQzzpu3/oauth2/v2.0/authorize

AZURE_CLIENT_ID

Идентификатор приложения в azure

0FYSAWm1A-1x4k-e14H-0LHe-gf6qwElcYuz.

AZURE_CLIENT_SECRET

Секрет приложения в azure

rY3yh*suIebMk^k0KGoi3azsIBP&FY@odQsgFVdc.

При AUTH_METHOD = adfs

Переменная

Описание

Пример значения

ADFS_CERT

Сертификат, используемый для аутентификации в ADFS

ADFS_ENTRYPOINT

Точка входа для аутентификации

Наример: https://adfs.gram.ax/adfs/ls/.

ADFS_ISSUER

Идентификатор ADFS

https://adfs.gram.ax/.

ADFS_CALLBACK_URL

URL для обратного вызова после успешной аутентификации

https://app.gram.ax/auth/cb.

При AUTH_METHOD = keycloak.

Переменная

Описание

Пример значения

KEYCLOAK_SERVER_URL

URL сервера Keycloak

https://keycloak.gram.ax/auth/.

KEYCLOAK_REALM

Имя Realm в Keycloak

gramax.

KEYCLOAK_CLIENT_ID

Идентификатор клиента Keycloak

KEYCLOAK_USE_ACCESS_TOKEN_INFO

Необходимо ли брать информацию о пользователе из access_token

KEYCLOAK_USE_ACCESS_TOKEN_INFO=true

При AUTH_METHOD = openid

Переменная

Описание

Пример значения

OPEN_ID_SERVER_URL

URL сервера OpenID

https://keycloak.gram.ax/auth/.

OPEN_ID_REALM

Имя Realm в OpenID

gramax.

OPEN_ID_CLIENT_ID

Идентификатор клиента OpenID

OPEN_ID_CLIENT_SECRET

Секрет клиента OpenID.

При AUTH_METHOD = ldap

Переменная

Описание

Пример значения

LDAP_URL

URL LDAP-сервера.

ldap://ldap.example.com:389 или ldaps://ldap.example.com:636.

LDAP_ADMIN_DN

DN административного пользователя с правами поиска в каталоге.

gramax@gramax.ru

LDAP_ADMIN_PASSWORD

пароль административного пользователя, указанного в LDAP_ADMIN_DN.

secretAdminPass.

LDAP_USER_SEARCH_BASE

DN базовой точки поиска пользователей.

ou=users,dc=example,dc=com.

LDAP_USERNAME_ATTRIBUTE

Атрибут пользователя.

Например, samaccountname, cn, mail. По нему будет поиск пользователя, samaccountname.

LDAP_USER_DN

DN конкретного пользователя, если известен напрямую.

OU=Enabled,OU=GRAMAX-USERS,DC=gramax,DC=local.

LDAP_GROUP_SEARCH_BASE

DN базовой точки поиска групп. Если указан, после аутентификации будет выполнен поиск групп.

ou=groups,dc=example,dc=com.

LDAP_GROUP_CLASS

Класс объекта групповой записи (например, groupOfNames, groupOfUniqueNames).

groupOfNames.

LDAP_GROUP_MEMBER_ATTRIBUTE

Имя атрибута в записи группы, содержащего членов группы.

member

LDAP_GROUP_MEMBER_USER_ATTRIBUTE

Атрибут в записи пользователя, который сопоставляется с LDAP_GROUP_MEMBER_ATTRIBUTE.

dn.

LDAP_ATTRIBUTES

Список атрибутов пользователя (через запятую), которые нужно возвращать при поиске. Если не указано, возвращаются все.

cn,sn,mail.

При AUTH_METHOD = kerberos

Переменная

Описание

Пример значения

KERBEROS_REALM

Kerberos realm (домен Active Directory). Должен быть в UPPERCASE

COMPANY.LOCAL

KERBEROS_SERVICE_PRINCIPAL

Service Principal Name (SPN) для веб-сервиса. Формат: HTTP/hostname@REALM. Hostname в lowercase, realm в UPPERCASE

HTTP/gramax.company.local@COMPANY.LOCAL

KRB5_KTNAME

Environment variable для Kerberos библиотеки. Формат: FILE:/путь/к/keytab

FILE:/opt/gramax/config/gramax.keytab

  • KERBEROS_REALM должен точно совпадать с доменом Active Directory в UPPERCASE

  • KERBEROS_SERVICE_PRINCIPAL должен совпадать с SPN, зарегистрированным в Active Directory

  • Путь в KRB5_KTNAME должен начинаться с префикса FILE:

  • Keytab файл должен иметь права доступа 600 (только владелец может читать/писать)

Список пользователей

При CONNECTOR_TYPE=ldap

Переменная

Описание

Пример значения

LDAP_URL

URL LDAP-сервера.

ldap://ldap.example.com:389 или ldaps://ldap.example.com:636.

LDAP_ADMIN_DN

DN пользователя с правами поиска в каталоге.

gramax@gramax.ru

LDAP_ADMIN_PASSWORD

Пароль пользователя, указанного в LDAP_ADMIN_DN

secretAdminPass.

LDAP_USER_SEARCH_BASE

DN базовой точки поиска пользователей.

ou=users,dc=example,dc=com.

При CONNECTOR_TYPE=keycloak

Переменная

Описание

Пример значения

KEYCLOAK_SERVER_URL

URL сервера Keycloak.

https://keycloak.gram.ax/auth/.

KEYCLOAK_REALM

Имя Realm в Keycloak.

gramax.

KEYCLOAK_API_TOKEN

Токен доступа.

Можно создать используя

При CONNECTOR_TYPE=scim

Переменная

Описание

Пример значения

SCIM_SERVER_URL

URL сервера SCIM.

https://scim.gram.ax/auth/

SCIM_TOKEN

Токен доступа. Используется либо он, либо SCIM_ADMIN_LOGIN и SCIM_ADMIN_PASSWORD для авторизации через Basic.

SCIM_GET_USERS_FILTER

Фильтр для поиска пользователей. Если не задан, используется userName co "${searchSubstring}", где ${searchSubstring} заменяется на строку, переданную пользователем при поиске.

SCIM_ADMIN_LOGIN

Username, если используется Basic-авторизация (необязательно, используется вместо SCIM_TOKEN).

SCIM_ADMIN_PASSWORD

Password, если используется Basic авторизация (необязательно, используется вместо SCIM_TOKEN).