Token导航 LogoToken导航TokenDH.com
mcpauthdemo (Kiranthakkar) logo
安全风控stdio官方级别未说明来源级核验

mcpauthdemo (Kiranthakkar)

MCP Server

OCI MCP服务器通过OCI IAM服务进行身份验证,并支持令牌交换功能,适用于需要安全身份验证和控制的云服务场景。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
身份验证Python安全

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kiranthakkar

提供方

kiranthakkar

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 client.py

详细介绍

OCI MCP服务器

这是MCP服务器针对OCI IAM服务进行身份验证的示例代码。在用于任何生产用途之前,您应该对代码进行测试和扫描。

入门指南

MCP服务器使用OCI IAM域进行身份验证。一旦用户通过身份验证,我们就使用OCI令牌交换将访问令牌交换为OCI会话令牌。这两个用例都需要OAuth应用程序。您可以将同一个应用程序用于这两个用例。

为MCP服务器身份验证创建OAuth客户端

按照下面提到的步骤创建OAuth客户端。

  1. 登录OCI控制台(https://cloud.oracle.comOCI商业云)。
  2. 从“身份和安全”菜单中,打开“域”页面。
  3. 在“域”列表页面上,选择要在其中创建MCP服务器OAuth客户端的域。如果您需要帮助查找域的列表页面,请参阅 列出标识域。.
  4. 在详细信息页面上,选择集成应用程序。将显示域中的应用程序列表。
  5. 选择添加应用程序。
  6. 在“添加应用程序”窗口中,选择“机密应用程序”。
  7. 选择启动工作流。
  8. 在添加应用程序详细信息页面中,输入名称和描述,如下所示。

alt text

  1. 创建集成应用程序后,单击“OAuth配置”选项卡。
  2. 点击“编辑OAuth配置”按钮。
  3. 通过选择“立即将此应用程序配置为客户端”单选按钮,将应用程序配置成OAuth客户端。
  4. 选择“授权码”授权类型。如果您计划使用相同的OAuth客户端应用程序进行令牌交换,请同时选择“客户端凭据”授权类型。在示例中,我们将使用相同的客户端。
  5. 对于授权授予类型,选择重定向URL。在大多数情况下,这将是MCP服务器URL,后跟“/oauth/recall”。

alt text

  1. 单击“提交”按钮更新客户端应用程序的OAuth配置。

注意:您不需要进行任何特殊配置来支持OAuth客户端的PKCE。

  1. 确保激活客户端应用程序。
  2. 记下应用程序的客户端ID和客户端机密。更新.env文件并替换IAM_CLIENT_ID和IAM_CLIENT_SECRET值。
  3. env文件中的IAM_DOMAIN是您为MCP服务器选择的标识域URL。

这就是针对OCI IAM实施MCP服务器身份验证所需的全部内容。但是,如果你想使用经过身份验证的用户令牌来调用OCI控制平面API并将身份传播到OCI控制平面,而不是使用服务用户帐户,那么你需要实现令牌交换。

确保JWK的URL可以在没有客户端凭据的情况下访问

  1. 登录OCI控制台(https://cloud.oracle.comOCI商业云)。
  2. 从“身份和安全”菜单中,打开“域”页面。
  3. 在“域”列表页面上,选择用于MCP身份验证的域。
  4. 打开“设置”选项卡。
  5. 点击“编辑域设置”按钮。

alt text

  1. 启用“配置客户端访问”复选框,如屏幕截图所示。

alt text

令牌交换设置

令牌交换可帮助您将登录用户的OCI IAM令牌交换为OCI控制平面会话令牌。上升。要了解有关代币交换的更多信息,请参阅我的 工作负载身份联合会博客。

对于令牌交换,我们需要配置身份传播信任。上面的博客更多地讨论了使用REST API建立信任。但是,您也可以使用oci-cli。在使用下面的cli命令之前,请确保创建令牌交换OAuth客户端。在大多数情况下,您可以使用上面创建的OAuth客户端。您将在下面的cli命令中使用令牌交换OAuth客户端的客户端ID,并将其替换为{IAM_TOKENEXCHANGE_client_ID}。

您还需要在.env文件中更新令牌交换OAuth客户端的客户端机密。它是IAM_TOKENEXCHANGE_CLIENT_SECRET参数。在.env文件中更新令牌交换OAuth客户端的IAM_GUID和IAM_TOKENEXCHANGE_CLIENT_ID。

oci identity-domains identity-propagation-trust create \
--schemas '["urn:ietf:params:scim:schemas:oracle:idcs:IdentityPropagationTrust"]' \
--name "For Token Exchange" --type "JWT" \
--issuer "https://identity.oraclecloud.com/" \
--endpoint "https://{IAM_GUID}}.identity.oraclecloud.com" \
--subject-claim-name "sub" --allow-impersonation false \
--subject-mapping-attribute "username" \
--subject-type "User" --client-claim-name "iss" \
--client-claim-values '["https://identity.oraclecloud.com/"]' \
--oauth-clients '["{IAM_TOKENEXCHANGE_CLIENT_ID}"]'

正在运行MCP服务器

设置完成后,要运行MCP服务器,请运行以下命令。

fastmcp run server.py:mcp --transport http --port 8000

要运行MCP客户端,请运行以下命令。

python3 client.py

您还可以使用MCP解释器来测试MCP服务器。

fastmcp dev server.py

添加更多OCI MCP服务器

如果你想为任何OCI服务创建MCP服务器,你可以使用OCI IAM进行身份验证,并使用get_OCI_signer方法获取签名者对象。使用签名者对象,您可以实例化任何OCI客户端。

如果您遇到任何问题,请随时联系kiran.thakkar@oracle.com

贡献

这个项目欢迎社区的贡献。在提交pull请求之前,请 查看我们的贡献指南。

目录标签

目录标签

身份验证Python安全本地部署令牌交换云安全OCI集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP