Zum Hauptinhalt springen

Klasse: MCPAuth

Die Hauptklasse der mcp-auth-Bibliothek, die Methoden zum Erstellen von Routern und nützlichen Handlern für Authentifizierung (Authentifizierung) und Autorisierung (Autorisierung) in MCP-Servern bereitstellt.

Siehe​

MCP Auth für weitere Informationen über die Bibliothek und deren Verwendung.

Beispiel​

Ein Beispiel für die Integration mit einem entfernten OIDC-Anbieter:

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' }
  ),
});

// Router einbinden, um OAuth 2.0 Authorization Server Metadata zu bedienen
app.use(mcpAuth.delegatedRouter());

// Verwende den Bearer-Auth-Handler für die MCP-Route
app.get(
  '/mcp',
  mcpAuth.bearerAuth('jwt', { requiredScopes: ['read', 'write'] }),
  (req, res) => {
    console.log('Auth info:', req.auth);
    // Bearbeite hier die MCP-Anfrage
  },
);

// Verwende die Auth-Info im MCP-Callback
server.tool(
  'add',
  { a: z.number(), b: z.number() },
  async ({ a, b }, { authInfo }) => {
    console.log('Auth Info:', authInfo);
   // ...
  },
);

Konstruktoren​

Konstruktor​

new MCPAuth(config: MCPAuthConfig): MCPAuth;

Parameter​

config​

MCPAuthConfig

Rückgabewert​

MCPAuth

Eigenschaften​

config​

readonly config: MCPAuthConfig;

Methoden​

bearerAuth()​

Aufruf-Signatur​

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

Erstellt einen Bearer-Auth-Handler (Express-Middleware), der das Zugangstoken (Access token) im Authorization-Header der Anfrage überprüft.

Parameter​
verifyAccessToken​

VerifyAccessTokenFunction

Eine Funktion, die das Zugangstoken (Access token) überprüft. Sie sollte das Zugangstoken als String akzeptieren und ein Promise (oder einen Wert) zurückgeben, das/die das Überprüfungsergebnis liefert.

Siehe

VerifyAccessTokenFunction für die Typdefinition der verifyAccessToken-Funktion.

config?​

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

Optionale Konfiguration für den Bearer-Auth-Handler.

Siehe

BearerAuthConfig für die verfügbaren Konfigurationsoptionen (ohne verifyAccessToken und issuer).

Rückgabewert​

RequestHandler

Eine Express-Middleware-Funktion, die das Zugangstoken (Access token) überprüft und das Überprüfungsergebnis dem Request-Objekt (req.auth) hinzufügt.

Siehe​

handleBearerAuth für Implementierungsdetails und die erweiterten Typen des req.auth (AuthInfo) Objekts.

Aufruf-Signatur​

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

Erstellt einen Bearer-Auth-Handler (Express-Middleware), der das Zugangstoken (Access token) im Authorization-Header der Anfrage mit einem vordefinierten Überprüfungsmodus überprüft.

Im 'jwt'-Modus erstellt der Handler eine JWT-Überprüfungsfunktion unter Verwendung des JWK Sets von der JWKS-URI des Autorisierungsservers.

Parameter​
mode​

"jwt"

Der Überprüfungsmodus für das Zugangstoken (Access token). Derzeit wird nur 'jwt' unterstützt.

Siehe

VerifyAccessTokenMode für die verfügbaren Modi.

config?​

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

Optionale Konfiguration für den Bearer-Auth-Handler, einschließlich JWT-Überprüfungsoptionen und Remote-JWK-Set-Optionen.

Siehe

  • BearerAuthJwtConfig für die verfügbaren Konfigurationsoptionen für die JWT-Überprüfung.
  • BearerAuthConfig für die verfügbaren Konfigurationsoptionen (ohne verifyAccessToken und issuer).
Rückgabewert​

RequestHandler

Eine Express-Middleware-Funktion, die das Zugangstoken (Access token) überprüft und das Überprüfungsergebnis dem Request-Objekt (req.auth) hinzufügt.

Siehe​

handleBearerAuth für Implementierungsdetails und die erweiterten Typen des req.auth (AuthInfo) Objekts.

Wirft​

wenn die JWKS-URI in den Server-Metadaten nicht bereitgestellt wird, wenn der 'jwt'-Modus verwendet wird.


delegatedRouter()​

delegatedRouter(): Router;

Erstellt einen delegierten Router, der den OAuth 2.0 Authorization Server Metadata Endpoint (/.well-known/oauth-authorization-server) mit den der Instanz bereitgestellten Metadaten bedient.

Rückgabewert​

Router

Ein Router, der den OAuth 2.0 Authorization Server Metadata Endpoint mit den der Instanz bereitgestellten Metadaten bedient.

Beispiel​

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

const app = express();
const mcpAuth: MCPAuth; // Angenommen, dies ist initialisiert
app.use(mcpAuth.delegatedRouter());