@lenne.tech/nest-server 11.42.15 → 11.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/rules/better-auth.md +22 -0
- package/.claude/rules/configurable-features.md +4 -3
- package/.claude/rules/testing.md +4 -4
- package/FRAMEWORK-API.md +2 -2
- package/dist/core/common/filters/mongoose-cast-error.filter.d.ts +17 -0
- package/dist/core/common/filters/mongoose-cast-error.filter.js +171 -0
- package/dist/core/common/filters/mongoose-cast-error.filter.js.map +1 -0
- package/dist/core/common/interfaces/server-options.interface.d.ts +4 -0
- package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.d.ts +19 -0
- package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.js +145 -0
- package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.js.map +1 -0
- package/dist/core/modules/ai/core-ai-mcp.controller.js +6 -5
- package/dist/core/modules/ai/core-ai-mcp.controller.js.map +1 -1
- package/dist/core/modules/ai/core-ai.module.d.ts +2 -0
- package/dist/core/modules/ai/core-ai.module.js +6 -1
- package/dist/core/modules/ai/core-ai.module.js.map +1 -1
- package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.d.ts +33 -0
- package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.js +282 -0
- package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.js.map +1 -0
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.d.ts +15 -2
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js +73 -19
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js.map +1 -1
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.registry.d.ts +5 -0
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.registry.js.map +1 -1
- package/dist/core/modules/ai/index.d.ts +1 -0
- package/dist/core/modules/ai/index.js +1 -0
- package/dist/core/modules/ai/index.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.d.ts +30 -2
- package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js +222 -15
- package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.config.d.ts +4 -0
- package/dist/core/modules/better-auth/better-auth.config.js +29 -2
- package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +2 -0
- package/dist/core/modules/better-auth/core-better-auth.controller.js +36 -1
- package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -1
- package/dist/core.module.js +7 -0
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/docs/REQUEST-LIFECYCLE.md +30 -1
- package/docs/security-overrides.md +3 -2
- package/migration-guides/11.42.15-to-11.42.16.md +114 -0
- package/migration-guides/11.42.x-to-11.43.x.md +195 -0
- package/package.json +7 -7
- package/src/core/common/filters/mongoose-cast-error.filter.ts +310 -0
- package/src/core/common/helpers/swagger.helper.ts +4 -4
- package/src/core/common/interfaces/server-options.interface.ts +59 -9
- package/src/core/modules/ai/INTEGRATION-CHECKLIST.md +50 -24
- package/src/core/modules/ai/README.md +98 -13
- package/src/core/modules/ai/core-ai-mcp-oauth.initializer.ts +199 -0
- package/src/core/modules/ai/core-ai-mcp.controller.ts +13 -6
- package/src/core/modules/ai/core-ai.module.ts +14 -2
- package/src/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.ts +369 -0
- package/src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts +149 -43
- package/src/core/modules/ai/helpers/ai-mcp-oauth.registry.ts +18 -5
- package/src/core/modules/ai/index.ts +1 -0
- package/src/core/modules/ai/services/core-ai-mcp-oauth.service.ts +385 -28
- package/src/core/modules/better-auth/better-auth.config.ts +49 -5
- package/src/core/modules/better-auth/core-better-auth.controller.ts +75 -1
- package/src/core.module.ts +13 -1
- package/src/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-mcp-oauth.helper.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ai-mcp-oauth.helper.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export interface IMountedMcpOAuth {
|
|
2
|
+
authBasePath?: string;
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
issuerUrl: string;
|
|
2
5
|
mcpPath: string;
|
|
3
6
|
registration: boolean;
|
|
7
|
+
resourceMetadataUrl: string;
|
|
8
|
+
resourceUrl: string;
|
|
4
9
|
revocation: boolean;
|
|
5
10
|
}
|
|
6
11
|
export declare function setMountedMcpOAuth(value: IMountedMcpOAuth | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-mcp-oauth.registry.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.registry.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ai-mcp-oauth.registry.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.registry.ts"],"names":[],"mappings":";;AAkCA,gDAEC;AAGD,gDAEC;AAVD,IAAI,OAAqC,CAAC;AAG1C,SAAgB,kBAAkB,CAAC,KAAmC;IACpE,OAAO,GAAG,KAAK,CAAC;AAClB,CAAC;AAGD,SAAgB,kBAAkB;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./core-ai-mcp-oauth.initializer"), exports);
|
|
17
18
|
__exportStar(require("./core-ai-mcp.controller"), exports);
|
|
18
19
|
__exportStar(require("./helpers/ai-mcp-oauth.helper"), exports);
|
|
19
20
|
__exportStar(require("./core-ai.controller"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/modules/ai/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2DAAyC;AACzC,gEAA8C;AAC9C,uDAAqC;AACrC,mDAAiC;AACjC,qDAAmC;AACnC,6EAA2D;AAC3D,sEAAoD;AACpD,2EAAyD;AACzD,+EAA6D;AAC7D,oEAAkD;AAClD,6EAA2D;AAC3D,sEAAoD;AACpD,4EAA0D;AAC1D,qEAAmD;AACnD,uEAAqD;AACrD,uEAAqD;AACrD,qEAAmD;AACnD,qEAAmD;AACnD,gEAA8C;AAC9C,uDAAqC;AACrC,2DAAyC;AACzC,+EAA6D;AAC7D,iEAA+C;AAC/C,wEAAsD;AACtD,iEAA+C;AAC/C,sEAAoD;AACpD,gFAA8D;AAC9D,gEAA8C;AAC9C,8EAA4D;AAC5D,sEAAoD;AACpD,+EAA6D;AAC7D,oEAAkD;AAClD,sEAAoD;AACpD,qEAAmD;AACnD,iEAA+C;AAC/C,qEAAmD;AACnD,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAClD,8DAA4C;AAC5C,qEAAmD;AACnD,kEAAgD;AAChD,oEAAkD;AAClD,+DAA6C;AAC7C,kEAAgD;AAChD,mEAAiD;AACjD,yEAAuD;AACvD,+DAA6C;AAC7C,oEAAkD;AAClD,mFAAiE;AACjE,iFAA+D;AAC/D,wEAAsD;AACtD,0EAAwD;AACxD,yEAAuD;AACvD,uEAAqD;AACrD,iEAA+C;AAC/C,0EAAwD;AACxD,4EAA0D;AAC1D,yEAAuD;AACvD,oEAAkD;AAClD,kEAAgD;AAChD,wEAAsD;AACtD,wEAAsD;AACtD,kEAAgD;AAChD,yEAAuD;AACvD,6DAA2C;AAC3C,uDAAqC;AACrC,2DAAyC;AACzC,iEAA+C;AAC/C,4DAA0C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/modules/ai/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,kEAAgD;AAChD,2DAAyC;AACzC,gEAA8C;AAC9C,uDAAqC;AACrC,mDAAiC;AACjC,qDAAmC;AACnC,6EAA2D;AAC3D,sEAAoD;AACpD,2EAAyD;AACzD,+EAA6D;AAC7D,oEAAkD;AAClD,6EAA2D;AAC3D,sEAAoD;AACpD,4EAA0D;AAC1D,qEAAmD;AACnD,uEAAqD;AACrD,uEAAqD;AACrD,qEAAmD;AACnD,qEAAmD;AACnD,gEAA8C;AAC9C,uDAAqC;AACrC,2DAAyC;AACzC,+EAA6D;AAC7D,iEAA+C;AAC/C,wEAAsD;AACtD,iEAA+C;AAC/C,sEAAoD;AACpD,gFAA8D;AAC9D,gEAA8C;AAC9C,8EAA4D;AAC5D,sEAAoD;AACpD,+EAA6D;AAC7D,oEAAkD;AAClD,sEAAoD;AACpD,qEAAmD;AACnD,iEAA+C;AAC/C,qEAAmD;AACnD,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAClD,8DAA4C;AAC5C,qEAAmD;AACnD,kEAAgD;AAChD,oEAAkD;AAClD,+DAA6C;AAC7C,kEAAgD;AAChD,mEAAiD;AACjD,yEAAuD;AACvD,+DAA6C;AAC7C,oEAAkD;AAClD,mFAAiE;AACjE,iFAA+D;AAC/D,wEAAsD;AACtD,0EAAwD;AACxD,yEAAuD;AACvD,uEAAqD;AACrD,iEAA+C;AAC/C,0EAAwD;AACxD,4EAA0D;AAC1D,yEAAuD;AACvD,oEAAkD;AAClD,kEAAgD;AAChD,wEAAsD;AACtD,wEAAsD;AACtD,kEAAgD;AAChD,yEAAuD;AACvD,6DAA2C;AAC3C,uDAAqC;AACrC,2DAAyC;AACzC,iEAA+C;AAC/C,4DAA0C"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type * as OAuthErrors from '@modelcontextprotocol/sdk/server/auth/errors.js';
|
|
1
2
|
import { Logger, OnModuleInit } from '@nestjs/common';
|
|
2
3
|
import { Connection } from 'mongoose';
|
|
4
|
+
import { IMcpOAuthConsentView } from '../helpers/ai-mcp-oauth-consent.helper';
|
|
3
5
|
export interface AiMcpOAuthClient {
|
|
4
6
|
client_id: string;
|
|
5
7
|
client_name?: string;
|
|
@@ -14,6 +16,12 @@ export interface AiMcpAccessTokenPayload {
|
|
|
14
16
|
sub: string;
|
|
15
17
|
type: 'mcp_access';
|
|
16
18
|
}
|
|
19
|
+
export interface IAiMcpOAuthConsentBinding {
|
|
20
|
+
clientId: string;
|
|
21
|
+
codeChallenge: string;
|
|
22
|
+
redirectUri: string;
|
|
23
|
+
userId: string;
|
|
24
|
+
}
|
|
17
25
|
export declare class CoreAiMcpOAuthService implements OnModuleInit {
|
|
18
26
|
protected readonly connection: Connection;
|
|
19
27
|
protected readonly logger: Logger;
|
|
@@ -25,6 +33,9 @@ export declare class CoreAiMcpOAuthService implements OnModuleInit {
|
|
|
25
33
|
constructor(connection: Connection);
|
|
26
34
|
onModuleInit(): void;
|
|
27
35
|
assertProductionSafe(): void;
|
|
36
|
+
protected allowsDevelopmentSecret(): boolean;
|
|
37
|
+
isOAuthEnabled(): boolean;
|
|
38
|
+
usesBuiltInConsent(): boolean;
|
|
28
39
|
protected oauthEnabled(): boolean;
|
|
29
40
|
protected resolveSecret(): string | undefined;
|
|
30
41
|
signAccessToken(userId: string, clientId: string, ttlSeconds?: number): string;
|
|
@@ -43,7 +54,7 @@ export declare class CoreAiMcpOAuthService implements OnModuleInit {
|
|
|
43
54
|
codeChallenge: string;
|
|
44
55
|
userId: string;
|
|
45
56
|
} | null>;
|
|
46
|
-
consumeAuthorizationCode(code: string): Promise<{
|
|
57
|
+
consumeAuthorizationCode(code: string, clientId?: string): Promise<{
|
|
47
58
|
clientId: string;
|
|
48
59
|
codeChallenge: string;
|
|
49
60
|
userId: string;
|
|
@@ -59,7 +70,24 @@ export declare class CoreAiMcpOAuthService implements OnModuleInit {
|
|
|
59
70
|
roles: string[];
|
|
60
71
|
} | null>;
|
|
61
72
|
buildOAuthProvider(accessTtlSeconds?: number): Record<string, any>;
|
|
62
|
-
protected
|
|
73
|
+
protected readonly consentTokenTtlSeconds = 600;
|
|
74
|
+
protected authorizeConsent(client: any, params: any, res: any): Promise<void>;
|
|
75
|
+
protected renderConsentPage(view: IMcpOAuthConsentView): string;
|
|
76
|
+
protected consentUser(req: any): Promise<{
|
|
77
|
+
email?: string;
|
|
78
|
+
id: string;
|
|
79
|
+
name?: string;
|
|
80
|
+
} | undefined>;
|
|
81
|
+
protected buildConsentView(req: any, client: any, params: any, user: {
|
|
82
|
+
email?: string;
|
|
83
|
+
id: string;
|
|
84
|
+
name?: string;
|
|
85
|
+
} | undefined, notice?: IMcpOAuthConsentView['notice']): IMcpOAuthConsentView;
|
|
86
|
+
protected consentAppHost(): string;
|
|
87
|
+
protected consentLoginUrl(req: any): IMcpOAuthConsentView['loginUrl'];
|
|
88
|
+
protected signConsentToken(binding: IAiMcpOAuthConsentBinding): string;
|
|
89
|
+
protected verifyConsentToken(token: unknown, binding: IAiMcpOAuthConsentBinding): 'expired' | 'invalid' | 'valid';
|
|
90
|
+
protected loadOAuthErrors(): Promise<typeof OAuthErrors>;
|
|
63
91
|
protected hmac(payloadStr: string): string;
|
|
64
92
|
protected safeEqual(a: string, b: string): boolean;
|
|
65
93
|
protected getSecret(): string;
|
|
@@ -16,11 +16,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.CoreAiMcpOAuthService = void 0;
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
19
|
+
const node_async_hooks_1 = require("node:async_hooks");
|
|
19
20
|
const node_crypto_1 = require("node:crypto");
|
|
20
21
|
const mongoose_2 = require("mongoose");
|
|
21
22
|
const cookies_helper_1 = require("../../../common/helpers/cookies.helper");
|
|
22
23
|
const config_service_1 = require("../../../common/services/config.service");
|
|
23
24
|
const core_api_token_helpers_1 = require("../../api-token/core-api-token.helpers");
|
|
25
|
+
const core_better_auth_registry_1 = require("../../better-auth/core-better-auth.registry");
|
|
26
|
+
const ai_mcp_oauth_consent_helper_1 = require("../helpers/ai-mcp-oauth-consent.helper");
|
|
27
|
+
const ai_mcp_oauth_registry_1 = require("../helpers/ai-mcp-oauth.registry");
|
|
28
|
+
const authorizeRequest = new node_async_hooks_1.AsyncLocalStorage();
|
|
29
|
+
function assertCodeIssuanceAllowed() {
|
|
30
|
+
const request = authorizeRequest.getStore();
|
|
31
|
+
if (request && request.method !== 'POST') {
|
|
32
|
+
const message = `MCP OAuth: refused to issue an authorization code while answering ${request.method || 'a non-POST'} /authorize. ` +
|
|
33
|
+
'Show the consent page on GET and issue the code only when the user approves it with a POST.';
|
|
34
|
+
new common_1.Logger('CoreAiMcpOAuthService').error(message);
|
|
35
|
+
throw new Error(message);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function consentTokenPayload(binding, exp) {
|
|
39
|
+
return JSON.stringify([
|
|
40
|
+
'mcp_consent',
|
|
41
|
+
binding.userId,
|
|
42
|
+
binding.clientId,
|
|
43
|
+
binding.redirectUri,
|
|
44
|
+
binding.codeChallenge,
|
|
45
|
+
exp,
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
24
48
|
let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthService {
|
|
25
49
|
connection;
|
|
26
50
|
logger = new common_1.Logger(CoreAiMcpOAuthService_1.name);
|
|
@@ -36,12 +60,21 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
|
|
|
36
60
|
this.assertProductionSafe();
|
|
37
61
|
}
|
|
38
62
|
assertProductionSafe() {
|
|
39
|
-
if (this.oauthEnabled() &&
|
|
40
|
-
throw new Error('AI MCP OAuth signing secret is required
|
|
63
|
+
if (this.oauthEnabled() && !this.allowsDevelopmentSecret() && !this.resolveSecret()) {
|
|
64
|
+
throw new Error('AI MCP OAuth signing secret is required when ai.mcp.oauth is enabled outside local / ci / e2e, ' +
|
|
41
65
|
'but none is set (ai.mcp.oauthSecret / ai.encryptionSecret / NSC__AI__ENCRYPTION_SECRET / ' +
|
|
42
66
|
'SECRETS_ENCRYPTION_KEY). Set a random 32+ char value.');
|
|
43
67
|
}
|
|
44
68
|
}
|
|
69
|
+
allowsDevelopmentSecret() {
|
|
70
|
+
return (0, cookies_helper_1.isLocalEnv)(config_service_1.ConfigService.get('env') ?? process.env.NODE_ENV);
|
|
71
|
+
}
|
|
72
|
+
isOAuthEnabled() {
|
|
73
|
+
return this.oauthEnabled();
|
|
74
|
+
}
|
|
75
|
+
usesBuiltInConsent() {
|
|
76
|
+
return this.authorizeConsent === CoreAiMcpOAuthService_1.prototype.authorizeConsent;
|
|
77
|
+
}
|
|
45
78
|
oauthEnabled() {
|
|
46
79
|
const mcp = config_service_1.ConfigService.get('ai.mcp');
|
|
47
80
|
return typeof mcp === 'object' && mcp?.oauth === true;
|
|
@@ -120,6 +153,7 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
|
|
|
120
153
|
};
|
|
121
154
|
}
|
|
122
155
|
async saveAuthorizationCode(code, data) {
|
|
156
|
+
assertCodeIssuanceAllowed();
|
|
123
157
|
await this.ensureIndexes();
|
|
124
158
|
await this.db().collection(this.codesCollection).insertOne({
|
|
125
159
|
clientId: data.clientId,
|
|
@@ -133,8 +167,9 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
|
|
|
133
167
|
const doc = await this.db().collection(this.codesCollection).findOne({ code });
|
|
134
168
|
return doc ? { clientId: doc.clientId, codeChallenge: doc.codeChallenge, userId: doc.userId } : null;
|
|
135
169
|
}
|
|
136
|
-
async consumeAuthorizationCode(code) {
|
|
137
|
-
const
|
|
170
|
+
async consumeAuthorizationCode(code, clientId) {
|
|
171
|
+
const filter = clientId === undefined ? { code } : { clientId, code };
|
|
172
|
+
const doc = await this.db().collection(this.codesCollection).findOneAndDelete(filter);
|
|
138
173
|
const value = doc?.value ?? doc;
|
|
139
174
|
if (!value) {
|
|
140
175
|
return null;
|
|
@@ -179,9 +214,11 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
|
|
|
179
214
|
return {
|
|
180
215
|
authorize: async (client, params, res) => {
|
|
181
216
|
if ((0, core_api_token_helpers_1.getApiTokenContext)(res?.req?.user)) {
|
|
182
|
-
|
|
217
|
+
const { AccessDeniedError } = await this.loadOAuthErrors();
|
|
218
|
+
throw new AccessDeniedError('An API token cannot authorize an OAuth client');
|
|
183
219
|
}
|
|
184
|
-
|
|
220
|
+
const method = String(res?.req?.method ?? '').toUpperCase();
|
|
221
|
+
return authorizeRequest.run({ method }, () => this.authorizeConsent(client, params, res));
|
|
185
222
|
},
|
|
186
223
|
challengeForAuthorizationCode: async (_client, authorizationCode) => {
|
|
187
224
|
const stored = await this.getAuthorizationCode(authorizationCode);
|
|
@@ -192,9 +229,10 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
|
|
|
192
229
|
registerClient: (client) => this.registerClient(client),
|
|
193
230
|
},
|
|
194
231
|
exchangeAuthorizationCode: async (client, authorizationCode) => {
|
|
195
|
-
const stored = await this.consumeAuthorizationCode(authorizationCode);
|
|
196
|
-
if (!stored || stored.clientId !== client
|
|
197
|
-
|
|
232
|
+
const stored = await this.consumeAuthorizationCode(authorizationCode, String(client?.client_id ?? ''));
|
|
233
|
+
if (!stored || stored.clientId !== client?.client_id) {
|
|
234
|
+
const { InvalidGrantError } = await this.loadOAuthErrors();
|
|
235
|
+
throw new InvalidGrantError('Authorization code is invalid, expired, already used or issued to another client');
|
|
198
236
|
}
|
|
199
237
|
return {
|
|
200
238
|
access_token: this.signAccessToken(stored.userId, stored.clientId, accessTtlSeconds),
|
|
@@ -206,11 +244,13 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
|
|
|
206
244
|
exchangeRefreshToken: async (client, refreshToken) => {
|
|
207
245
|
const callerClientId = client?.client_id;
|
|
208
246
|
if (!callerClientId) {
|
|
209
|
-
|
|
247
|
+
const { InvalidClientError } = await this.loadOAuthErrors();
|
|
248
|
+
throw new InvalidClientError('Unknown client');
|
|
210
249
|
}
|
|
211
250
|
const rotated = await this.rotateRefreshToken(refreshToken, callerClientId);
|
|
212
251
|
if (!rotated) {
|
|
213
|
-
|
|
252
|
+
const { InvalidGrantError } = await this.loadOAuthErrors();
|
|
253
|
+
throw new InvalidGrantError('Refresh token is invalid, already used or issued to another client');
|
|
214
254
|
}
|
|
215
255
|
return {
|
|
216
256
|
access_token: this.signAccessToken(rotated.userId, rotated.clientId, accessTtlSeconds),
|
|
@@ -222,14 +262,176 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
|
|
|
222
262
|
verifyAccessToken: async (token) => {
|
|
223
263
|
const payload = this.verifyAccessToken(token);
|
|
224
264
|
if (!payload) {
|
|
225
|
-
|
|
265
|
+
const { InvalidTokenError } = await this.loadOAuthErrors();
|
|
266
|
+
throw new InvalidTokenError('Invalid or expired access token');
|
|
226
267
|
}
|
|
227
|
-
return { clientId: payload.cid, extra: { userId: payload.sub }, scopes: [], token };
|
|
268
|
+
return { clientId: payload.cid, expiresAt: payload.exp, extra: { userId: payload.sub }, scopes: [], token };
|
|
228
269
|
},
|
|
229
270
|
};
|
|
230
271
|
}
|
|
231
|
-
|
|
232
|
-
|
|
272
|
+
consentTokenTtlSeconds = 600;
|
|
273
|
+
async authorizeConsent(client, params, res) {
|
|
274
|
+
const req = res?.req;
|
|
275
|
+
const user = await this.consentUser(req);
|
|
276
|
+
const decision = req?.method === 'POST' ? req.body?.[ai_mcp_oauth_consent_helper_1.MCP_OAUTH_CONSENT_DECISION_FIELD] : undefined;
|
|
277
|
+
if (user && decision === 'deny') {
|
|
278
|
+
const { AccessDeniedError } = await this.loadOAuthErrors();
|
|
279
|
+
throw new AccessDeniedError('The user denied access');
|
|
280
|
+
}
|
|
281
|
+
let notice;
|
|
282
|
+
if (user && decision === 'approve') {
|
|
283
|
+
const binding = {
|
|
284
|
+
clientId: String(client.client_id),
|
|
285
|
+
codeChallenge: String(params.codeChallenge),
|
|
286
|
+
redirectUri: String(params.redirectUri),
|
|
287
|
+
userId: user.id,
|
|
288
|
+
};
|
|
289
|
+
const verdict = this.verifyConsentToken(req.body?.[ai_mcp_oauth_consent_helper_1.MCP_OAUTH_CONSENT_TOKEN_FIELD], binding);
|
|
290
|
+
if (verdict === 'valid') {
|
|
291
|
+
const code = this.generateId();
|
|
292
|
+
await this.saveAuthorizationCode(code, {
|
|
293
|
+
clientId: binding.clientId,
|
|
294
|
+
codeChallenge: binding.codeChallenge,
|
|
295
|
+
userId: binding.userId,
|
|
296
|
+
});
|
|
297
|
+
const target = new URL(binding.redirectUri);
|
|
298
|
+
target.searchParams.set('code', code);
|
|
299
|
+
if (params.state) {
|
|
300
|
+
target.searchParams.set('state', params.state);
|
|
301
|
+
}
|
|
302
|
+
res.redirect(302, target.href);
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
if (verdict === 'expired') {
|
|
306
|
+
notice = 'expired';
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
this.logger.warn(`MCP OAuth consent for client ${binding.clientId} carried an invalid token (forged, tampered, or from ` +
|
|
310
|
+
'another session); no code issued, the form is shown again.');
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
const view = this.buildConsentView(req, client, params, user, notice);
|
|
314
|
+
res.status(200);
|
|
315
|
+
for (const [name, value] of Object.entries((0, ai_mcp_oauth_consent_helper_1.mcpOAuthConsentHeaders)(view.nonce))) {
|
|
316
|
+
res.setHeader(name, value);
|
|
317
|
+
}
|
|
318
|
+
res.send(this.renderConsentPage(view));
|
|
319
|
+
}
|
|
320
|
+
renderConsentPage(view) {
|
|
321
|
+
return (0, ai_mcp_oauth_consent_helper_1.renderMcpOAuthConsentPage)(view);
|
|
322
|
+
}
|
|
323
|
+
async consentUser(req) {
|
|
324
|
+
const toConsentUser = (user) => user?.id && !(0, core_api_token_helpers_1.getApiTokenContext)(user) ? { email: user.email, id: String(user.id), name: user.name } : undefined;
|
|
325
|
+
if (req?.user?.id) {
|
|
326
|
+
return toConsentUser(req.user);
|
|
327
|
+
}
|
|
328
|
+
const tokenService = (0, core_better_auth_registry_1.getBetterAuthTokenService)();
|
|
329
|
+
if (!tokenService || !req || (0, core_api_token_helpers_1.hasApiTokenCredential)(req)) {
|
|
330
|
+
return undefined;
|
|
331
|
+
}
|
|
332
|
+
try {
|
|
333
|
+
const { token } = tokenService.extractTokenFromRequest(req);
|
|
334
|
+
return token ? toConsentUser(await tokenService.verifyAndLoadUser(token)) : undefined;
|
|
335
|
+
}
|
|
336
|
+
catch {
|
|
337
|
+
return undefined;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
buildConsentView(req, client, params, user, notice) {
|
|
341
|
+
const redirect = new URL(String(params.redirectUri));
|
|
342
|
+
const oauthParams = {
|
|
343
|
+
client_id: String(client.client_id),
|
|
344
|
+
code_challenge: String(params.codeChallenge),
|
|
345
|
+
code_challenge_method: 'S256',
|
|
346
|
+
redirect_uri: String(params.redirectUri),
|
|
347
|
+
response_type: 'code',
|
|
348
|
+
};
|
|
349
|
+
if (params.state) {
|
|
350
|
+
oauthParams.state = String(params.state);
|
|
351
|
+
}
|
|
352
|
+
if (Array.isArray(params.scopes) && params.scopes.length) {
|
|
353
|
+
oauthParams.scope = params.scopes.join(' ');
|
|
354
|
+
}
|
|
355
|
+
if (params.resource) {
|
|
356
|
+
oauthParams.resource = String(params.resource.href ?? params.resource);
|
|
357
|
+
}
|
|
358
|
+
return {
|
|
359
|
+
appHost: this.consentAppHost(),
|
|
360
|
+
authBasePath: (0, core_better_auth_registry_1.getBetterAuthTokenService)()
|
|
361
|
+
? (0, ai_mcp_oauth_registry_1.getMountedMcpOAuth)()?.authBasePath || config_service_1.ConfigService.get('betterAuth.basePath') || '/iam'
|
|
362
|
+
: undefined,
|
|
363
|
+
client: { id: String(client.client_id), name: client.client_name },
|
|
364
|
+
csrfToken: user
|
|
365
|
+
? this.signConsentToken({
|
|
366
|
+
clientId: oauthParams.client_id,
|
|
367
|
+
codeChallenge: oauthParams.code_challenge,
|
|
368
|
+
redirectUri: oauthParams.redirect_uri,
|
|
369
|
+
userId: user.id,
|
|
370
|
+
})
|
|
371
|
+
: undefined,
|
|
372
|
+
locale: (0, ai_mcp_oauth_consent_helper_1.mcpOAuthConsentLocale)(req?.headers?.['accept-language']),
|
|
373
|
+
loginUrl: user ? undefined : this.consentLoginUrl(req),
|
|
374
|
+
nonce: (0, node_crypto_1.randomBytes)(16).toString('base64'),
|
|
375
|
+
notice,
|
|
376
|
+
oauthParams,
|
|
377
|
+
redirect: { host: redirect.host, loopback: ['localhost', '127.0.0.1', '[::1]'].includes(redirect.hostname) },
|
|
378
|
+
user: user ? { email: user.email, name: user.name } : undefined,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
consentAppHost() {
|
|
382
|
+
for (const url of [(0, cookies_helper_1.resolveAppUrlFromConfig)(config_service_1.ConfigService), (0, ai_mcp_oauth_registry_1.getMountedMcpOAuth)()?.baseUrl]) {
|
|
383
|
+
try {
|
|
384
|
+
if (url) {
|
|
385
|
+
return new URL(url).host;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
catch {
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return '';
|
|
392
|
+
}
|
|
393
|
+
consentLoginUrl(req) {
|
|
394
|
+
const configured = config_service_1.ConfigService.get('ai.mcp.oauthLoginUrl');
|
|
395
|
+
const appUrl = (0, cookies_helper_1.resolveAppUrlFromConfig)(config_service_1.ConfigService);
|
|
396
|
+
const template = typeof configured === 'string' && configured.trim()
|
|
397
|
+
? configured.trim()
|
|
398
|
+
: appUrl
|
|
399
|
+
? `${appUrl.replace(/\/$/, '')}/auth/login`
|
|
400
|
+
: undefined;
|
|
401
|
+
if (!template) {
|
|
402
|
+
return undefined;
|
|
403
|
+
}
|
|
404
|
+
const returnsHere = template.includes('{returnTo}');
|
|
405
|
+
const base = (0, ai_mcp_oauth_registry_1.getMountedMcpOAuth)()?.baseUrl;
|
|
406
|
+
const returnTo = returnsHere && base && req?.originalUrl ? new URL(String(req.originalUrl), `${base}/`).href : '';
|
|
407
|
+
try {
|
|
408
|
+
const href = new URL(template.replace('{returnTo}', () => encodeURIComponent(returnTo))).href;
|
|
409
|
+
return /^https?:/.test(href) ? { href, returnsHere } : undefined;
|
|
410
|
+
}
|
|
411
|
+
catch {
|
|
412
|
+
return undefined;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
signConsentToken(binding) {
|
|
416
|
+
const exp = Math.floor(Date.now() / 1000) + this.consentTokenTtlSeconds;
|
|
417
|
+
return `${exp}.${this.hmac(consentTokenPayload(binding, exp))}`;
|
|
418
|
+
}
|
|
419
|
+
verifyConsentToken(token, binding) {
|
|
420
|
+
if (typeof token !== 'string') {
|
|
421
|
+
return 'invalid';
|
|
422
|
+
}
|
|
423
|
+
const parts = token.split('.');
|
|
424
|
+
const exp = Number(parts[0]);
|
|
425
|
+
if (parts.length !== 2 || !Number.isSafeInteger(exp) || !parts[1]) {
|
|
426
|
+
return 'invalid';
|
|
427
|
+
}
|
|
428
|
+
if (!this.safeEqual(parts[1], this.hmac(consentTokenPayload(binding, exp)))) {
|
|
429
|
+
return 'invalid';
|
|
430
|
+
}
|
|
431
|
+
return exp > Math.floor(Date.now() / 1000) ? 'valid' : 'expired';
|
|
432
|
+
}
|
|
433
|
+
loadOAuthErrors() {
|
|
434
|
+
return Promise.resolve().then(() => require('@modelcontextprotocol/sdk/server/auth/errors.js'));
|
|
233
435
|
}
|
|
234
436
|
hmac(payloadStr) {
|
|
235
437
|
return (0, node_crypto_1.createHmac)('sha256', this.getSecret()).update(payloadStr).digest('base64url');
|
|
@@ -244,6 +446,11 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
|
|
|
244
446
|
}
|
|
245
447
|
getSecret() {
|
|
246
448
|
const raw = this.resolveSecret();
|
|
449
|
+
if (!raw && !this.allowsDevelopmentSecret()) {
|
|
450
|
+
throw new Error('AI MCP OAuth signing secret is not configured outside local / ci / e2e; refusing to sign or verify ' +
|
|
451
|
+
'tokens with the public development default. Set ai.mcp.oauthSecret (or ai.encryptionSecret / ' +
|
|
452
|
+
'NSC__AI__ENCRYPTION_SECRET / SECRETS_ENCRYPTION_KEY).');
|
|
453
|
+
}
|
|
247
454
|
if (!raw) {
|
|
248
455
|
if (!this.warnedSecret) {
|
|
249
456
|
this.logger.warn('No AI MCP OAuth secret set — using an insecure development default. Set ai.mcp.oauthSecret ' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-ai-mcp-oauth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/services/core-ai-mcp-oauth.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core-ai-mcp-oauth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/services/core-ai-mcp-oauth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,10 @@ export declare function buildTrustedOrigins(config: IBetterAuth, options: {
|
|
|
67
67
|
resolvedUrls: ResolvedUrls;
|
|
68
68
|
serverCorsConfig?: boolean | ICorsConfig;
|
|
69
69
|
}): string[] | undefined;
|
|
70
|
+
export declare function mcpOAuthIssuerOrigin(serverConfig: {
|
|
71
|
+
ai?: unknown;
|
|
72
|
+
} | undefined): string | undefined;
|
|
73
|
+
export declare function withMcpOAuthIssuerOrigin(trustedOrigins: string[] | undefined, issuerOrigin: string | undefined): string[] | undefined;
|
|
70
74
|
interface ResolvedUrls {
|
|
71
75
|
appUrl: string | undefined;
|
|
72
76
|
baseUrl: string | undefined;
|
|
@@ -8,6 +8,8 @@ exports.createBetterAuthInstance = createBetterAuthInstance;
|
|
|
8
8
|
exports.wsSessionRevocationPlugin = wsSessionRevocationPlugin;
|
|
9
9
|
exports.formatProjectName = formatProjectName;
|
|
10
10
|
exports.buildTrustedOrigins = buildTrustedOrigins;
|
|
11
|
+
exports.mcpOAuthIssuerOrigin = mcpOAuthIssuerOrigin;
|
|
12
|
+
exports.withMcpOAuthIssuerOrigin = withMcpOAuthIssuerOrigin;
|
|
11
13
|
exports.resolveCrossSubDomainCookies = resolveCrossSubDomainCookies;
|
|
12
14
|
const passkey_1 = require("@better-auth/passkey");
|
|
13
15
|
const common_1 = require("@nestjs/common");
|
|
@@ -19,6 +21,7 @@ const fs = require("fs");
|
|
|
19
21
|
const path = require("path");
|
|
20
22
|
const cookies_helper_1 = require("../../common/helpers/cookies.helper");
|
|
21
23
|
const graphql_ws_connection_helper_1 = require("../../common/helpers/graphql-ws-connection.helper");
|
|
24
|
+
const config_service_1 = require("../../common/services/config.service");
|
|
22
25
|
const better_auth_cookie_prefix_helper_1 = require("./better-auth-cookie-prefix.helper");
|
|
23
26
|
const core_better_auth_openapi_helper_1 = require("./core-better-auth-openapi.helper");
|
|
24
27
|
const logger = new common_1.Logger('BetterAuthConfig');
|
|
@@ -120,11 +123,11 @@ function createBetterAuthInstance(options) {
|
|
|
120
123
|
}
|
|
121
124
|
const plugins = buildPlugins(config, { passkeyNormalization, serverEnv });
|
|
122
125
|
const socialProviders = buildSocialProviders(config);
|
|
123
|
-
const trustedOrigins = buildTrustedOrigins(config, {
|
|
126
|
+
const trustedOrigins = withMcpOAuthIssuerOrigin(buildTrustedOrigins(config, {
|
|
124
127
|
passkeyNormalization,
|
|
125
128
|
resolvedUrls,
|
|
126
129
|
serverCorsConfig: options.serverCorsConfig,
|
|
127
|
-
});
|
|
130
|
+
}), mcpOAuthIssuerOrigin(config_service_1.ConfigService.configFastButReadOnly));
|
|
128
131
|
const additionalFields = buildUserFields(config);
|
|
129
132
|
const crossSubDomain = resolveCrossSubDomainCookies(config, resolvedUrls);
|
|
130
133
|
if (crossSubDomain.enabled) {
|
|
@@ -392,6 +395,30 @@ function buildTrustedOrigins(config, options) {
|
|
|
392
395
|
}
|
|
393
396
|
return undefined;
|
|
394
397
|
}
|
|
398
|
+
function mcpOAuthIssuerOrigin(serverConfig) {
|
|
399
|
+
const ai = serverConfig?.ai;
|
|
400
|
+
const mcp = typeof ai === 'object' && ai !== null ? ai.mcp : undefined;
|
|
401
|
+
if (typeof mcp !== 'object' || mcp === null) {
|
|
402
|
+
return undefined;
|
|
403
|
+
}
|
|
404
|
+
const { oauth, oauthBaseUrl } = mcp;
|
|
405
|
+
if (oauth !== true || typeof oauthBaseUrl !== 'string' || !oauthBaseUrl.trim()) {
|
|
406
|
+
return undefined;
|
|
407
|
+
}
|
|
408
|
+
try {
|
|
409
|
+
const url = new URL(oauthBaseUrl.trim());
|
|
410
|
+
return url.protocol === 'https:' || url.protocol === 'http:' ? url.origin : undefined;
|
|
411
|
+
}
|
|
412
|
+
catch {
|
|
413
|
+
return undefined;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
function withMcpOAuthIssuerOrigin(trustedOrigins, issuerOrigin) {
|
|
417
|
+
if (!issuerOrigin) {
|
|
418
|
+
return trustedOrigins;
|
|
419
|
+
}
|
|
420
|
+
return [...new Set([...(trustedOrigins ?? []), issuerOrigin])];
|
|
421
|
+
}
|
|
395
422
|
const PROTECTED_INPUT_FALSE_KEYS = ['iamId', 'roles', 'twoFactorEnabled', 'verified', 'verifiedAt'];
|
|
396
423
|
function buildUserFields(config) {
|
|
397
424
|
const coreFields = {
|