Aller au contenu principal

Classe : MCPAuth

La classe principale de la bibliothèque mcp-auth, qui fournit des méthodes pour créer des routeurs et des gestionnaires utiles pour l’authentification (Authentification) et l’autorisation (Autorisation) sur les serveurs MCP.

Voir​

MCP Auth pour plus d’informations sur la bibliothèque et son utilisation.

Exemple​

Un exemple d’intégration avec un fournisseur OIDC distant :

import express from 'express';
import { MCPAuth, fetchServerConfig } from 'mcp-auth';

const app = express();
const mcpAuth = new MCPAuth({
  server: await fetchServerConfig(
    'https://auth.logto.io/oidc',
    { type: 'oidc' }
  ),
});

// Monter le routeur pour gérer les métadonnées du serveur d’autorisation OAuth 2.0
app.use(mcpAuth.delegatedRouter());

// Utiliser le gestionnaire d’authentification Bearer sur la route MCP
app.get(
  '/mcp',
  mcpAuth.bearerAuth('jwt', { requiredScopes: ['read', 'write'] }),
  (req, res) => {
    console.log('Auth info:', req.auth);
    // Traiter la requête MCP ici
  },
);

// Utiliser les informations d’authentification dans le callback MCP
server.tool(
  'add',
  { a: z.number(), b: z.number() },
  async ({ a, b }, { authInfo }) => {
    console.log('Auth Info:', authInfo);
   // ...
  },
);

Constructeurs​

Constructeur​

new MCPAuth(config: MCPAuthConfig): MCPAuth;

Paramètres​

config​

MCPAuthConfig

Retourne​

MCPAuth

Propriétés​

config​

readonly config: MCPAuthConfig;

Méthodes​

bearerAuth()​

Signature d’appel​

bearerAuth(verifyAccessToken: VerifyAccessTokenFunction, config?: Omit<BearerAuthConfig, "verifyAccessToken" | "issuer">): RequestHandler;

Crée un gestionnaire d’authentification Bearer (middleware Express) qui vérifie le jeton d’accès (Jeton d’accès) dans l’en-tête Authorization de la requête.

Paramètres​
verifyAccessToken​

VerifyAccessTokenFunction

Une fonction qui vérifie le jeton d’accès (Jeton d’accès). Elle doit accepter le jeton d’accès sous forme de chaîne de caractères et retourner une promesse (ou une valeur) qui se résout avec le résultat de la vérification.

Voir

VerifyAccessTokenFunction pour la définition du type de la fonction verifyAccessToken.

config?​

Omit<BearerAuthConfig, "verifyAccessToken" | "issuer">

Configuration optionnelle pour le gestionnaire d’authentification Bearer.

Voir

BearerAuthConfig pour les options de configuration disponibles (à l’exception de verifyAccessToken et issuer).

Retourne​

RequestHandler

Une fonction middleware Express qui vérifie le jeton d’accès (Jeton d’accès) et ajoute le résultat de la vérification à l’objet requête (req.auth).

Voir​

handleBearerAuth pour les détails d’implémentation et les types étendus de l’objet req.auth (AuthInfo).

Signature d’appel​

bearerAuth(mode: "jwt", config?: Omit<BearerAuthConfig, "verifyAccessToken" | "issuer"> & BearerAuthJwtConfig): RequestHandler;

Crée un gestionnaire d’authentification Bearer (middleware Express) qui vérifie le jeton d’accès (Jeton d’accès) dans l’en-tête Authorization de la requête en utilisant un mode de vérification prédéfini.

En mode 'jwt', le gestionnaire créera une fonction de vérification JWT à l’aide du JWK Set provenant de l’URI JWKS du serveur d’autorisation (Émetteur).

Paramètres​
mode​

"jwt"

Le mode de vérification pour le jeton d’accès (Jeton d’accès). Actuellement, seul 'jwt' est pris en charge.

Voir

VerifyAccessTokenMode pour les modes disponibles.

config?​

Omit<BearerAuthConfig, "verifyAccessToken" | "issuer"> & BearerAuthJwtConfig

Configuration optionnelle pour le gestionnaire d’authentification Bearer, incluant les options de vérification JWT et les options du JWK Set distant.

Voir

  • BearerAuthJwtConfig pour les options de configuration disponibles pour la vérification JWT.
  • BearerAuthConfig pour les options de configuration disponibles (à l’exception de verifyAccessToken et issuer).
Retourne​

RequestHandler

Une fonction middleware Express qui vérifie le jeton d’accès (Jeton d’accès) et ajoute le résultat de la vérification à l’objet requête (req.auth).

Voir​

handleBearerAuth pour les détails d’implémentation et les types étendus de l’objet req.auth (AuthInfo).

Lève​

si l’URI JWKS n’est pas fourni dans les métadonnées du serveur lors de l’utilisation du mode 'jwt'.


delegatedRouter()​

delegatedRouter(): Router;

Crée un routeur délégué qui sert le point de terminaison des métadonnées du serveur d’autorisation OAuth 2.0 (/.well-known/oauth-authorization-server) avec les métadonnées fournies à l’instance.

Retourne​

Router

Un routeur qui sert le point de terminaison des métadonnées du serveur d’autorisation OAuth 2.0 avec les métadonnées fournies à l’instance.

Exemple​

import express from 'express';
import { MCPAuth } from 'mcp-auth';

const app = express();
const mcpAuth: MCPAuth; // Supposons qu’il est initialisé
app.use(mcpAuth.delegatedRouter());