> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aisevenai.ru/llms.txt
> Use this file to discover all available pages before exploring further.

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

> От генерации ключей до первого входа пользователя

Интеграция начинается с обмена ключами. После этого вы сможете подписывать токены — и для входа пользователей, и для запросов к Partner API.

<Steps>
  <Step title="Сгенерируйте пару ключей">
    RSA, 2048 бит. Приватный ключ остаётся у вас и никогда никуда не передаётся.

    ```bash theme={null}
      openssl genrsa -out private.pem 2048
      openssl rsa -in private.pem -pubout -out public.pem
      cat private.pem public.pem
    ```

    Последняя команда выведет оба ключа в терминал. Нам нужно передать только **публичный** — тот, что начинается с `BEGIN PUBLIC KEY`:

    ```text theme={null}
      -----BEGIN PRIVATE KEY-----
      MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQ...
      -----END PRIVATE KEY-----
      -----BEGIN PUBLIC KEY-----
      MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1x4...
      -----END PUBLIC KEY-----
    ```

    <Warning>
      Приватный ключ хранится только на вашем сервере. Не размещайте его в клиентском коде, репозитории или конфигурации, доступной третьим лицам.
    </Warning>

    <Note>
      Если под рукой нет `openssl`, посмотреть структуру ключей и проверить, что пара корректна, можно в [онлайн-инструменте](https://travistidwell.com/jsencrypt/demo/). Генерировать там **рабочие** ключи не стоит — они создаются в браузере, и приватный ключ не должен туда попадать.
    </Note>
  </Step>

  <Step title="Передайте нам публичный ключ">
    Отправьте содержимое `public.pem` вашему контактному лицу в Ai-Seven.

    Вместе с ключом подтвердите, что идентификатор пользователя в вашей системе стабилен — не меняется со временем. По нему пользователь опознаётся при каждом входе.
  </Step>

  <Step title="Получите идентификатор ключа">
    В ответ мы пришлём `kid` — идентификатор вашего ключа. Его нужно указывать в заголовке каждого токена, который вы подписываете.
  </Step>
</Steps>
