多云平台认证工具

MCPAuth是一个用于多云平台集成的认证和客户端工具,支持生成和验证JWT令牌,适用于需要安全认证的云服务集成场景。

  • by LKhushlani
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 LKhushlani/MCPAuth

使用说明

MCPAuth

这个存储库包含用于MCP(多云平台)集成的身份验证和客户端实用程序。

文件

根据上面的信息,执行如下指令:

一个用于生成JWT和创建经过身份验证的MCP客户端的Python模块。

功能特点:

  • 使用RS256算法生成JWT令牌。
  • 使用环境变量 PRIVATE_KEY 用于签名。
  • 提供一个异步上下文管理器来创建经过身份验证的HTTP头部。
  • 提供了示例用法以快速设置。

使用示例:

token_data = {
    "access_token": generate_jwt(),
    "instance_url": "https://example-mcp-server.com",
    "token_type": "Bearer"
}
mcp_client = create_authenticated_mcp_client(token_data)

server.js

一个用于验证传入请求中JWT的Node.js服务器处理器。

功能:

  • 从(某处)提取并验证JWT access_token 头球
  • 使用环境变量 PUBLIC_KEY 用于验证。
  • 对于缺失或无效的令牌,返回相应的状态码。
  • 在成功解码时向控制台打印一条消息。

使用示例:

import jwt from 'jsonwebtoken';

async function handleRequest(req, res) {
    const token = req.headers['access_token']?.split(' ')[1];
    if (!token) {
        res.status(400).send('Missing authentication token');
        return;
    }
    try {
        const public_key =  process.env.PUBLIC_KEY;
        const decoded_token = jwt.verify(token, public_key, { algorithm: ['RS256'] });
        console.log("Token decoded successfully")
    }
    catch (err){
        res.status(400).send(`Token invalid or we get connection error: ${err}`);
    }
}

环境变量

  • PRIVATE_KEY用于 client.py 用于JWT签名。
  • PUBLIC_KEY用于 server.js 用于JWT验证。

许可证

麻省理工学院(或您选择的许可证)