Руководство и понимание

Командные средства управления на основе SCIM для шлюза AI API: предоставление пользователей, отзыв ключей и поддержание работоспособности сервисных учетных записей

Используйте SCIM и SSO в качестве входных данных жизненного цикла, а затем позвольте шлюзу применять явные роли, профили модели, полномочия на расходы, владение ключами и правила передачи сервисных учетных записей. Целью является быстрый вывод из эксплуатации без нарушения работы производственных приложений.

Отстранение человека от работы не должно превращаться в учение о простое. Во многих командах поставщик удостоверений может быстро отключить сотрудника, но шлюз AI API по-прежнему имеет долгоживущие ключи разработчика, общие сценарии, учетные записи производственных служб, арендаторов-посредников и привилегии выставления счетов, которые не привязаны четко к одной учетной записи человека. Практический подход заключается в использовании SCIM в качестве входных данных жизненного цикла, а затем сохранении авторизации, владения ключом, лимитов расходов, доступа к модели и записей аудита в качестве явных объектов шлюза.

Проблема: изменение личности — это не то же самое, что авторизация API

Система единого входа отвечает на вопрос, может ли пользователь войти в систему. SCIM помогает автоматизировать подготовку пользователей и групп. Ни один из них сам по себе не отвечает на все эксплуатационные вопросы, которые должен решать шлюз ИИ: каким арендатором может управлять этот пользователь, какие профили модели он может использовать, какие ключи являются личными, какие ключи управляют производством, кто может утверждать увеличение бюджета и какие объекты клиентов Partner API они могут трогать?

Чистая архитектура рассматривает удостоверение как источник событий жизненного цикла, а не как модель полной авторизации. Шлюз должен получать изменения пользователей и групп от поставщика удостоверений, нормализовать их и преобразовывать в собственные записи шлюза. Затем эти записи должны быть оценены во время выполнения на предмет действий администратора, создания ключей API, доступа к модели, лимитов расходов, владения сервисным аккаунтом и экспорта аудита.

Факт. SCIM 2.0 — это стандартный протокол IETF для управления междоменной идентификацией. Поведение протокола указано в RFC 7644, а схемы ресурсов — в RFC 7643. SCIM предоставляет командам стандартный способ создания, обновления, деактивации и группировки пользователей в разных системах.

Рекомендация. Не помещайте авторизацию шлюза непосредственно в имена групп IdP или пути запросов. Используйте группы SCIM в качестве входных данных для контролируемой таблицы сопоставления, а затем оценивайте роли и политики шлюза на основе записей, принадлежащих шлюзу.

Основные объекты, которыми должен владеть шлюз

Шлюзу необходима собственная модель авторизации, поскольку доступ LLM сочетает в себе безопасность, стоимость и непрерывность работы. Как минимум, определите эти записи как объекты первого класса:

<ул>
  • Идентификация: предоставленный пользователь-человек, связанный с темой IdP, адресом электронной почты, статусом и членством в группах.
  • Аренда или рабочая область: административная граница для пользователей, ключей, бюджетов, профилей моделей, интеграции и использования.
  • Роль: разрешения шлюза, такие как разработчик, администратор клиента, администратор по выставлению счетов, администратор модели, аудитор или администратор Partner API.
  • Профиль модели: разрешенный набор моделей, правил маршрутизации, ограничений обработки данных и вентилей функций.
  • Распорядитель бюджета: кто может тратить средства, повышать лимиты, создавать дорогостоящие ключи или утверждать временные исключения.
  • Ключ API, принадлежащий человеку: ключ, созданный для одного человека, который обычно отменяется или приостанавливается, когда этот человек уходит.
  • Учетная запись службы: идентификатор приложения с указанием владельцев, цели, среды, метаданных ротации, отметки времени последнего использования и прикрепленной политики.
  • Событие аудита: минимизированная запись решений об идентификации, роли, ключе, бюджете и авторизации.
  • Такое разделение делает отключение детерминированным. Пользователь может стать неактивным, не удаляя учетные записи служб, которые были правильно зарегистрированы в качестве удостоверений приложения. Администратор клиента может потерять полномочия по выставлению счетов, не теряя базового доступа для аудита только для чтения. Реселлер может управлять назначенными клиентами клиентов, не имея возможности перечислять несвязанных клиентов.

    Последовательность действий: от события SCIM до доступа к шлюзу

    Полезный процесс подготовки скучен по своей конструкции. Он должен допускать повторные попытки, частичные обновления и отложенную групповую синхронизацию. Реализации SCIM различаются по времени, режиму удаления или деактивации, сопоставлению атрибутов и поддержке групп, поэтому шлюзу следует избегать ненадежных предположений.

    1. Вставьте и нормализуйте пользователя

    Когда шлюз получает событие создания или обновления пользователя SCIM, он должен обновить идентификационную запись, используя стабильный внешний идентификатор. Сохраните статус пользователя, отображаемое имя, адрес электронной почты, отдел или центр затрат, если таковые имеются, а также необработанные ссылки на группы IdP в нормализованной форме. Избегайте использования электронной почты в качестве единственного неизменяемого идентификатора; электронные письма меняются.

    Пример нормализованных идентификационных полей:

    {
      "external_subject": "idp-user-12345",
      "электронная почта": "[email protected]",
      «активный»: правда,
      "группы": ["llm-разработчики", "support-ai-prod"],
      "cost_center": "поддержка",
      "last_scim_event_at": "2026-08-30T10:14:00Z"
    

    2. Преобразование групп в роли шлюза

    Используйте таблицу перевода, управляемую шлюзом. Каждая строка должна привязывать ссылку на группу IdP к арендатору, роли и дополнительным профилям, таким как разрешенные модели или бюджетные классы. Несопоставленные группы не должны ничего предоставлять. Привилегированные сопоставления должны быть проверены, особенно администратором по выставлению счетов, администратором модели, владельцем клиента и администратором Partner API.

    {
      "idp_group": "support-ai-prod",
      "арендатор": "поддержка",
      "роль": "разработчик",
      "model_profile": "модели, одобренные поддержкой",
      "budget_profile": "стандартный-командный бюджет",
      «requires_review»: ложь
    

    Рекомендация: используйте запрет по умолчанию для несопоставленных групп. Для вновь созданной группы лучше не предоставлять доступ к ИИ, чем случайно унаследовать производственную модель или полномочия по выставлению счетов, потому что строка соответствует префиксу пути.

    3. Реализуйте эффективный доступ

    После перевода группы материализуйте эффективный доступ пользователя к шлюзу: членство в арендаторе, роли, профили модели, разрешения на создание ключей, бюджетные полномочия и разрешения на интеграцию. Проверки во время выполнения должны считывать это материализованное представление или строго согласованную службу авторизации, а не анализировать строки группы IdP при каждом запросе.

    Это также дает администраторам удобный обзор доступа: «покажите мне всех, кто может создавать ключи в клиенте поддержки», «покажите мне, кто может повысить ежемесячные лимиты расходов» и «покажите мне всех пользователей, которые могут получить доступ к дорогостоящим моделям рассуждения».

    Отдельные человеческие ключи от сервисных учетных записей

    Самое важное функциональное различие простое: человеческий ключ представляет человека; учетная запись службы представляет приложение. Использование обоих ключей как общих ключей API создает риск отключения.

    Ключи, принадлежащие человеку, должны наследовать жизненный цикл пользователя-человека. Когда пользователь становится неактивным, шлюз должен заблокировать создание нового ключа и приостановить или отозвать личные ключи. У этих ключей также должны быть указаны владелец, арендатор, профиль модели, профиль бюджета, временная метка последнего использования и метаданные цели, чтобы команды могли видеть злоупотребления до дня отключения.

    Ключи сервисных учетных записей не должны принадлежать одному увольняющемуся сотруднику, что может привести к нарушению производственного процесса. У учетной записи службы должно быть как минимум два владельца-человека или группа владельцев, метка среды, политика ротации, видимость последнего использования и профиль политики. Он должен оставаться активным, когда один владелец уходит, при условии, что существует другой действительный владелец или процесс разбивания стекла.

    Факт. Основные рекомендации по облачным технологиям обычно не рекомендуют использовать неуправляемые долгоживущие ключи сервисных учетных записей и рекомендуют ограничивать исключения. Тот же принцип применим и к ключам шлюза AI: сохраняйте идентификаторы приложений явными, определяйте область действия, проверяйте и меняйте их.

    Рекомендация. Если личный ключ используется автоматическим заданием, не сохраняйте его молча во время отключения. Поместите его в карантин, пометьте как неверно классифицированное производственное использование, потребуйте передачи права собственности и замените его ключом сервисного аккаунта в соответствии с политикой.

    Проектируйте деинициализацию как конечный автомат

    Деинициализация должна представлять собой рабочий процесс, а не одну команду удаления. Конечный автомат обеспечивает шлюзу достаточную структуру для быстрого снижения рисков, сохраняя при этом возможность аудита и непрерывность производства.

    Состояние 1: деинициализация получена

    Шлюз получает сообщение о деактивации, удалении, удалении группы или аналогичное событие жизненного цикла SCIM. Запишите событие, его источник и предыдущий эффективный доступ. Поскольку события IdP могут повторяться или приходить не по порядку, сделайте этот шаг идемпотентным.

    Состояние 2: Пользователь помечен как неактивный

    Установите неактивный идентификатор шлюза. Блокируйте интерактивный вход, действия администратора, создание новых ключей, создание новых сервисных учетных записей и изменение бюджета. Это должно произойти до запуска более медленных задач очистки.

    Состояние 3: Персональные ключи приостановлены

    Приостановить ключи, принадлежащие человеку, немедленно или после короткого льготного периода, определенного политикой. Более безопасным вариантом является немедленная приостановка. Для разработчиков шлюз может возвращать явную ошибку аутентификации, которая указывает администраторам на неактивного владельца, идентификатор ключа, арендатора и последнее успешное использование.

    Состояние 4: Требуется передача права собственности

    Найдите ресурсы, принадлежащие неактивному пользователю: учетные записи служб, арендаторов, профили моделей, интеграции, контакты для выставления счетов, учетные данные Partner API и каналы оповещений. Передавайте право собственности автоматически, если существует действующая группа владельцев. В противном случае поместите ресурс в очередь «Требуется владелец».

    Состояние 5: Уведомления и проверка

    Уведомите владельцев арендаторов, администраторов безопасности или администраторов выставления счетов. Уведомление должно включать затронутые ключи, временные метки последнего использования, использование за последние 30 и 90 дней, учетные записи служб, которым требуется новый владелец, а также любые личные ключи, которые недавно обслуживали рабочий трафик.

    Состояние 6: Завершение

    После того, как это разрешено правилами хранения, завершите удаление или анонимизацию атрибутов пользователя, сохранив при этом необходимые записи аудита. Аудит жизненного цикла удостоверений обычно не требует необработанных подсказок. Храните минимизированные подсказками события, описывающие решение политики, идентификаторы объектов, субъекта, клиента, метку времени и результат.

    Доступ к модели и лимиты расходов относятся к одному обзору

    Авторизация шлюза AI касается не только того, кто может звонить в конечную точку. Пользователю может быть разрешено вызывать для разработки недорогие модели, но не дорогостоящие модели рассуждений, размещенные инструменты, пакетные задания или производственные псевдонимы. Пользователю может быть разрешено тратить средства из командного бюджета, но он не может одобрить его увеличение.

    Для каждой эффективной роли определите соответствующую стоимость и разрешения модели:

    <ул>
  • Разрешенные профили моделей и внутренние псевдонимы.
  • Максимальная расчетная стоимость каждого запроса.
  • Профиль месячного или дневного бюджета.
  • Разрешение на создание личных ключей.
  • Разрешение создавать или владеть учетными записями служб.
  • Разрешение на использование размещенных инструментов, обработку файлов, сеансы реального времени или пакетные рабочие нагрузки.
  • Разрешение на просмотр аналитики использования, счетов или экспорта центров затрат.
  • Рекомендация. Создайте единый экспорт проверки доступа, который объединяет удостоверения, роли шлюза, активные ключи, сервисные учетные записи, использование за последние 30 и 90 дней, разрешения модели и полномочия по бюджету. Это более полезно, чем простой список пользователей, поскольку он показывает одновременно операционный риск и покупательную способность.

    Партнерский API и мультитенантная авторизация

    Автоматизация API партнеров добавляет еще одну границу авторизации. Агентство, реселлер или платформа могут предоставлять клиентские арендаторы, пользователей, ключи, бюджеты и экспорт данных об использовании через API. Внутренние пользователи, управляемые SCIM, не должны автоматически получать широкий доступ к объектам клиента только потому, что они администрируют собственный клиент партнера.

    Сделайте каждую операцию Partner API ограниченной как для вызывающей стороны, так и для клиентского клиента. Подготовка должна быть идемпотентной: создание одного и того же клиента, сопоставления групп или пользователя дважды должно привести к одному ожидаемому состоянию. Конечные точки листинга должны возвращать только те объекты, которыми явно разрешено управлять вызывающему объекту.

    Это важно, поскольку сбои авторизации на уровне объекта и свойства объекта являются распространенными рисками API. В шлюзе AI открытые объекты являются конфиденциальными: записи арендаторов, ключи API, реестры использования, бюджеты, разрешения моделей, списки участников и учетные записи служб. Шлюзу следует протестировать эти пути с несколькими идентификаторами и несколькими идентификаторами клиентов, а не только с администратором счастливого пути.

    Полезные тесты включают:

    <ул>
  • Администратор клиента A пытается прочитать, сменить или отозвать ключи клиента B.
  • Приостановленный пользователь пытается использовать старый личный ключ API.
  • Администратор реселлера пытается перечислить клиентов, не принадлежащих владельцам.
  • Участник проекта пытается изменить платежные настройки.
  • Владелец сервисного аккаунта пытается предоставить себе права администратора по выставлению счетов.
  • Учетные данные Partner API пытаются изменить профили модели за пределами разрешенной области действия клиента.
  • Аудит без немедленного накопления

    При расследовании жизненного цикла удостоверений обычно необходимо знать, кто изменил доступ, какая политика была оценена, какой объект был затронут и было ли действие успешным. Обычно они не требуют необработанных подсказок. Ведите отдельный поток аудита для принятия решений по идентификации и политике.

    Записывать такие события, как:

    <ул>
  • Пользователь создан, обновлен, деактивирован или удален.
  • Группа сопоставлена, не сопоставлена или отклонена.
  • Роль шлюза предоставлена, изменена или удалена.
  • Персональный ключ создан, приостановлен, отозван или использован после деактивации.
  • Владелец сервисного аккаунта изменился.
  • Бюджетные полномочия предоставлены или отменены.
  • Профиль модели прикреплен или отсоединен.
  • Запрос API партнера отклонен из-за области действия клиента.
  • Каждое событие должно включать субъекта, субъекта, арендатора, тип объекта, идентификатор объекта, исходную систему, решение, код причины и метку времени. Используйте стабильные идентификаторы вместо необработанного содержимого подсказки. Если необходимы подробные сведения о полезной нагрузке, храните метаданные структурированной политики, а не входные данные модели.

    Контрольный список реализации

    Используйте этот контрольный список при внедрении группового контроля на основе SCIM в шлюзе искусственного интеллекта:

    <ул>
  • Определите собственные объекты шлюза для арендатора, роли, пользователя, ключа, учетной записи службы, профиля модели, профиля бюджета и доступа к интеграции.
  • Храните тему внешнего поставщика идентификационной информации отдельно от электронной почты.
  • Сделать обновления пользователей и групп SCIM идемпотентными.
  • Используйте проверенную таблицу преобразования групп в роли с запретом по умолчанию.
  • Требовать явного одобрения для сопоставления привилегированных ролей.
  • Отличайте ключи, принадлежащие человеку, от ключей сервисного аккаунта в схеме и пользовательском интерфейсе.
  • Блокируйте неактивным пользователям доступ к входу в систему, действиям администратора, созданию ключей и изменению бюджета.
  • Приостановить персональные ключи во время деинициализации.
  • Перенести или поместить в карантин ресурсы, принадлежащие неактивным пользователям.
  • Требовать, чтобы у сервисных аккаунтов были метаданные владельца, цель, среда, временная метка последнего использования и метаданные ротации.
  • Присоединяйтесь к проверкам доступа с помощью аналитики использования и полномочий по бюджету.
  • Протестируйте авторизацию на уровне объекта между арендаторами, клиентами, пользователями, ключами и объектами выставления счетов.
  • По умолчанию записи аудита личности должны быть свернуты.
  • Компромиссы

    SCIM уменьшает вероятность ручного доступа, но не устраняет необходимость авторизации для конкретного шлюза. Различные поставщики удостоверений по-разному обрабатывают групповую синхронизацию, удаление, деактивацию, повторные попытки и сопоставление атрибутов. Шлюз должен допускать частичную информацию и безопасно сходиться.

    Немедленный отзыв личного ключа снижает риск отключения, но может привести к нарушению операционной гигиены, когда ключ разработчика использовался в автоматическом задании. Это не повод хранить персональные ключи в течение неопределенного времени. Это повод заранее обнаружить использование личного ключа и перенести его в служебные учетные записи до ухода сотрудника.

    Детальное сопоставление групп может отражать точное управление, но слишком многие группы становится трудно проверять. Меньший набор ролей шлюза в сочетании с профилями модели и профилями бюджета обычно проще в использовании.

    Служебные учетные записи обеспечивают работу приложений, но они могут стать бесхозными или иметь чрезмерные привилегии. Требуйте владельцев, даты проверки, метаданные ротации, профили модели с ограниченной областью, бюджеты с ограниченной областью и аналитику, которая использовалась в последний раз.

    Прогноз: При проверке доступа к шлюзу ИИ все чаще в одном отчете будут объединяться сведения об идентификации, использовании, полномочиях по расходам и разрешениях модели. Анализ того, «у кого есть доступ» без указания того, «сколько они могут потратить и какие ключи все еще активны», будет слишком поверхностным для команд, выполняющих рабочие нагрузки ИИ.

    Практическое заключение

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

    Для отключения используйте конечный автомат: получите событие идентификации, пометьте пользователя как неактивного, заблокируйте новый доступ, приостановите работу личных ключей, перенесите или поместите в карантин принадлежащие ресурсы, уведомите владельцев и завершите удаление после того, как это разрешат правила хранения. Это дает командам безопасности возможность быстрого отзыва, обеспечивает непрерывность производства команд платформы, а также дает финансистам и аудиторам четкую запись о том, кто имел полномочия над моделями, расходами, ключами и арендаторами.

    Связанное чтение

    FAQ

    Часто задаваемые вопросы

    Должны ли группы SCIM сопоставляться непосредственно с ролями шлюза API?
    Используйте группы SCIM в качестве входных данных, но сопоставляйте их с помощью проверенной таблицы преобразования шлюза. Прямое сопоставление строк затрудняет аудит привилегированного доступа и может привести к случайному предоставлению разрешений при изменении имен групп.
    Что должно произойти с ключами API пользователя во время отключения?
    Персональные ключи следует приостанавливать или отзывать при деинициализации пользователя. Ключи сервисных учетных записей должны продолжать действовать только в том случае, если у них есть действительные владельцы, политика с ограниченной областью действия, метаданные ротации и средства контроля проверки.
    Требует ли аудит жизненного цикла удостоверений хранения подсказок?
    Обычно нет. Записи аудита жизненного цикла должны фиксировать участников, субъектов, арендаторов, идентификаторы объектов, политические решения, временные метки и коды причин. Необработанные запросы не требуются для большинства расследований подготовки, отмены подготовки и авторизации.
    Как следует тестировать доступ к партнерскому API?
    Протестируйте несколько вызывающих абонентов и идентификаторов арендаторов: один администратор клиента сравнивает объекты другого клиента, приостановленных пользователей — старые ключи, учетные данные реселлера — чужих арендаторов, а обычных участников — сопоставление настроек выставления счетов или администратора модели.