Перейти к содержимому

MCP + OAuth2.1 + AWS Cognito Example

Пример защиты сервера с OAuth 2.1 и AWS Cognito, совместимый с любым провайдером авторизации

JavaScript
50 stars

Описание

Репозиторий демонстрирует защиту сервера с использованием OAuth 2.1, где AWS Cognito выступает как пример authorization server, но реализация provider-agnostic. Основан на Node.js и Express.js. Ключевые особенности: динамическое обнаружение метаданных, Authorization Code Flow с PKCE, Dynamic Client Registration (DCR) по RFC7591, Protected Resource Metadata по RFC9728. Применения: интеграция с identity providers вроде Okta или Auth0 для безопасного доступа к ресурсам, особенно в микросервисах и API.

Возможности

Динамическое обнаружение метаданных

Автоматическое получение authorization server metadata без жёстко заданных эндпоинтов

OAuth 2.1 Authorization Code Flow с PKCE

Безопасный поток авторизации с доказательством владения кодом и resource indicators по RFC8707

Dynamic Client Registration (DCR)

Автоматическая регистрация клиентов с получением credentials, эмулируя RFC7591 через AWS Lambda и API Gateway

Protected Resource Metadata (PRM)

Сервировка PRM-документа по RFC9728 для описания scopes и authorization servers

Валидация токенов

Динамическая проверка JWT с использованием JWKS URI из метаданных authorization server

Provider-agnostic дизайн

Совместимость с любым OAuth 2.1 compliant сервером, таким как AWS Cognito, Okta или Auth0

Установка

Предварительные требования: Node.js, AWS аккаунт с Cognito, API Gateway, Lambda, DynamoDB, CloudFormation.

  1. Клонируйте репозиторий: git clone https://github.com/empires-security/mcp-oauth2-aws-cognito.git && cd mcp-oauth2-aws-cognito
  2. Установите зависимости: npm run install:all
  3. Разверните AWS ресурсы: npm run deploy
  4. Проверьте .env файлы в src/client, src/auto-client, src/mcp-server.
  5. Запустите: npm run dev Для тестирования посетите http://localhost:3000 и http://localhost:3002. Очистка: npm run cleanup

Информация

Язык
JavaScript
Лицензия
MIT License
GitHub Stars
50

Ссылки