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
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
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
etissuer
).
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());