27 вещей, которые никто не рассказывает про MCP-авторизацию.
Auth0, Keycloak и Cloudflare Workers обещают drop-in OAuth для вашего MCP-сервера. Все пропускают самое важное. Вот что официальные доки умалчивают — и что вы потратите выходные, чтобы найти сами.
7 DCR-блокировок, о которых не говорят доки Auth0
Почему connector flow в Claude.ai падает на Auth0 — даже после того, как вы включили «Allow Skipping User Consent». Режим third-party client и три чекбокса, которые наконец заставляют Dynamic Client Registration работать.
Почему ваш audience claim молча пустой
Audience scope на уровне realm vs client, ловушка с trailing slash в issuer, которая ломает JWT-валидацию в 100% случаев, и одна настройка realm, которая решает, переживут ли refresh-токены передеплой.
4 KV-неймспейса, о которых никто не предупреждает
Почему стандартный OAuth-provider Worker не может выдавать токены для Claude.ai без анонимного Dynamic Client Registration — и стратегия ротации signing-ключей, которая не убивает активные сессии агентов.
Потратьте выходные на reverse-engineering. Или потратьте €49.
Почему именно этот стек — что даёт каждый провайдер
Один и тот же MCP-сервер. Три двери внутрь. В гайде — готовые конфиги под ту, которая уже стоит у вашей компании.
Почему команды выбирают Auth0
- SSO, MFA и 30+ social-логинов сразу — без единой строчки identity-кода
- Самый короткий путь к чекбоксам SOC 2, HIPAA и ISO 27001 по доступу к MCP
- Login Actions: подмешивайте логику в момент выдачи токена без передеплоя MCP-сервера
Почему команды выбирают Keycloak
- Self-hosted Okta-уровня — ноль платежей за пользователя, без лимитов, данные на вашей инфре
- Один realm = один tenant: жёсткая изоляция данных архитектурно, а не по соглашению
- Нативная федерация: Active Directory, LDAP и 12 социальных IdP из одной admin-консоли
Почему команды выбирают Cloudflare
- Выдача токенов на edge — отклик /authorize и /token меньше 50 мс из любого региона
- Бесплатная DDoS-защита, bot mitigation и rate-limiting на ваших auth-endpoints — та же сеть, что обслуживает 20% веба
- Cloudflare Access перед сервером: ваш корпоративный SSO защищает каждый MCP-запрос за пять минут
Гайд по настройке авторизации MCP на примере Watchword
Production-grade авторизация для Watchword — и тот же blueprint для любого MCP-сервера, который ваша команда деплоит. Bearer-токены, JWT/JWKS против Auth0, Keycloak, Cognito и Cloudflare Access, OAuth 2.1 + PKCE для discovery в AI-агентах и чат-клиентах, схемы с reverse proxy. Каждый шаг — с реальными env-переменными Watchword, а не с псевдокодом.
- Bearer-токены (WORDSTORE_AUTH_TOKENS) для соло-разработки — и точные сигналы, когда из них пора вырастать
- JWT/JWKS-валидация против Auth0, Keycloak, Cognito и Cloudflare Access — готовые конфиги под копипаст
- Cloudflare Worker OAuth 2.1 proxy: Authorization Code + PKCE + Dynamic Client Registration (RFC 7591) для Claude.ai
- RFC 9728 Protected Resource Metadata, чтобы MCP-клиенты сами находили authorization server
- Audience scoping (WORDSTORE_AUTH_JWT_AUDIENCE), per-user identity claims и audit-логи с именами людей
- Reverse-proxy схемы: Caddy, Nginx, Traefik перед Watchword — или перед любым MCP-сервером, который вы собрали
- 27 production-проверенных setup-граблей по Auth0, Keycloak и Cloudflare Workers — включая 7 Auth0 DCR-блокировок, которых нет в официальных доках
Ваш Watchword мог бы уже быть онлайн
Полная OAuth-авторизация — следующий шаг, не первый. Если нужно поднять публичный MCP-эндпоинт уже сегодня — для соло-тестов, демо или чтобы Claude.ai наконец увидел ваш сервер — стартуйте с bearer-токенов на render.com. Готовый Blueprint, Turso-база, HTTPS из коробки. Пять минут от форка до рабочего URL.
- Blueprint render.com одной кнопкой — три секрета и git push, дальше render собирает сам
- Bearer-токены через WORDSTORE_AUTH_TOKENS — те же, что в первой главе этого гайда
- Тот же Watchword: когда дорастёте до OAuth, переключаетесь без редеплоя инфры — только меняете env vars