Инструкция по настройке приложения [Auth]
Установка доверенных отношений между клиентом и сервером
Приложение [Auth] используется для установки безопасных и доверенных отношений между клиентом и сервером. Это позволяет пользователям осуществлять аутентификацию и авторизацию в защищенных средах, передавая роли и права доступа между различными системами. В данной инструкции описаны шаги по настройке ключей и доверенных связей между клиентом и сервером.
Предварительные требования
Перед началом настройки убедитесь, что у вас есть следующие компоненты:
- Сервер: Система, которая будет выступать в роли сервера.
- Клиент: Система, которая будет выступать в роли клиента.
- Доменные имена серверной и клиентской сторон.
- Доступ к интерфейсу [Auth] на каждой из сторон (клиент/сервер). Для доступа требуется роль admin.
Общие рекомендации
- Безопасность: Убедитесь, что все ключи и сертификаты безопасно хранятся и недоступны для посторонних лиц.
- Проверка доменных имен: Убедитесь, что доменные имена клиента и сервера правильно введены для успешной настройки доверительных отношений.
- Логи: В случае возникновения ошибок, проверьте журналы (
logs) для подробного описания проблемы.
Инструкция по установке [Auth]
- Установите приложение [Auth] на обеих сторонах (на серверной и клиентской системах).
- После установки войдите в агентский интерфейс приложения для последующей настройки.
Генерация ключей
Пропустите этот этап, если на каждой из сторон уже есть своя пара ключей.
-
Установите приложение [Auth] на обеих сторонах (на серверной и клиентской).
-
На сервере:
- Перейдите в навигато ре в Auth → Crypto Keys.
- Нажмите Generate new pair. В результате страница обновится и на форме появятся две записи ключей – открытый и закрытый.
-
Повторите действие 2 на экземпляре клиента.
-
Произведите обмен открытыми ключами между сервером и клиентом. Для этого добавьте записи созданных открытых/public ключей на оба экземпляра:
- На сервере создайте запись ключа в Auth → Crypto Keys и скопируйте в поля записи соответствующие данные открытого/public ключа, созданного на экземпляре клиента, и сохраните запись.
- На экземпляре клиента создайте запись ключа в Auth → Crypto Keys и скопируйте в поля записи соответствующие данные открытого/public ключа, созданного на сервере, и сохраните запись.
В результате в таблице Crypto Keys (ain_crypto_key) будт отображаться три записи – две, сгенерированные на текущем экземпляре и одна, добавленная вручную со второго экземпляра.
-
После установки войдите в агентский интерфейс приложения для последующей настройки доверенного сервера и клиента.
Добавление доверенного клиента
Действие выполняется на стороне сервера:
- Перейдите в раздел Auth → Trusted Clients.
- Нажмите New, чтобы создать новую запись клиента.
- Добавьте доменное имя клиента. Например, client.example.com.
- Нажмите Save или Save and exit, чтобы сохранить запись.
Поля формы Trusted Client
| Поле | Обязательно | Описание |
|---|---|---|
| Domain name | Да | Укажите доменное имя клиента. |
| Type | Да | Укажите тип авторизации. Доступные опции:
|
| Use authorization rules | Нет | Установите флажок, чтобы настроить правила авторизации (Authorization rules). Поле доступно, если в поле Type выбрано Certificate. |
| Authorization Rules | Нет | Настройте правила авторизации для пользователей. Поле обязательно, если флажок Use authorization rules установлен. |
| Client secret | Да | Укажите клиентский ключ. Поле доступно, если в поле Type выбрано JWT. |
Настройка с JSON Web Token
При выбранном типе авторизации JWT настройка доверенного клиента требует добавления клиентского ключа (Client secret) – пароля, необходимого для обмена временного токена на JWT.
Пример
Для входа перейдите по ссылке вида https://test-server.simpleone.ru/auth/login-to?client_id=test&redirect_url=https://test.local/callback.php, в которой:
- client_id – то, что указано в поле Domain name записи доверенного клиента.
- redirect_url – URL, на который необходимо отправить пользователя потом, и куда будет передан временный токен через параметр ?code=....
При возникновении ошибки пользователь будет переадресован на страницу, указанную в redirect_url, а в параметрах ?error=1&error_message=... будет передан текст ошибки.
После получения временного токена обменяйте его на JWT, выполнив запрос к getTokenByAuthorizationCode.
Сопоставление временного токена и JWT хранится в таблице Temporary token mapping (ain_temp_token_mapping). После обмена на записи временного токена будет установлен флажок Used. Повторный обмен этого временного токена станет невозможным.
Конечные точки
/v1/api/auth/ro/getTokenByAuthorizationCode – используйте для обмена временного токена на JWT. Параметры:
- client_id – то, что указано в Domain name записи доверенного клиента.
- client_secret – клиентский ключ.
- code – временный токен, полученный при переадресации.
/v1/api/auth/ro/user-info – используйте для получения данных о пользователе.
Для авторизации укажите в заголовке Authorization: Bearer JWT_TOKEN_HERE.