authflow-cli 0.3.0 → 0.4.1
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/README.md +14 -1
- package/dist/client-conformance.d.ts +34 -0
- package/dist/client-conformance.js +379 -0
- package/dist/client-conformance.js.map +1 -0
- package/dist/client-fixtures.d.ts +67 -0
- package/dist/client-fixtures.js +130 -0
- package/dist/client-fixtures.js.map +1 -0
- package/dist/commands/doctor.js +13 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/probe.js +1 -1
- package/dist/commands/probe.js.map +1 -1
- package/dist/doctor.d.ts +26 -2
- package/dist/doctor.js +127 -16
- package/dist/doctor.js.map +1 -1
- package/dist/google-redirect.d.ts +31 -0
- package/dist/google-redirect.js +479 -0
- package/dist/google-redirect.js.map +1 -0
- package/dist/mcp/server.js +34 -11
- package/dist/mcp/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drive the real Google sign-in challenge, then ask Google whether the rail's redirect_uri
|
|
3
|
+
* is registered on the OAuth client.
|
|
4
|
+
*
|
|
5
|
+
* This exists because a misregistered Google callback surfaces at the very end of the paid
|
|
6
|
+
* loop — after DCR, after authorize — as a Google error page that reads like a rail outage.
|
|
7
|
+
* Nothing else in the product verified it, so both sides argued from prose.
|
|
8
|
+
*
|
|
9
|
+
* A bare GET /login cannot provoke the challenge: OnGet only renders, OnPost issues the
|
|
10
|
+
* Google ChallengeResult, and both require a live authorize returnUrl (a registered client,
|
|
11
|
+
* RFC 8707 resource, and the mcp scope). That is why this probe POSTs DCR, starts /authorize,
|
|
12
|
+
* then POSTs the login form. A GET /login that 500s on a missing returnUrl is a different
|
|
13
|
+
* check, in doctor.ts.
|
|
14
|
+
*
|
|
15
|
+
* Google's registered-vs-not signal is the first 302 off accounts.google.com (do not follow
|
|
16
|
+
* it): identifier/consent means the URI is accepted; /signin/oauth/error plus the OAuth error
|
|
17
|
+
* code redirect_uri_mismatch means it is not. Status is 302 in both cases.
|
|
18
|
+
*/
|
|
19
|
+
import { createHash, randomBytes } from "node:crypto";
|
|
20
|
+
import { cursorCanonicalDcr, dcrProbeClientNamePrefix } from "./client-fixtures.js";
|
|
21
|
+
import { fetchOrNull } from "./doctor.js";
|
|
22
|
+
/** ASP.NET Google handler default CallbackPath; the rail does not override it. */
|
|
23
|
+
export const googleCallbackPath = "/signin-google";
|
|
24
|
+
const googleHost = "accounts.google.com";
|
|
25
|
+
const advisoryDetail = "Advisory — not proven. Provoking the Google challenge requires a throwaway DCR client and " +
|
|
26
|
+
"a live RFC 8707 resource, then a POST to /login with that authorize returnUrl. A pass here " +
|
|
27
|
+
"does not mean Google accepted the rail's redirect_uri.";
|
|
28
|
+
const advisoryRemedy = "Re-run with --client and --slug (not --dry-run) to register a throwaway DCR client, start " +
|
|
29
|
+
"/authorize, POST the login form, and ask Google whether the callback is registered.";
|
|
30
|
+
export function expectedGoogleCallbackUri(issuer) {
|
|
31
|
+
return `${issuer.trim().replace(/\/+$/, "")}${googleCallbackPath}`;
|
|
32
|
+
}
|
|
33
|
+
export async function checkGoogleRedirectUri(issuer, options = {}) {
|
|
34
|
+
if (options.dryRun || !options.slug) {
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
name: "google redirect_uri registered",
|
|
38
|
+
pass: true,
|
|
39
|
+
detail: options.dryRun
|
|
40
|
+
? `${advisoryDetail} --dry-run skipped the DCR POST, so the challenge was not started.`
|
|
41
|
+
: `${advisoryDetail} No --slug, so there is no resource to put on /authorize.`,
|
|
42
|
+
remedy: advisoryRemedy,
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
return probeGoogleRedirectUri(issuer, options.slug);
|
|
47
|
+
}
|
|
48
|
+
export async function probeGoogleRedirectUri(issuer, slug) {
|
|
49
|
+
const base = issuer.trim().replace(/\/+$/, "");
|
|
50
|
+
const expected = expectedGoogleCallbackUri(base);
|
|
51
|
+
const resource = await fetchResourceIdentifier(base, slug);
|
|
52
|
+
if (!resource.ok) {
|
|
53
|
+
return [resource.check];
|
|
54
|
+
}
|
|
55
|
+
const registration = await registerProbeClient(base);
|
|
56
|
+
if (!registration.ok) {
|
|
57
|
+
return [registration.check];
|
|
58
|
+
}
|
|
59
|
+
const authorize = await startAuthorize(base, {
|
|
60
|
+
clientId: registration.clientId,
|
|
61
|
+
redirectUri: registration.redirectUri,
|
|
62
|
+
resource: resource.resource,
|
|
63
|
+
});
|
|
64
|
+
if (!authorize.ok) {
|
|
65
|
+
return [authorize.check];
|
|
66
|
+
}
|
|
67
|
+
const login = await fetchLoginPage(base, authorize.loginPath);
|
|
68
|
+
if (!login.ok) {
|
|
69
|
+
return [login.check];
|
|
70
|
+
}
|
|
71
|
+
const challenge = await postGoogleChallenge(base, authorize.loginPath, login);
|
|
72
|
+
if (!challenge.ok) {
|
|
73
|
+
return [challenge.check];
|
|
74
|
+
}
|
|
75
|
+
const emitted = challenge.redirectUri;
|
|
76
|
+
const callback = sameCallbackUri(emitted, expected)
|
|
77
|
+
? {
|
|
78
|
+
name: "google callback URI",
|
|
79
|
+
pass: true,
|
|
80
|
+
detail: `Rail sent redirect_uri=${emitted}.`,
|
|
81
|
+
}
|
|
82
|
+
: {
|
|
83
|
+
name: "google callback URI",
|
|
84
|
+
pass: false,
|
|
85
|
+
detail: `Rail sent redirect_uri=${emitted}, expected ${expected}.`,
|
|
86
|
+
remedy: "This is a rail misconfiguration (AuthServer:Issuer or a proxy rewriting the Host), " +
|
|
87
|
+
"not a Google Console gap. Register the URI the rail actually emits, or fix the host " +
|
|
88
|
+
`so the challenge uses ${expected}.`,
|
|
89
|
+
};
|
|
90
|
+
const registered = await askGoogle(challenge.googleUrl, emitted);
|
|
91
|
+
return [callback, registered];
|
|
92
|
+
}
|
|
93
|
+
async function fetchResourceIdentifier(base, slug) {
|
|
94
|
+
const url = `${base}/.well-known/oauth-protected-resource/${encodeURIComponent(slug)}/mcp`;
|
|
95
|
+
const response = await fetchOrNull(url);
|
|
96
|
+
if (response.status !== 200) {
|
|
97
|
+
return {
|
|
98
|
+
ok: false,
|
|
99
|
+
check: {
|
|
100
|
+
name: "google challenge",
|
|
101
|
+
pass: false,
|
|
102
|
+
detail: `Need a live resource to start /authorize; ${url} returned ${response.status ?? response.error}.`,
|
|
103
|
+
remedy: response.status === 404
|
|
104
|
+
? `No live resource at slug '${slug}'. Check pending_requirements.`
|
|
105
|
+
: "The Google check cannot start authorize without the PRM document. File a rail bug.",
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
const document = JSON.parse(response.body ?? "");
|
|
111
|
+
const resource = typeof document.resource === "string" ? document.resource.trim() : "";
|
|
112
|
+
if (!resource) {
|
|
113
|
+
return {
|
|
114
|
+
ok: false,
|
|
115
|
+
check: {
|
|
116
|
+
name: "google challenge",
|
|
117
|
+
pass: false,
|
|
118
|
+
detail: `${url} has no resource identifier.`,
|
|
119
|
+
remedy: "PRM must name the RFC 8707 resource. File a rail bug.",
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return { ok: true, resource };
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return {
|
|
127
|
+
ok: false,
|
|
128
|
+
check: {
|
|
129
|
+
name: "google challenge",
|
|
130
|
+
pass: false,
|
|
131
|
+
detail: `${url} did not return JSON.`,
|
|
132
|
+
remedy: "File this against the rail.",
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
async function registerProbeClient(base) {
|
|
138
|
+
const endpoint = `${base}/register`;
|
|
139
|
+
const redirectUri = cursorCanonicalDcr.payload.redirect_uris[2] ?? "http://127.0.0.1:8787/callback";
|
|
140
|
+
const response = await fetchOrNull(endpoint, {
|
|
141
|
+
method: "POST",
|
|
142
|
+
headers: { "Content-Type": "application/json", Accept: "application/json" },
|
|
143
|
+
body: JSON.stringify({
|
|
144
|
+
...cursorCanonicalDcr.payload,
|
|
145
|
+
client_name: `${dcrProbeClientNamePrefix} google-redirect`,
|
|
146
|
+
}),
|
|
147
|
+
});
|
|
148
|
+
if (!response.ok && response.error) {
|
|
149
|
+
return {
|
|
150
|
+
ok: false,
|
|
151
|
+
check: {
|
|
152
|
+
name: "google challenge",
|
|
153
|
+
pass: false,
|
|
154
|
+
detail: `POST ${endpoint} could not be reached: ${response.error}`,
|
|
155
|
+
remedy: "DCR is required to start /authorize. File a rail bug.",
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (response.status !== 201) {
|
|
160
|
+
return {
|
|
161
|
+
ok: false,
|
|
162
|
+
check: {
|
|
163
|
+
name: "google challenge",
|
|
164
|
+
pass: false,
|
|
165
|
+
detail: `POST ${endpoint} returned ${response.status ?? response.error}, expected 201.`,
|
|
166
|
+
remedy: "DCR must succeed before the Google challenge can be provoked. File a rail bug.",
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
const body = JSON.parse(response.body ?? "");
|
|
172
|
+
const clientId = typeof body.client_id === "string" ? body.client_id : "";
|
|
173
|
+
if (!clientId) {
|
|
174
|
+
return {
|
|
175
|
+
ok: false,
|
|
176
|
+
check: {
|
|
177
|
+
name: "google challenge",
|
|
178
|
+
pass: false,
|
|
179
|
+
detail: "DCR 201 but no client_id.",
|
|
180
|
+
remedy: "File this against the rail.",
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
return { ok: true, clientId, redirectUri };
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return {
|
|
188
|
+
ok: false,
|
|
189
|
+
check: {
|
|
190
|
+
name: "google challenge",
|
|
191
|
+
pass: false,
|
|
192
|
+
detail: "DCR 201 but the body was not JSON.",
|
|
193
|
+
remedy: "File this against the rail.",
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
async function startAuthorize(base, args) {
|
|
199
|
+
const url = new URL("/authorize", `${base}/`);
|
|
200
|
+
url.searchParams.set("response_type", "code");
|
|
201
|
+
url.searchParams.set("client_id", args.clientId);
|
|
202
|
+
url.searchParams.set("redirect_uri", args.redirectUri);
|
|
203
|
+
url.searchParams.set("scope", "mcp");
|
|
204
|
+
url.searchParams.set("resource", args.resource);
|
|
205
|
+
url.searchParams.set("code_challenge", pkceS256Challenge());
|
|
206
|
+
url.searchParams.set("code_challenge_method", "S256");
|
|
207
|
+
url.searchParams.set("state", "authflow-cli-google-redirect");
|
|
208
|
+
const response = await fetchOrNull(url.href, { redirect: "manual" });
|
|
209
|
+
const location = response.location ?? "";
|
|
210
|
+
if (response.status !== 302 || !location) {
|
|
211
|
+
return {
|
|
212
|
+
ok: false,
|
|
213
|
+
check: {
|
|
214
|
+
name: "google challenge",
|
|
215
|
+
pass: false,
|
|
216
|
+
detail: `GET /authorize returned ${response.status ?? response.error}, expected a 302 to /login.`,
|
|
217
|
+
remedy: "Authorize must send an unauthenticated user to the login page. Check that the " +
|
|
218
|
+
"resource identifier in PRM is the one the registry knows, and that PKCE S256 is accepted.",
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
let login;
|
|
223
|
+
try {
|
|
224
|
+
login = new URL(location, `${base}/`);
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
return {
|
|
228
|
+
ok: false,
|
|
229
|
+
check: {
|
|
230
|
+
name: "google challenge",
|
|
231
|
+
pass: false,
|
|
232
|
+
detail: `GET /authorize redirected to an unparseable Location: '${location}'.`,
|
|
233
|
+
remedy: "File this against the rail.",
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
if (login.pathname !== "/login") {
|
|
238
|
+
return {
|
|
239
|
+
ok: false,
|
|
240
|
+
check: {
|
|
241
|
+
name: "google challenge",
|
|
242
|
+
pass: false,
|
|
243
|
+
detail: `GET /authorize redirected to ${login.pathname}, expected /login. Location=${location}`,
|
|
244
|
+
remedy: "If this is an OAuth error to the client redirect_uri, the resource parameter did not " +
|
|
245
|
+
"match a registered resource. Use the resource identifier from the PRM document.",
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
return { ok: true, loginPath: `${login.pathname}${login.search}` };
|
|
250
|
+
}
|
|
251
|
+
async function fetchLoginPage(base, loginPath) {
|
|
252
|
+
const response = await fetchOrNull(`${base}${loginPath}`, { redirect: "manual" });
|
|
253
|
+
if (response.status !== 200) {
|
|
254
|
+
return {
|
|
255
|
+
ok: false,
|
|
256
|
+
check: {
|
|
257
|
+
name: "google challenge",
|
|
258
|
+
pass: false,
|
|
259
|
+
detail: `GET ${loginPath} returned ${response.status ?? response.error}, expected 200.`,
|
|
260
|
+
remedy: "The authorize flow reached /login but the page did not render. File a rail bug.",
|
|
261
|
+
},
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
const token = antiforgeryToken(response.body ?? "");
|
|
265
|
+
if (!token) {
|
|
266
|
+
return {
|
|
267
|
+
ok: false,
|
|
268
|
+
check: {
|
|
269
|
+
name: "google challenge",
|
|
270
|
+
pass: false,
|
|
271
|
+
detail: "Login page had no __RequestVerificationToken; cannot POST the Google challenge.",
|
|
272
|
+
remedy: "File this against the rail.",
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
return { ok: true, token, cookies: cookieHeader(response.headers) };
|
|
277
|
+
}
|
|
278
|
+
async function postGoogleChallenge(base, loginPath, login) {
|
|
279
|
+
const returnUrl = new URL(loginPath, `${base}/`).searchParams.get("returnUrl") ?? "";
|
|
280
|
+
const form = new URLSearchParams();
|
|
281
|
+
form.set("__RequestVerificationToken", login.token);
|
|
282
|
+
if (returnUrl) {
|
|
283
|
+
form.set("returnUrl", returnUrl);
|
|
284
|
+
}
|
|
285
|
+
const headers = {
|
|
286
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
287
|
+
};
|
|
288
|
+
if (login.cookies) {
|
|
289
|
+
headers.cookie = login.cookies;
|
|
290
|
+
}
|
|
291
|
+
const response = await fetchOrNull(`${base}${loginPath}`, {
|
|
292
|
+
method: "POST",
|
|
293
|
+
headers,
|
|
294
|
+
body: form.toString(),
|
|
295
|
+
redirect: "manual",
|
|
296
|
+
});
|
|
297
|
+
const location = response.location ?? "";
|
|
298
|
+
if (response.status !== 302 || !location) {
|
|
299
|
+
return {
|
|
300
|
+
ok: false,
|
|
301
|
+
check: {
|
|
302
|
+
name: "google challenge",
|
|
303
|
+
pass: false,
|
|
304
|
+
detail: `POST /login returned ${response.status ?? response.error}, expected a 302 to ${googleHost}.`,
|
|
305
|
+
remedy: "Google sign-in is not configured, or the login POST did not issue a ChallengeResult. " +
|
|
306
|
+
"This is a rail configuration problem, not a Google Console gap.",
|
|
307
|
+
},
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
let googleUrl;
|
|
311
|
+
try {
|
|
312
|
+
googleUrl = new URL(location, `${base}/`);
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
return {
|
|
316
|
+
ok: false,
|
|
317
|
+
check: {
|
|
318
|
+
name: "google challenge",
|
|
319
|
+
pass: false,
|
|
320
|
+
detail: `POST /login redirected to an unparseable Location: '${location}'.`,
|
|
321
|
+
remedy: "File this against the rail.",
|
|
322
|
+
},
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
if (googleUrl.hostname !== googleHost) {
|
|
326
|
+
return {
|
|
327
|
+
ok: false,
|
|
328
|
+
check: {
|
|
329
|
+
name: "google challenge",
|
|
330
|
+
pass: false,
|
|
331
|
+
detail: `POST /login redirected to ${googleUrl.host}, expected ${googleHost}.`,
|
|
332
|
+
remedy: "The login challenge did not send the browser to Google. Google sign-in is not " +
|
|
333
|
+
"configured, or a proxy intercepted the challenge.",
|
|
334
|
+
},
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
const redirectUri = googleUrl.searchParams.get("redirect_uri") ?? "";
|
|
338
|
+
if (!redirectUri) {
|
|
339
|
+
return {
|
|
340
|
+
ok: false,
|
|
341
|
+
check: {
|
|
342
|
+
name: "google challenge",
|
|
343
|
+
pass: false,
|
|
344
|
+
detail: `Google authorize URL has no redirect_uri. Location=${location.slice(0, 200)}`,
|
|
345
|
+
remedy: "File this against the rail.",
|
|
346
|
+
},
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
return { ok: true, googleUrl, redirectUri };
|
|
350
|
+
}
|
|
351
|
+
async function askGoogle(googleUrl, redirectUri) {
|
|
352
|
+
const response = await fetchOrNull(googleUrl.href, { redirect: "manual" });
|
|
353
|
+
if (!response.ok && response.error) {
|
|
354
|
+
return {
|
|
355
|
+
name: "google redirect_uri registered",
|
|
356
|
+
pass: false,
|
|
357
|
+
detail: `Could not reach ${googleHost}: ${response.error}. Did not prove the URI is registered.`,
|
|
358
|
+
remedy: `This check has to ask Google. Retry from a network that can reach ${googleHost}. ` +
|
|
359
|
+
`The URI to register is ${redirectUri}.`,
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
if (googleRedirectUriRejected(response.location, response.body)) {
|
|
363
|
+
return {
|
|
364
|
+
name: "google redirect_uri registered",
|
|
365
|
+
pass: false,
|
|
366
|
+
detail: `Google rejected redirect_uri=${redirectUri} (redirect_uri_mismatch). ` +
|
|
367
|
+
`Google returned ${response.status} to ${response.location ?? "(no Location)"}.`,
|
|
368
|
+
remedy: `Paste this exact URI into the Google Cloud OAuth client's Authorized redirect URIs: ${redirectUri}`,
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
if (googleRedirectUriAccepted(response.location)) {
|
|
372
|
+
return {
|
|
373
|
+
name: "google redirect_uri registered",
|
|
374
|
+
pass: true,
|
|
375
|
+
detail: `Google accepted redirect_uri=${redirectUri} (302 to the identifier/consent flow). ` +
|
|
376
|
+
"Does not prove a human can finish sign-in, only that this URI is on the client.",
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
return {
|
|
380
|
+
name: "google redirect_uri registered",
|
|
381
|
+
pass: false,
|
|
382
|
+
detail: `Google returned ${response.status} ` +
|
|
383
|
+
`${response.location ? `Location=${response.location} ` : ""}` +
|
|
384
|
+
"with neither an identifier/consent redirect nor redirect_uri_mismatch. " +
|
|
385
|
+
"Not treating this as registered.",
|
|
386
|
+
remedy: `Retry. If this persists, paste ${redirectUri} into the Google Cloud Console and re-run.`,
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
/** OAuth error code, not UI copy — present in the URL even when the HTML is localized. */
|
|
390
|
+
export function googleRedirectUriRejected(location, body) {
|
|
391
|
+
const haystack = `${location ?? ""}\n${body ?? ""}`;
|
|
392
|
+
if (/redirect_uri_mismatch/i.test(haystack)) {
|
|
393
|
+
return true;
|
|
394
|
+
}
|
|
395
|
+
if (!location) {
|
|
396
|
+
return false;
|
|
397
|
+
}
|
|
398
|
+
try {
|
|
399
|
+
const url = new URL(location, `https://${googleHost}/`);
|
|
400
|
+
if (url.pathname.includes("/signin/oauth/error")) {
|
|
401
|
+
return true;
|
|
402
|
+
}
|
|
403
|
+
const authError = url.searchParams.get("authError") ?? "";
|
|
404
|
+
return authError.length > 0 && /redirect_uri_mismatch/i.test(decodeAuthError(authError));
|
|
405
|
+
}
|
|
406
|
+
catch {
|
|
407
|
+
return false;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
export function googleRedirectUriAccepted(location) {
|
|
411
|
+
if (!location) {
|
|
412
|
+
return false;
|
|
413
|
+
}
|
|
414
|
+
try {
|
|
415
|
+
const url = new URL(location, `https://${googleHost}/`);
|
|
416
|
+
if (url.pathname.includes("/signin/oauth/error")) {
|
|
417
|
+
return false;
|
|
418
|
+
}
|
|
419
|
+
return (/\/v3\/signin\/identifier$/i.test(url.pathname) ||
|
|
420
|
+
/\/signin\/identifier$/i.test(url.pathname) ||
|
|
421
|
+
/\/signin\/oauth\/legacy\/consent$/i.test(url.pathname) ||
|
|
422
|
+
/\/signin\/oauth\/consent$/i.test(url.pathname));
|
|
423
|
+
}
|
|
424
|
+
catch {
|
|
425
|
+
return false;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
export function sameCallbackUri(emitted, expected) {
|
|
429
|
+
try {
|
|
430
|
+
const a = new URL(emitted);
|
|
431
|
+
const b = new URL(expected);
|
|
432
|
+
return a.protocol === b.protocol && a.host === b.host && normalizePath(a.pathname) === normalizePath(b.pathname);
|
|
433
|
+
}
|
|
434
|
+
catch {
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
function normalizePath(path) {
|
|
439
|
+
return path.length > 1 && path.endsWith("/") ? path.slice(0, -1) : path;
|
|
440
|
+
}
|
|
441
|
+
function antiforgeryToken(html) {
|
|
442
|
+
const named = html.match(/name="__RequestVerificationToken"[^>]*value="([^"]+)"/);
|
|
443
|
+
if (named?.[1]) {
|
|
444
|
+
return named[1];
|
|
445
|
+
}
|
|
446
|
+
const valued = html.match(/value="([^"]+)"[^>]*name="__RequestVerificationToken"/);
|
|
447
|
+
return valued?.[1];
|
|
448
|
+
}
|
|
449
|
+
function cookieHeader(headers) {
|
|
450
|
+
if (!headers || typeof headers.getSetCookie !== "function") {
|
|
451
|
+
return "";
|
|
452
|
+
}
|
|
453
|
+
const jar = new Map();
|
|
454
|
+
for (const line of headers.getSetCookie()) {
|
|
455
|
+
const pair = line.split(";")[0] ?? "";
|
|
456
|
+
const eq = pair.indexOf("=");
|
|
457
|
+
if (eq > 0) {
|
|
458
|
+
jar.set(pair.slice(0, eq).trim(), pair.slice(eq + 1));
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
return [...jar.entries()].map(([name, value]) => `${name}=${value}`).join("; ");
|
|
462
|
+
}
|
|
463
|
+
function decodeAuthError(value) {
|
|
464
|
+
try {
|
|
465
|
+
const padded = value.replace(/-/g, "+").replace(/_/g, "/");
|
|
466
|
+
return Buffer.from(padded, "base64").toString("utf8");
|
|
467
|
+
}
|
|
468
|
+
catch {
|
|
469
|
+
return "";
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
function pkceS256Challenge() {
|
|
473
|
+
const verifier = base64Url(randomBytes(32));
|
|
474
|
+
return base64Url(createHash("sha256").update(verifier).digest());
|
|
475
|
+
}
|
|
476
|
+
function base64Url(bytes) {
|
|
477
|
+
return bytes.toString("base64").replace(/=+$/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
478
|
+
}
|
|
479
|
+
//# sourceMappingURL=google-redirect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-redirect.js","sourceRoot":"","sources":["../src/google-redirect.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -2,7 +2,8 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { requireAdminKey, requireIssuer } from "../config.js";
|
|
5
|
-
import {
|
|
5
|
+
import { runDoctorAndConnect } from "../client-conformance.js";
|
|
6
|
+
import { formatDoctorReport } from "../doctor.js";
|
|
6
7
|
import { buildIntegrationPlan, integrationFrameworks, isIntegrationFramework, } from "../integration.js";
|
|
7
8
|
import { describePending, getResource, listResources, mintDevHeader, probeConformance, registerResource, rotateOriginKey, setConnectedAccount, setOrigin, signupTenant, startConnect, } from "../rail.js";
|
|
8
9
|
import { secretTargets, writeAdminApiKey, writeOriginApiKey } from "../secrets.js";
|
|
@@ -109,19 +110,37 @@ export function createOnboardingServer() {
|
|
|
109
110
|
server.registerTool("authflow_doctor", {
|
|
110
111
|
title: "Check the Authflow rail is reachable and correctly configured",
|
|
111
112
|
description: "Preflight a rail deployment: issuer reachable, Origin Protocol keys document served and " +
|
|
112
|
-
"self-consistent, and (with a slug) the resource's PRM
|
|
113
|
-
"
|
|
114
|
-
"
|
|
113
|
+
"self-consistent, consumer pages that must not 500, and (with a slug) the resource's PRM " +
|
|
114
|
+
"document and gateway 401 challenge. With client and slug (and not dry_run) also drive " +
|
|
115
|
+
"authorize through login and ask Google whether the rail's /signin-google redirect_uri is " +
|
|
116
|
+
"registered. Run this first, and run it again whenever something looks broken — it " +
|
|
117
|
+
"distinguishes a misconfigured hostname from an actual rail outage, which look identical " +
|
|
118
|
+
"from the outside. Without client the tool performs no writes. With client and without " +
|
|
119
|
+
"dry_run it creates OAuth client registrations on the rail (stamped authflow-cli " +
|
|
120
|
+
"doctor-connect). dry_run is discovery only.",
|
|
115
121
|
inputSchema: {
|
|
116
122
|
issuer: issuerArg,
|
|
117
123
|
slug: z
|
|
118
124
|
.string()
|
|
119
125
|
.optional()
|
|
120
126
|
.describe("Resource slug. Adds PRM and gateway-challenge checks for that resource."),
|
|
127
|
+
client: z
|
|
128
|
+
.enum(["cursor", "claude", "chatgpt", "all"])
|
|
129
|
+
.optional()
|
|
130
|
+
.describe("Replay this MCP client's OAuth registration (cursor, claude, chatgpt, or all). " +
|
|
131
|
+
"POSTs DCR unless dry_run is true."),
|
|
132
|
+
dry_run: z
|
|
133
|
+
.boolean()
|
|
134
|
+
.optional()
|
|
135
|
+
.describe("With client: discovery only, do not POST DCR registrations."),
|
|
121
136
|
},
|
|
122
|
-
annotations: { readOnlyHint:
|
|
123
|
-
}, async ({ issuer, slug }) => attempt(async () => {
|
|
124
|
-
const report = await
|
|
137
|
+
annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true },
|
|
138
|
+
}, async ({ issuer, slug, client, dry_run }) => attempt(async () => {
|
|
139
|
+
const report = await runDoctorAndConnect(requireIssuer(issuer), {
|
|
140
|
+
slug,
|
|
141
|
+
client,
|
|
142
|
+
dryRun: dry_run,
|
|
143
|
+
});
|
|
125
144
|
return ok(`${formatDoctorReport(report)}\n\n${JSON.stringify(report, null, 2)}`);
|
|
126
145
|
}));
|
|
127
146
|
server.registerTool("authflow_register_resource", {
|
|
@@ -281,8 +300,10 @@ export function createOnboardingServer() {
|
|
|
281
300
|
description: "Return a Stripe-hosted onboarding URL for the creator to open in a browser and complete " +
|
|
282
301
|
"KYC. Give them the URL — do not attempt to fill the form. Account links are single-use and " +
|
|
283
302
|
"expire in minutes, so call this again for a fresh link; it resumes the same Stripe account " +
|
|
284
|
-
"rather than creating another.
|
|
285
|
-
"
|
|
303
|
+
"rather than creating another. If the stored account is not visible to this platform (wrong " +
|
|
304
|
+
"mode, never connected, access revoked), a new Standard account is created instead of failing " +
|
|
305
|
+
"forever. Call it again after they finish to confirm charges_enabled and promote the " +
|
|
306
|
+
"resource. onboarding_url is null once there is nothing left to do.",
|
|
286
307
|
inputSchema: {
|
|
287
308
|
slug: z.string(),
|
|
288
309
|
email: z.string().optional().describe("Pre-fills the Stripe form. Optional."),
|
|
@@ -327,8 +348,10 @@ export function createOnboardingServer() {
|
|
|
327
348
|
server.registerTool("authflow_probe", {
|
|
328
349
|
title: "Verify the origin fails closed before it takes paid traffic",
|
|
329
350
|
description: "The rail posts valid and deliberately broken identity headers at the origin's /mcp path " +
|
|
330
|
-
"and reports pass/fail per spec §6.2.
|
|
331
|
-
"
|
|
351
|
+
"and reports pass/fail per spec §6.2. It also preflights the Stripe connected account so a " +
|
|
352
|
+
"Subscribe click cannot be the first time the rail discovers the account is on the wrong " +
|
|
353
|
+
"platform or mode. A failure means the origin would serve MCP to unauthenticated callers — a " +
|
|
354
|
+
"paywall bypass — or that Checkout cannot complete. Do not cut over on a failing probe. " +
|
|
332
355
|
"Authenticates with the origin API key, which is bound to one resource.",
|
|
333
356
|
inputSchema: {
|
|
334
357
|
origin_api_key: z
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|