授权MCP:PingOne授权策略决策服务器
用于将代理决策请求转发到PingOne授权策略决策端点的最小FastAPI服务器。已准备好在Render上部署。
特性
/api/authorize-decision-代理请求授权决策的POST端点- OAuth2 M2M流使用PingOne客户端凭据(client_secret_basic)
- 通过环境变量获取所有PingOne参数(部署安全)
快速入门(本地)
- 克隆仓库
- 安装依赖项:
pip install -r requirements.txt- 设置环境变量:
- 导出变量或使用平台的环境变量设置
- 启动服务器:
uvicorn main:app --host 0.0.0.0 --port 10000部署以渲染
- 推送到Github
- 渲染时:
- 从您的仓库创建新的Web服务 - 启动命令: uvicorn main:app --host 0.0.0.0 --port $PORT - 设置环境变量
- 部署!
环境变量
PINGONE_CLIENT_ID-工作应用程序客户端IDPINGONE_CLIENT_SECRET-Worker应用程序客户端密码PINGONE_ENV_ID-PingOne环境ID(用于令牌URL和评估路径)PINGONE_DECISION_ENDPOINT_ID-决策端点ID(首选)PINGONE_DECISION_ID-返回同胞别名;如果未设置端点ID,则使用PINGONE_AUTH_BASE-授权基本域(默认值:https://auth.pingone.com)PINGONE_TOKEN_URL-可选显式令牌URL;如果省略,服务器将使用{PINGONE_AUTH_BASE}/{PINGONE_ENV_ID}/as/tokenPINGONE_API_BASE-API基础(默认值:https://api.pingone.com/v1)
标记和评估URL
- 令牌(如果
PINGONE_TOKEN_URL未设置):
{PINGONE_AUTH_BASE}/{PINGONE_ENV_ID}/as/token- 评估:
{PINGONE_API_BASE}/environments/{PINGONE_ENV_ID}/decisionEndpoints/{PINGONE_DECISION_ENDPOINT_ID}/evaluate有关详细信息,请参阅PingOne文档:评估决策请求 (https://apidocs.pingidentity.com/pingone/authorize/v1/api/#post-评估-决策请求)
MCP协议集成
此服务器实现了用于自动代理工具发现的模型上下文协议(MCP)。
MCP端点
- 统一资源定位符:
https://authorize-mcp.onrender.com/mcp - 协议:基于HTTP的JSON-RPC 2.0
可用的MCP方法
initialize-初始化MCP连接
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {}
}tools/list-列出可用工具
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}tools/call-执行工具
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "evaluate_authorization_decision",
"arguments": {
"user_id": "189d1ef5-676d-493f-b65a-39586024083e",
"policy_request": "payment",
"parameters": {
"Request - Payment.paymentAmount": "3000",
"Request - Payment.creditorName": "Customer2987",
"Request - Payment.consentId": "test-consent"
}
}
}
}工具: evaluate_authorization_decision
使用PingOne授权策略决策服务评估授权决策。
论据:
user_id(必填):PingOne用户IDpolicy_request(可选):请求类型(默认:“付款”)parameters(可选):策略特定参数对象
示例响应:
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{
"type": "text",
"text": "Authorization Decision: PERMIT\n✓ The request is authorized.\n\nFull response: {...}"
}
],
"isError": false
}
}代理集成
对于与此MCP服务器集成的AI代理:
- 连接到
/mcp使用JSON-RPC 2.0的端点 - 呼叫
initialize第一 - 使用
tools/list发现evaluate_authorization_decision工具 - 呼叫
tools/call有适当的论据
看 AGENT_PROMPT.md 有关从自然语言查询构造请求的详细说明。
传统HTTP API
这 /api/authorize-decision 端点仍然可用于向后兼容性。
