Claude Platform Docs
Управляемые агентыКорпоративная конфигурация

Единый вход

Позвольте людям и сервисам вызывать ваш самостоятельно размещаемый сервер Claude Managed Agents с токенами от вашего поставщика удостоверений.

По умолчанию ваш сервер принимает один общий ключ — ключ API сервера. При едином входе каждый человек или сервис также может вызывать сервер с токеном от вашего «identity provider» (поставщика удостоверений) OpenID Connect (OIDC). Сервер назначает вызывающей стороне роль на основе групп в токене. Ключ API сервера продолжает работать как учётные данные администратора.

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

Добавление поставщика удостоверений

  1. Зарегистрируйте сервер в вашем поставщике удостоверений

    Зарегистрируйте сервер как API с идентификатором, например api://cma-server, и настройте клиенты на запрос токенов для него.

  2. Укажите поставщика удостоверений в файле настроек

    Добавьте запись в 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: developer
    • name помечает издателя в строках журнала, и сервер записывает его как часть создателя каждого ресурса. Не меняйте его после того, как пользователи начали создавать ресурсы.
    • issuer_url должен совпадать с утверждением iss ваших токенов.
    • audiences перечисляет значения, которые может содержать утверждение aud токена, например идентификатор из первого шага.
    • roles сопоставляет группу с admin, developer или user. Побеждает самая высокая совпавшая роль.

    Описание остальных полей см. в разделе Записи издателей. Если ваш поставщик — Microsoft Entra ID, см. также раздел Microsoft Entra ID.

  3. Перезапустите сервер и проверьте вход

    Перезапустите сервер. Вызывающая сторона отправляет токен как Authorization: Bearer <token> на любой маршрут, который принимает ключ API сервера.

    Для каждого запроса, аутентифицированного токеном, сервер записывает в журнал auth=oidc, name издателя и субъект вызывающей стороны (sub=).

Если вход не удался

ОтветПричинаСтрока журнала сервера содержит
401, такой же, как для неверного ключа APIТокен не прошёл проверку. Причина указана в строке журнала.oidc token
403Группы токена не совпадают ни с одной записью rolestoken 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 сервера. Первые два шага выполняете вы, а третий — каждый разработчик.

  1. Зарегистрируйте приложение в вашем поставщике удостоверений

    Зарегистрируйте нативное («публичное») приложение со следующими свойствами:

    • Без секрета клиента
    • Тип гранта «код авторизации» (authorization code) с PKCE
    • URI перенаправления http://127.0.0.1/callback

    Некоторым поставщикам нужен один из других URI перенаправления.

  2. Добавьте приложение в запись издателя

    Добавьте login_client_id и login_scopes в запись издателя и перезапустите сервер:

    login_client_id: 0oa1b2c3d4e5f6g7h8i9
    login_scopes: [openid, cma-server.access]

    login_scopes перечисляет области (scopes), которые нужны вашему поставщику, чтобы выдать токен, утверждение aud которого входит в список audiences записи издателя.

  3. Выполните вход

    Каждый разработчик выполняет вход из корня распакованного архива:

    ./cma-server-admin login https://cma.example.com

    URL сервера должен начинаться с https:// либо с http:// для localhost, 127.0.0.1 или ::1. При использовании одного из других URI перенаправления добавьте к команде соответствующий флаг.

    Команда открывает страницу входа поставщика в браузере, а затем записывает профиль ant CLI с именем cma-server. Передавайте --profile cma-server любой команде ant или выполните ant profile activate cma-server, чтобы сделать этот профиль профилем по умолчанию.

Когда срок действия токена истекает, разработчик снова выполняет login. Чтобы вместо этого токен продлевал ant CLI, добавьте offline_access в login_scopes.

Другие URI перенаправления

ПоставщикURI перенаправления для регистрацииФлаг, который разработчики добавляют к команде login
Microsoft Entra IDhttp://localhost/callback-listen localhost:0
Поставщик, требующий указывать порт в URI перенаправленияURI с фиксированным портом, например http://127.0.0.1:8123/callback-listen 127.0.0.1:8123

Чтобы вывести список остальных флагов, добавьте -h к команде login.

Вход пользователей в консоль на вашем сервере

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

Эта страница была полезной?