为mcp实现多种auth方式

为mcp实现多种auth方式,mcp自带的有token auth,basic auth,另外就是如果drupal配置了oauth的mcp会自动适配,不需要单独在配置。
如下handbook为AI撰写
Drupal OAuth2 Server 与 Client 配置指南
为 Drupal 实例配置 OAuth2 服务端 (Server) 与客户端 (Client) 的详细步骤。
配置 OAuth2 Server
此部分说明如何将一个 Drupal 实例配置为 OAuth2 提供商,使其能够颁发访问令牌。
步骤一:安装所需模块
* 使用 Composer 安装 Simple OAuth 模块及其依赖项。
composer require drupal/simple_oauth
* 在 Drupal 后台启用 Simple OAuth, JSON:API, 和 Consumers 模块。
步骤二:生成密钥
* Simple OAuth 需要公钥和私钥来签名和验证令牌。使用 Drush 生成密钥:
drush simple-oauth:generate-keys
* 将生成的密钥文件 (private.key 和 public.key) 移动到 Drupal 网站根目录之外的安全位置。
* 在 settings.php 文件中指定密钥的绝对路径:
$settings = '/path/to/your/private.key';
$settings = '/path/to/your/public.key';
步骤三:创建 OAuth 客户端 (Consumer)
Consumer 代表一个请求访问权限的第三方应用程序。
* 导航至 管理 > 配置 > Web 服务 > Consumers。
* 点击 Add Consumer。
* 填写以下字段:
* Label: 为客户端应用设置一个描述性名称。
* User: 指定一个 Drupal 用户,此客户端将代表该用户执行操作。所有通过此客户端发出的请求都将拥有该用户的权限。
* New secret: 输入客户端密钥 (Client Secret)。这是机密信息,需要妥善保管。
* Scopes: 定义此客户端可以请求的权限范围。留空则表示所有权限。
* Redirect URI(s): 输入客户端应用程序的回调 URL。当用户授权后,服务器会将用户重定向到此地址。每行一个 URL。
* 保存后,系统会生成一个 Client ID (UUID)。将此 Client ID 和之前设置的 Client Secret 提供给客户端应用程序。
配置 Drupal 作为 OAuth2 Client
此部分说明如何将另一个 Drupal 实例配置为 OAuth2 客户端,使其能够使用第三方 OAuth2 Server进行用户认证。
步骤一:安装所需模块
* 使用 Composer 安装 Social API 和 Social Auth 模块。为了连接通用的 OAuth2 Server,推荐使用 Social Auth Generic OAuth 2.0。
composer require drupal/social_auth drupal/social_auth_generic
* 在 Drupal 后台启用 Social API, Social Auth, 和 Social Auth Generic OAuth 2.0 模块。
步骤二:配置认证提供商
* 导航至 管理 > 配置 > Social API > User authentications。
* 找到 Generic OAuth 2.0 并点击 Configure。
* 填写从 OAuth2 Server 获取的信息:
* Client ID: 输入从 OAuth2 Server 获取的 Client ID。
* Client Secret: 输入从 OAuth2 Server 获取的 Client Secret。
* Authorize endpoint URL: 输入 OAuth2 Server 的授权端点 URL (例如: https://oauth-server.com/oauth/authorize)。
* Token endpoint URL: 输入 OAuth2 Server 的令牌端点 URL (例如: https://oauth-server.com/oauth/token)。
* User Info endpoint URL: 输入用于获取用户信息的资源服务器 URL (例如: https://oauth-server.com/api/user)。
* 根据需要配置其他字段,然后保存配置。
步骤三:获取回调 URL 并完成服务器配置
* 在上述配置页面中,系统会显示一个生成的 回调/重定向 URL (Authorized redirect URIs)。
* 将此 URL 复制并添加到 OAuth Server 端的客户端配置中的 Redirect URI(s) 字段内。这是为了确保 Server 在授权后能够安全地将用户重定向回正确的客户端地址。
* 完成此步骤后,两个 Drupal 实例之间的 OAuth2 认证流程便已配置完成。