Аутентификация

Данный раздел содержит описание методов, которые используются для аутентификации пользователя на платформе Twin.

Токен доступа (JWT) — способ представления аутентификационных данных в виде JSON-объекта для передачи между клиентом и платформой Twin.

Токен доступа состоит из следующих частей:

  • header — заголовок (содержит данные в виде JSON объекта; кодируется при помощи алгоритма base64url);
  • payload — полезная нагрузка (содержит данные в виде JSON объекта; кодируется при помощи алгоритма base64url);
  • signature — подпись (вычисляется на основе указанных выше закодированных частей.

Части токена доступа разделяются точкой.

Пример токена доступа:

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpYXQiOjE2NDU0MTMwMjgsImV4cCI6MTY0NjAxNzgyOCwic3ViIjoiMzE1OSIsImNvbXBhbnlfaWQiOjE4MzAsInJvbGVzIjp7IjE4MzAiOlsiQ09NUEFOWV9BRE1JTiJdfSwiY29tcGFuaWVzIjp7IjU3NiI6MTgzMCwiNzQ4IjoxODMwLCI2MDUiOjE4MzAsIjYwOCI6MTgzMCwiNjUwIjoxODMwfSwidmVyc2lvbiI6M30.y0Y4sgoFLHuttuKDvPvQdlkxzivmwsuLO2Ucep1W-JcByNk76NbGWEKBjiQoCypZdVt4j4unjoIWcAjT-G_igHk9zLYN0oDz1y8AVYWP7TG2g1PMvJbQxoMyKuD6P9G5ZCnUJjQW5cy7hwrx7ZPetPbjyXCwW9TICEpJp9UTO5XlGomfwz1eC64kwuUVa1eNiRWSzCFukB9I3KUIThwvxRNQe-BxMBFWk1i93xESb6ZFUzSpxFNYxtGD5ryOzyHw5nUc7pcp_SaY_0hhfTuQqgFt8ncjKu1OU5xvayPt4hov7XQY5wA7KvRZseABLjtwG6uZPUsNFvaAvB0aXylwL_yocONyFLmX53knhi6TvD0BxaMtexVrHyuhouBN3noKeHCvcQqnTppyeOnv0OJa7Ihl_hVbNYK3o7L3qgPL6JeLFz9ew0OuFXn3sZZFBaNxrrHbbv8DpngT8i6eEPKnt0zROQlY-v1_C7K-J5TnnZsQ26biZb95stkqyvEroDfFu5Wm_i2DxUzpBd31AMWaMp3WfMLBtva14GrFYtHvTjk3SGAB9hTmg24GGJ7kwM0BSh79L8WVIzT_Pl6cX49h8Yr2zr-IZyVRYpc_hdatytFosBE8XRkZVyMUih1AITwSiaKFEXARKonk4pA1c3M_fHsJSaS93TFdk4AO0czB1gY

Пример заголовка:

{
  "typ": "JWT",
  "alg": "RS512"
}

Описание параметров заголовка

Наименование

Описание

typ

тип токена

alg

алгоритм шифрования

Пример полезной нагрузки:

{
  "iat": 1645413028,
  "exp": 1646017828,
  "sub": "3159",
  "company_id": 1830,
  "roles": {
    "1830": [
      "COMPANY_ADMIN"
    ]
  },
  "companies": {
    "576": 1830,
    "605": 1830,
    "608": 1830,
    "650": 1830,
    "748": 1830
  },
  "version": 3
}

Описание параметров полезной нагрузки

Наименование

Описание

iat

дата создания

exp

время окончания срока действия

sub

идентификатор пользователя платформы Twin

company_id

идентификатор компании пользователя на платформе Twin

roles

тип учетной записи пользователя платформы Twin

companies

зависимые компании

version

Пример подписи:

RSASHA512(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),