Единый вход
Позвольте людям и сервисам вызывать ваш самостоятельно размещаемый сервер Claude Managed Agents с токенами от вашего поставщика удостоверений.
По умолчанию ваш сервер принимает один общий ключ — ключ API сервера. При едином входе каждый человек или сервис также может вызывать сервер с токеном от вашего «identity provider» (поставщика удостоверений) OpenID Connect (OIDC). Сервер назначает вызывающей стороне роль на основе групп в токене. Ключ API сервера продолжает работать как учётные данные администратора.
На этой странице показано, как добавить вашего поставщика удостоверений, что может делать каждая роль и как позволить разработчикам входить из терминала.
Добавление поставщика удостоверений
Зарегистрируйте сервер в вашем поставщике удостоверений
Зарегистрируйте сервер как API с идентификатором, например
api://cma-server, и настройте клиенты на запрос токенов для него.Укажите поставщика удостоверений в файле настроек
Добавьте запись в
auth.issuersв файле настроек:auth: issuers: - name: okta issuer_url: https://login.example.com/oauth2/default audiences: [api://cma-server] roles: - group: cma-admins role: admin - group: "eng-*" role: developernameпомечает издателя в строках журнала, и сервер записывает его как часть создателя каждого ресурса. Не меняйте его после того, как пользователи начали создавать ресурсы.issuer_urlдолжен совпадать с утверждениемissваших токенов.audiencesперечисляет значения, которые может содержать утверждениеaudтокена, например идентификатор из первого шага.rolesсопоставляет группу сadmin,developerилиuser. Побеждает самая высокая совпавшая роль.
Описание остальных полей см. в разделе Записи издателей. Если ваш поставщик — Microsoft Entra ID, см. также раздел Microsoft Entra ID.
Перезапустите сервер и проверьте вход
Перезапустите сервер. Вызывающая сторона отправляет токен как
Authorization: Bearer <token>на любой маршрут, который принимает ключ API сервера.Для каждого запроса, аутентифицированного токеном, сервер записывает в журнал
auth=oidc,nameиздателя и субъект вызывающей стороны (sub=).
Если вход не удался
| Ответ | Причина | Строка журнала сервера содержит |
|---|---|---|
401, такой же, как для неверного ключа API | Токен не прошёл проверку. Причина указана в строке журнала. | oidc token |
403 | Группы токена не совпадают ни с одной записью roles | token holds no role |
Microsoft Entra ID
Entra ID отличается от других поставщиков в двух отношениях. Обе настройки задаются в записи издателя:
- Человек: Entra ID выдаёт одному человеку разный
subв каждом клиентском приложении, поэтому при значении по умолчанию один человек записывался бы как несколько создателей. Задайтеsubject_claim: oid. - Группы: Entra ID не включает утверждение
groupsв токен, если человек состоит во многих группах. Тогда такой человек не совпадает ни с одной записьюroles. Чтобы этого избежать, настройте Entra ID так, чтобы он выдавал только группы, назначенные приложению. Либо назначьте людям роли приложения в Entra ID и задайтеgroups_claim: roles, чтобы сервер считывал роли приложения вместо групп.
Что может делать каждая роль
| Роль | Агенты, навыки, сеансы, хранилища и хранилища памяти | Окружения |
|---|---|---|
admin и ключ API сервера | Видит и изменяет всё | Создаёт, изменяет и удаляет их, а также создаёт их ключи |
developer или user | Видит и изменяет только то, что создала эта вызывающая сторона | Перечисляет их, читает их и запускает в них сеансы |
developer и user имеют одинаковый доступ. Вызывающая сторона с любой из этих ролей:
- Не видит ресурс, созданный кем-то другим. Ресурс отсутствует в списках, а на запрос его идентификатора приходит такой же ответ, как на запрос неизвестного идентификатора. Это касается всего, что было создано с помощью ключа API сервера до включения единого входа.
- Не может предоставить ресурс в общий доступ другой вызывающей стороне или группе.
Сопоставляйте admin с точными именами групп. Администратор также может запустить сеанс, использующий хранилище любого пользователя. Поэтому назначайте эту роль только группам, которым вы доверяете MCP-токены всех пользователей.
Вход разработчиков из терминала
Разработчики могут входить через вашего поставщика удостоверений, а затем использовать ant CLI под собственным удостоверением, без ключа API сервера. Первые два шага выполняете вы, а третий — каждый разработчик.
Зарегистрируйте приложение в вашем поставщике удостоверений
Зарегистрируйте нативное («публичное») приложение со следующими свойствами:
- Без секрета клиента
- Тип гранта «код авторизации» (authorization code) с PKCE
- URI перенаправления
http://127.0.0.1/callback
Некоторым поставщикам нужен один из других URI перенаправления.
Добавьте приложение в запись издателя
Добавьте
login_client_idиlogin_scopesв запись издателя и перезапустите сервер:login_client_id: 0oa1b2c3d4e5f6g7h8i9 login_scopes: [openid, cma-server.access]login_scopesперечисляет области (scopes), которые нужны вашему поставщику, чтобы выдать токен, утверждениеaudкоторого входит в списокaudiencesзаписи издателя.Выполните вход
Каждый разработчик выполняет вход из корня распакованного архива:
./cma-server-admin login https://cma.example.comURL сервера должен начинаться с
https://либо сhttp://дляlocalhost,127.0.0.1или::1. При использовании одного из других URI перенаправления добавьте к команде соответствующий флаг.Команда открывает страницу входа поставщика в браузере, а затем записывает профиль
antCLI с именемcma-server. Передавайте--profile cma-serverлюбой командеantили выполнитеant profile activate cma-server, чтобы сделать этот профиль профилем по умолчанию.
Когда срок действия токена истекает, разработчик снова выполняет login. Чтобы вместо этого токен продлевал ant CLI, добавьте offline_access в login_scopes.
Другие URI перенаправления
| Поставщик | URI перенаправления для регистрации | Флаг, который разработчики добавляют к команде login |
|---|---|---|
| Microsoft Entra ID | http://localhost/callback | -listen localhost:0 |
| Поставщик, требующий указывать порт в URI перенаправления | URI с фиксированным портом, например http://127.0.0.1:8123/callback | -listen 127.0.0.1:8123 |
Чтобы вывести список остальных флагов, добавьте -h к команде login.
Вход пользователей в консоль на вашем сервере
Консоль на вашем сервере выполняет вход пользователей через приложение, которое вы зарегистрировали для входа из терминала. Чтобы завершить её настройку, см. Настройка входа.
Эта страница была полезной?