Перейти к содержанию
FoxAuth

OAuth 2.1 · OpenID Connect · MCP

Сервер авторизации для эпохи агентов.

FoxAuth построен на OAuth-server.ts — сервере OAuth 2.1 / OpenID Connect с доступным исходным кодом (source-available), который вы запускаете сами. В комплекте — встроенная консоль администратора, профили банковского уровня и администрирование через MCP для ИИ-агентов.

Он для инженерных команд, которым нужен сервер идентификации внутри собственной инфраструктуры, и для тех, кто создаёт агентов, которые будут его администрировать. Самостоятельный хостинг бесплатен и полноценен: код распространяется по Functional Source License (FSL-1.1-ALv2), и каждый релиз через два года после выхода переходит под Apache 2.0.

25 спецификацийBun + ElysiaFSL-1.1-ALv2

Две команды и вкладка браузера
curl -O https://raw.githubusercontent.com/RedFox-Soft/OAuth-server.ts/main/docker-compose.yml
docker compose up
# open http://localhost:3000/admin

Что дают эти две команды

  • База данных запущена и подготовлена: индексы и ключ подписи
  • Консоль администратора по адресу /admin, с первоначальной настройкой суперадминистратора
  • Discovery по адресу /.well-known/openid-configuration, с учётом заданных вами флагов
  • Без регистрации ни тенанта, ни API-ключа, ни звонков

Уже используете другое решение? Мы ведём датированные сравнения с Auth0, authentik, Keycloak, Ory Hydra и Zitadel, и в каждом указано, какие страницы мы прочитали и когда.

Консоль

Всё, что нужно оператору, — без второго продукта.

Проекты, клиенты, бакеты пользователей, конечные пользователи, внешние провайдеры, подключения SCIM, настройки, SMTP, ключи подписи, активные пользователи за месяц и журнал аудита, в который записи только добавляются, — всё в одной консоли. Вход в неё идёт через собственный поток OpenID Connect этого сервера или через провайдера идентификации вашей организации. Изменение, которое может закрыть людям вход, заранее сообщает, кого оно затронет. Тем же API пользуется ИИ-агент через MCP.

Консоль администратора FoxAuth со списком OAuth-клиентов проекта.
Клиенты проекта во встроенной консоли. Каждое изменение здесь — запись в журнале аудита.

Кто им пользуется

Три команды, один сервер.

Тот же бинарник, тот же API администрирования. Меняется, по большей части, только набор включённых флагов.

Для команд на TypeScript

Bun и Elysia, запуск одной командой и 31 именованная точка расширения: вы подставляете в неё свою функцию вместо того, чтобы форкать сервер.

  • Работает на Bun; HTTP-слой — Elysia
  • PostgreSQL или MongoDB в продакшене, хранилище в памяти для тестов
  • 31 точка переопределения, разрешаемая в момент вызова

Все возможности

Для разработчиков ИИ-агентов

Защитите им свой MCP-сервер и позвольте агенту администрировать экземпляр через тот же код, что использует консоль. Отдельного привилегированного API, который пришлось бы держать в согласии с ней, нет.

  • Объявите свой MCP-сервер — получите токены, привязанные к аудитории (RFC 8707)
  • Client ID Metadata Documents: хосту агента ничего не нужно настраивать
  • 126 инструментов MCP для администрирования; всё выключено, пока не задан mcp.enabled

Все возможности

Для регулируемых отраслей

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

  • FAPI, DPoP, PAR, mTLS, CIBA, RAR, JARM
  • Журнал аудита администрирования только на дозапись
  • Троттлинг перебора паролей для каждой учётной записи

Все возможности

Стандарты

Двадцать пять реализованных спецификаций.

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

Справочник эндпоинтов

OAuth-сервер для MCP

Защитите свой MCP-сервер, а управление этим сервером доверьте агенту.

Объявите собственный MCP-сервер защищённым ресурсом проекта, и этот сервер будет выпускать токены, аудитория которых — ровно этот ресурс. Ни кода здесь, ни перезапуска. Хост агента находит его, проводит вход ваших пользователей и возвращается с токеном, который ваш MCP-сервер проверяет по опубликованным ключам, ни о чём не спрашивая. Если client_id — это HTTPS-URL, он принимается как документ идентификации клиента, поэтому подключится даже хост, у которого ничего не настроено.

Включите mcp.enabled, и API управления станет доступен ИИ-агенту по POST /mcp как защищённый ресурс OAuth 2.1. Каждый инструмент — а их 126 — воссоздаёт запрос, который отправила бы консоль, и выполняет её собственные проверки прав, валидацию и запись в журнал аудита, поэтому никакой привилегированный «чёрный ход» не может разойтись с консолью.

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

Защитить свой MCP-серверВсе инструменты MCP (126)

agent  → settings_update { "deviceFlow.enabled": false }

server ← Nothing has been changed. Change server settings. The merged
         configuration is validated first …

         Target: settings_update
         To proceed, call settings_update again with
         confirmationToken="<token from the first call>".
         It is valid once, until 2026-09-03T14:12:04.000Z.

agent  → settings_update { "deviceFlow.enabled": false,
                           "confirmationToken": "<token from the first call>" }

server ← { "appliedKeys": ["deviceFlow.enabled"],
           "pendingRestartKeys": [], … }

         Audit: actor agent:ops-bot, action settings.update.

Лицензия

Исходный код доступен. Без лукавства.

Код публичен: его можно читать, изменять, разворачивать у себя и распространять — для чего угодно, кроме предоставления его другим в виде конкурирующего хостингового сервиса. Через два года после выхода каждой версии она переходит под Apache License 2.0.

Прочитать лицензию

Начать

Запустите его у себя сегодня же.

Самостоятельный хостинг бесплатен и полноценен. Управляемый экземпляр — следующий на очереди.