openssl genrsa -des3 -out integrator_private.key 2048 |
Скрипт запросит ввести и подтвердить "PEM pass phrase" - это пароль к сертификату. Он должен состоять минимум из 4 символов, необходимо его сохранить и хранить в секрете. В результате будет создан файл с ключом сертификата integrator_private.key.
Файл integrator_private.key и его содержимое никому не передавать и хранить в секрете! |
openssl req -newkey rsa:2048 -nodes -keyout integrator_private.key -x509 -days 365 -out integrator_private.crt |
Скрипт запросит данные для сертификата. Заполнение данных опционально, они не участвуют в проверке подлинности.
Country Name (2 letter code) [AU]: RU |
С помощью этой команды мы выпускаем сертификат, подписанный приватным ключом. В примере сертификат выпускается на 365 дней. Этот срок можно изменить на усмотрение интегратора.
В результате будет создан файл с сертификатом интегратора integrator_private.crt
Файл integrator_private.crt и его содержимое никому не передавать и хранить в секрете! |
openssl x509 -pubkey -noout -in integrator_private.crt > integrator_pubkey.pem |
С помощью этой команды мы генерируем публичный ключ для сертификата. Этим ключом HRlink будет проверять достоверность подписи токена интегратора. В результате будет создан файл с публичным ключом integrator_pubkey.pem
Файл integrator_pubkey.pem не является секретом. |
Любым удобным вам способом. Например, в телеграм-бота или на почту help@hr-link.ru
В запросе необходимо указать следующие данные:
issuer
) Bearer-токена. Может совпадать с именем интегратора. Это поле будет использоваться интегратором для генерации Bearer-токена.integrator_pubkey.pem
, который был сгенерирован выше по тексту.В ответе будет предоставлен ID интегратора в системе HRlink, он потребуется для формирования Bearer-токена.
Bearer-токен - это JWT-токен, подписанный приватным ключом интегратора - файлом integrator_private.key, который мы выпустили в п. 1.1. выше по тексту.
Bearer-токен должен генерироваться программными средствами (автоматически), но далее, для наглядности, мы рассмотрим ручной выпуск. |
{ |
{ |
Для удобной генерацииunixtimestamp можно воспользоваться сайтом https://www.unixtimestamp.com/ |
integrator_pubkey.pem
.https://docs.myhrlink.ru/public/openapi/hr-link/#tag/authCurrentUser/operation/createMasterTokens
curl -X POST --location "https://esa.hr-link.ru/api/v1/masterTokens" \ |
{ |
curl -X GET --location "https://<tenantHost>/api/v1/currentUser" --http1.1 \ |
HR_LINK_ID
- значение в Impersonated-User-Id воспринимается как ID пользователя внутри HRlink.SNILS
- значение в Impersonated-User-Id воспринимается как СНИЛС физлица пользователя.EXTERNAL_ID
- значение в Impersonated-User-Id воспринимается как значение ID пользователя во внешней системе. Поиск пользователя по ID из внешней системы может происходить по-разному, в зависимости от наличия и значения заголовка Impersonated-User-Id-External-System-Type.Impersonated-User-Id-External-System-Type
не задан или пустой, то выполняется поиск по ID пользователя клиента во внешней системе, указанному при создании физлица в поле externalId (см. Метод создания физлица).Impersonated-User-Id-External-System-Type
задан, то выполняется поиск по ID пользователя во внешней системе с заданным типом, указанных при создании физлица в массиве userExternalIds в одном из объектов в полях systemType и value соответственно (см. Метод создания физлица).HR_LINK_ID
.Если Impersonated-User-Id-Type = HR_LINK_ID, то Impersonated-User-Id- это идентификатор, который возвращается в поле id метода currentUser (не путать с clientUserId) |