Сервисные учетные записи
Настраивайте сервисные учетные записи и управляйте ими для автоматизации Codex в рабочем пространстве ChatGPT
Сервисные учетные записи позволяют запускать и масштабировать автономные рабочие процессы Codex в организации, не используя учетную запись сотрудника. Каждая система выполнения непрерывной интеграции (CI), запланированная задача или общая интеграция получает собственный идентификатор в рабочем пространстве ChatGPT с теми же группами, ролями, средствами управления доступом и возможностями аудита, что и у пользователей.
Создавать сервисные учетные записи могут только владельцы и администраторы рабочего пространства. Они могут разрешить другим пользователям или группам управлять учетной записью, настраивать плагины или создавать токены доступа.
Сервисная учетная запись представляет нечеловеческий идентификатор рабочего пространства. Персональный токен доступа представляет участника рабочего пространства, который его создал. Сервисные учетные записи проектов API Platform и API keys используют отдельные настройки доступа к проектам и оплаты.
Создание и настройка сервисной учетной записи
В этом интерактивном пошаговом руководстве в качестве примера используется GitHub: создайте учетную запись, настройте плагин, создайте токен и назначьте группы и роли.
Создание идентификатора, принадлежащего рабочему пространству
Нажмите кнопку с плюсом, укажите имя сервисной учетной записи и выберите Создать.
Настройка плагина учетной записи
Откройте раздел Плагины, выберите Добавить плагин, выберите GitHub и убедитесь, что он включен для этой учетной записи.
Создание токена доступа с ограниченной областью действия
Укажите имя токена, подтвердите область действия Codex, выберите срок действия и сохраните токен в диспетчере секретов.
Назначение групп и ролей
Добавьте сервисную учетную запись в необходимые группы рабочего пространства, а затем предоставьте пользователям или группам доступ к управлению с ролью «Пользователь», «Настройка» или «Управляющий».
- Откройте раздел Сервисные учетные записи в настройках рабочего пространства.
- Нажмите кнопку с плюсом (+) и введите понятное имя, например
release-automation. - Выберите Создать.
Подключение плагина
Настраивайте плагины для самой сервисной учетной записи. Она не наследует плагины или подключенные приложения создавшего ее пользователя.
- Откройте раздел Плагины учетной записи и выберите Добавить плагин.
- Выберите плагин и убедитесь, что он отображается как настроенный или включенный.
Настраивать плагины могут пользователи с ролями Настройка и Управляющий. Пользователи с ролью Пользователь не могут этого делать.
Создание токена доступа
Создайте токен на странице сведений о сервисной учетной записи. Токен представляет сервисную учетную запись, а не создавшего его пользователя.
- Откройте учетную запись и выберите Создать токен в разделе Токены доступа.
- Укажите имя токена, подтвердите область действия Codex и выберите срок действия.
- Выберите Создать и сохраните токен в диспетчере секретов.
Полный токен отображается только один раз. Доступные сроки действия определяются политиками рабочего пространства.
Назначение ролей и групп
Сервисной учетной записи можно назначать роли рабочего пространства и добавлять ее в группы, как обычного участника рабочего пространства. Назначайте ей доступ напрямую: она не наследует разрешения создавшего ее пользователя.
Чтобы разрешить пользователям или группам управлять учетной записью, выберите Поделиться, затем Добавить пользователей или группы и назначьте роль:
| Роль для общей учетной записи | Настройка учетной записи и ее плагинов | Создание токенов доступа сервисной учетной записи |
|---|---|---|
| Пользователь | Нет | Да |
| Настройка | Да | Нет |
| Управляющий | Да | Да |
Эти роли применяются к пользователям, управляющим учетной записью. Они не связаны с ролями и группами рабочего пространства, назначенными самой сервисной учетной записи.
Пользователи с ролями Настройка и Управляющий могут включать и отключать учетную запись. Создавать, удалять учетные записи и предоставлять к ним общий доступ могут только владельцы и администраторы рабочего пространства. Операторы управляют общими учетными записями, войдя в собственные учетные записи ChatGPT.
Дополнительные сведения о разрешениях рабочего пространства см. в разделе Роли и разрешения рабочего пространства.
Запуск Codex без входа в систему
Для токенов доступа сервисных учетных записей требуется Codex CLI версии 0.142.0 или новее. Задайте CODEX_ACCESS_TOKEN и запустите Codex, не открывая браузер:
export CODEX_ACCESS_TOKEN="<service-account-access-token>"
codex exec --json "Inspect this repository and summarize its current state."В CI передавайте токен через диспетчер секретов или секрет системы выполнения.
Чтобы сохранить данные входа на доверенном компьютере, передайте токен через стандартный ввод:
printf '%s' "$CODEX_ACCESS_TOKEN" | codex login --with-access-token
codex exec "Summarize the changes in the current branch."При этом учетные данные сохраняются локально. В общих или временных системах выполнения используйте CODEX_ACCESS_TOKEN без сохранения данных входа.
Подготовка сервисных учетных записей с помощью SCIM
Если рабочее пространство поддерживает подготовку сервисных учетных записей по протоколу System for Cross-domain Identity Management (SCIM), задайте для userType значение ServiceAccount в поставщике удостоверений:
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "svc-codex-release@company.example",
"displayName": "Codex release automation",
"active": true,
"userType": "ServiceAccount"
}Назначьте идентификатор рабочему пространству и необходимым группам, а затем синхронизируйте его. Поставщик удостоверений управляет именем учетной записи, членством в группах и жизненным циклом. Управляемые через SCIM учетные записи нельзя переименовывать или удалять в ChatGPT. См. раздел Группы и подготовка.
Управление сервисными учетными записями с помощью Admin API
Если у вашего рабочего пространства есть доступ, используйте ChatGPT Admin API key для управления учетными записями, токенами и общим доступом. Для операций чтения требуется chatgpt.enterprise.service_account.read, а для внесения изменений — chatgpt.enterprise.service_account.write. Токен сервисной учетной записи нельзя использовать для аутентификации запросов Admin API.
Список доступных операций и актуальные пути запросов см. в справочнике Admin API.
Учетные записи
| Операция | Метод | Назначение |
|---|---|---|
| Получить список учетных записей | GET |
Возвращает сервисные учетные записи рабочего пространства |
| Создать учетную запись | POST |
Создает сервисную учетную запись с указанным именем |
| Получить учетную запись | GET |
Возвращает одну сервисную учетную запись |
| Включить или отключить учетную запись | PATCH |
Обновляет значение enabled учетной записи |
| Удалить учетную запись | DELETE |
Удаляет учетную запись и отзывает ее токены |
Создавайте учетные записи с помощью POST /v1/manage/workspaces/{workspace_id}/service-accounts. При обновлении учетной записи изменяется только enabled.
Токены
| Операция | Метод | Назначение |
|---|---|---|
| Получить список токенов | GET |
Возвращает метаданные токенов учетной записи |
| Создать токен | POST |
Создает токен доступа с ограниченной областью действия |
| Отозвать токен | DELETE |
Безвозвратно отзывает один токен |
Например, создайте токен Codex, срок действия которого истекает через 30 дней:
{
"name": "production-release-runner",
"ttl": 2592000,
"scopes": ["chatgpt.workspace.feature.allow-codex-local-access.access"]
}ttl — срок действия токена в секундах. Ограниченный срок действия должен составлять менее одного года и соответствовать политике срока действия вашего рабочего пространства. Полное значение access_token возвращается только при создании токена.
Admin API также позволяет получать список, добавлять, обновлять и удалять права доступа к общей учетной записи. Допустимые значения ролей: manager, configurer и user; значение configurer отображается в ChatGPT как Настройка.
Защита сервисных учетных записей и управление ими
- Предоставляйте только те роли, группы, плагины и подключения, которые необходимы рабочему процессу.
- Храните токены в диспетчере секретов и используйте доверенные системы выполнения.
- Не допускайте попадания учетных данных в журналы, сообщения чатов и систему управления исходным кодом.
- Устанавливайте ограниченные сроки действия и регулярно проверяйте доступ к учетным записям и их действия.
- Для ротации токена создайте новый токен, обновите рабочий процесс, проверьте доступ и отзовите старый токен в рабочем пространстве или через Admin API.
- Немедленно отзывайте раскрытые токены и расследуйте недавние действия учетной записи.
- Отключайте или удаляйте неиспользуемые учетные записи в рабочем пространстве или через Admin API. Оба действия отзывают все активные токены. Отключенные учетные записи можно включить снова с новыми токенами; удаление отменить невозможно.
Запуски связываются с сервисной учётной записью. Доступная аналитика рабочего пространства и записи аудита также позволяют определить, кто создал токены или изменил настройки учётной записи. Проверьте охват событий в справочнике Admin API.