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