Открыть сервисСервис

Client ID в информационных системах

Client ID (идентификатор клиента) — уникальный строковый или числовой идентификатор, присваиваемый клиентскому приложению, устройству или пользователю для его однозначного распознавания в информационной системе. Применяется в протоколах авторизации, платёжных системах, системах аналитики, мессенджерах и API-сервисах. В зависимости от контекста client ID может обозначать учётную запись приложения, идентификатор сессии, номер абонента или ключ доступа к программному интерфейсу.

Общее назначение

Идентификатор клиента решает задачу различения множества однотипных участников взаимодействия. Сервер, получая запрос, по client ID определяет, какое именно приложение или устройство к нему обратилось, какие права ему предоставлены и какие лимиты применяются. Идентификатор не является секретом в отличие от пароля или клиентского секрета (client secret): его знание само по себе не даёт доступа к защищённым данным, но позволяет системе адресно применять правила.

Ключевые свойства корректно устроенного client ID:

  • уникальность в пределах системы;
  • неизменность на протяжении жизненного цикла клиента;
  • достаточная длина и непредсказуемость, если идентификатор генерируется автоматически;
  • отсутствие персональных данных в открытом виде.

Применение в протоколах авторизации

Наиболее известное применение — стандарт OAuth 2.0 и построенный на его основе OpenID Connect. В OAuth 2.0 клиент (client) — это приложение, запрашивающее доступ к ресурсам пользователя. При регистрации в системе авторизации приложение получает пару: client ID и client secret. Идентификатор передаётся открыто в параметрах запроса, секрет — только по защищённому каналу.

Типовые типы клиентов в OAuth 2.0:

Тип клиентаХранение секретаПримеры
КонфиденциальныйСекрет хранится на сервереВеб-приложения, серверные сервисы
ПубличныйСекрет не используетсяМобильные приложения, SPA, десктоп-клиенты

Публичные клиенты не могут надёжно хранить секрет, поэтому для них применяются дополнительные механизмы — PKCE, точные redirect URI, ограничение сроков жизни токенов.

Идентификаторы в API и платёжных системах

В программных интерфейсах client ID нередко выполняет роль ключа доступа (API key) или его части. Сервис выдаёт клиенту идентификатор при регистрации, а затем по нему ведёт учёт запросов, тарификацию и контроль квот. В платёжных системах и эквайринге идентификатор клиента связывает транзакции с конкретным магазином или приложением, что позволяет разделять потоки платежей и формировать отчётность.

В системах аналитики client ID часто анонимен: например, в Google Analytics ему соответствует случайно сгенерированный идентификатор браузера или устройства, не содержащий имени пользователя. Это сделано для соблюдения требований к обработке персональных данных.

Client ID в мессенджерах и на клиентских устройствах

В протоколе ICQ и ряде других мессенджеров номер клиента (UIN) исторически выполнял функцию идентификатора пользователя. В современных системах, включая Telegram, различают идентификатор пользователя, идентификатор чата и идентификатор клиентского приложения — последний позволяет серверу различать сессии одного и того же аккаунта на разных устройствах.

В операционных системах и прикладном программном обеспечении client ID может обозначать идентификатор экземпляра программы, подключающегося к серверу: например, в системах «клиент — сервер» бухгалтерского или складского учёта каждое рабочее место получает собственный идентификатор для разграничения прав и ведения журнала операций.

Отличие от смежных понятий

Client ID часто путают с близкими по смыслу идентификаторами:

  • User ID — идентификатор пользователя, то есть человека или учётной записи, а не приложения.
  • Client secret — секретный ключ, дополняющий идентификатор при аутентификации конфиденциальных клиентов.
  • Session ID — идентификатор конкретной сессии, который меняется при каждом входе.
  • Tenant ID — идентификатор организации в мультитенантных системах.

Один пользователь может работать через несколько клиентов, а один клиент — обслуживать множество пользователей, поэтому эти идентификаторы не взаимозаменяемы.

Безопасность

Основные риски, связанные с client ID:

  1. Утечка в открытый репозиторий. Публикация идентификатора вместе с секретом в коде на GitHub и аналогичных платформах приводит к компрометации приложения.
  2. Подмена redirect URI. Если система авторизации не проверяет адрес возврата, злоумышленник может перенаправить код авторизации на свой сервер.
  3. Перебор идентификаторов. Короткие предсказуемые значения позволяют перебирать клиентов и собирать сведения о системе.
  4. Отсутствие ротации. Идентификаторы и секреты, не меняющиеся годами, повышают ценность их утечки.

Меры защиты включают хранение секретов в переменных окружения или специализированных хранилищах, обязательную проверку redirect URI, использование PKCE для публичных клиентов, ограничение области действия токенов (scope) и регулярную ротацию ключей.

Регулирование в России

Обработка идентификаторов, позволяющих косвенно идентифицировать человека (например, связка client ID с историей действий), может подпадать под действие Федерального закона № 152-ФЗ «О персональных данных». Оператор обязан обеспечивать конфиденциальность таких сведений и получать согласие субъекта, если идентификатор позволяет установить его личность. Требования к защите информации также устанавливает Федеральный закон № 149-ФЗ «Об информации, информационных технологиях и о защите информации».

Примеры из практики

  • Регистрация приложения в сервисе «Яндекс ID» или VK ID выдаёт пару идентификатора и секрета для интеграции входа через эти платформы.
  • В Единой системе идентификации и аутентификации (ЕСИА, портал «Госуслуги») информационные системы-клиенты получают идентификатор для доступа к API.
  • В банковских Open API (например, в стандартах Банка России) клиентские идентификаторы используются для разграничения доступа сторонних приложений к счетам с согласия клиента.

Источники

  • Спецификация OAuth 2.0 (RFC 6749).
  • Спецификация OpenID Connect Core 1.0.
  • Федеральный закон № 152-ФЗ «О персональных данных».
  • Федеральный закон № 149-ФЗ «Об информации, информационных технологиях и о защите информации».
  • Документация платформ Яндекс ID, VK ID, ЕСИА.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru