Оглавление
Table of Contents |
---|
1. Создать сертификат интегратора
...
Скрипт запросит ввести и подтвердить "PEM pass phrase" - это пароль к сертификату. Он должен состоять минимум из 4 символов, необходимо его сохранить и хранить в секрете. В результате будет создан файл с ключом сертификата сертификата integrator_private_key.key.
Warning |
---|
Файл integrator_private_key.key и его содержимое никому не передавать и хранить в секрете! |
...
Code Block | ||
---|---|---|
| ||
openssl req -newkey rsa:2048 -nodes -keyout integrator_private.key -x509 -days 365 -out integrator_private.crt |
Скрипт запросит данные для сертификата. Заполнение данных опционально, они не участвуют в проверке подлинности.
...
В результате будет создан файл с сертификатом интегратора integrator_private.crt
Warningtip |
---|
Файл integrator_private.crt и его содержимое никому не передавать и хранить в секрете! необходимо будет далее передать в службу поддержки HRlink |
1.3. Создать публичный ключ сертификата
Code Block | ||
---|---|---|
| ||
openssl x509 -pubkey -noout -in integrator_private.crt > integrator_pubkey.pem |
...
Любым удобным вам способом. Например, в телеграм-бота или на почту help@hr-link.ru
В запросt запросе необходимо указать следующие данные:
- Тенант, для которого необходимо зарегистрировать интегратора
- Имя интегратора в английской транслитерации. Например, Company.
- Значение поля издателя (
issuer
) Bearer-токена. Может совпадать с именем интегратора. Это поле будет использоваться интегратором для генерации Bearer-токена. - Сертификат Интегратора - сертификат публичного ключа Интегратора стандарта X.509 в текстовом формате PEM. Это файл integrator_pubkey.pemcrt, который был сгенерирован выше по тексту.
- Контактный email.
...
В ответе будет предоставлен ID интегратора в системе HRlink, он потребуется для формирования Bearer-токена.
3. Получить Мастер-токен
3.1. Сформировать Bearer-токен, который будем менять на мастер-токен
Bearer-токен - это JWT-токен, подписанный сертификатом приватным ключом интегратора - файлом integrator_private.crtkey, который мы выпустили в п. 1.1. выше по тексту.
Note |
---|
Bearer-токен должен генерироваться программными средствами (автоматически), но далее, для наглядности, мы рассмотрим ручной выпуск. |
- Для создания JWT-токена и его подписания воспользуемся сайтом https://jwt.io/
- Если использовались скрпты из данной инструкции, то поле HEADER:ALGORITHM & TOKEN TYPE должно содержать следующие поля:
UI Text Box {
"alg": "RS256",
"typ": "JWT"
}
alg - алгоритм шифрования RS256
typ - тип токена JWT - Поле PAYLOAD:DATA должно содержать следующие поля:
UI Text Box {
"iss": "Company",
"sub": "9eacedbf-48e3-4bf3-a00c-78b58b2721d7",
"aud": "esa.hr-link.ru",
"iat": 1735111111,
"nbf": 1735111111,
"exp": 1735679400
}
iss - Значение поля издателя (issuer) Bearer-токена, которое мы зарегистрировали через Службу заботы в п. 2.1.3. данной инструкции.
sub - ID интегратора, который мы получили в ответе от Службы заботы в п. 2.2. данной инструкции.
aud - всегда равно esa.hr-link.ru
iat - момент выпуска токена в формате unixtimestamp.
nbf - момент начала действия токена в формате unixtimestamp.
exp - момент истечения срока действия токена в формате unixtimestamp. Не может быть больше 10 минут от момента начала действия (есть возможность изменить ограничение через Службу заботы)Tip Для удобной генерацииunixtimestamp можно воспользоваться сайтом https://www.unixtimestamp.com/
- В поля VERIFY SIGNATURE заполнить содержимое из файлов integrator_private.crt и key и
integrator_pubkey.pem
. - В поле Encoded сгенерируется подписанный Bearer-токен, который мы будем обменивать на мастер-токен.
...
UI Text Box |
---|
curl -X POST --location "https://esa.hr-link.ru/api/v1/masterTokens" \ |
3.2.2. Ответ
UI Text Box |
---|
{ |
...
4.
...
Выполнить запрос с использованием мастер-токена
...
UI Text Box |
---|
curl -X GET --location "https://<tenantHost>/api/v1/currentUser" --http1.1 \ |
...