Supabase представил новую функциональность, позволяющую его серверам на основе Model Context Protocol (MCP) предоставлять метаэти OAuth. Это упрощает процесс аутентификации для клиентов, позволяя им легко находить и использовать необходимые настройки.
Проблема и её решение
Ранее клиенты, такие как Claude Desktop и VS Code, не имели единого механизма для обнаружения необходимых конфигураций аутентификации. Каждому новому клиенту требовалась специальная документация, что усложняло интеграцию. Теперь благодаря спецификации RFC 9728, защищённые ресурсы могут публиковать JSON-документы по адресу /.well-known/oauth-protected-resource. Клиенты могут быстро получать информацию об авторизационных серверах и поддерживаемых областях, что значительно облегчает процесс интеграции.
Технические детали внедрения
В новой реализации Supabase использует AuthKit от WorkOS в качестве поставщика идентификации, обеспечивая совместную работу с различными клиентами. Каждое Edge Function поддерживает множество инструментов MCP, что позволяет им функционировать как «хаб». Важно отметить, что проверка токена делается с использованием jose.jwtVerify, который проверяет подпись, срок действия и источник. Также предусмотрена возможность обработки нескольких типов областей безопасности, включая tool:.
Дополнительно важно упомянуть, что при разработке метаэтих был тщательно продуман URL-адрес внешнего ресурса, чтобы избежать распространённых ошибок. Неправильное сопоставление может привести к сбоям валидации токенов с недостаточно информативными ошибками.
Практические выводы для разработчиков
Для российских IT-команд это значит, что при использовании Supabase становится проще интегрировать решение для аутентификации. С учётом новых возможностей, разработчики смогут существенно сократить время на подготовку документации и повысить надежность интеграции защитных механизмов. Также это позволит избежать ошибок, связанных с неправильной валидацией токенов.
С предстоящими обновлениями и улучшениями API Supabase, разработчики могут ожидать ещё большую гибкость и эффективность в использовании возможностей платформы.