@frontmcp/auth 1.8.3 → 1.8.5

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.
@@ -23,8 +23,9 @@ export declare class AuthoritiesEngine {
23
23
  private readonly ruleProblems;
24
24
  constructor(profiles: AuthoritiesProfileRegistry, evaluators: AuthoritiesEvaluatorRegistry);
25
25
  /**
26
- * Problems with an `authorities` value declared on an entry (see {@link findAuthoritiesRuleProblems}).
27
- * The server reports them when it starts; {@link evaluate} denies such a value.
26
+ * Problems with an `authorities` value declared on an entry (see {@link findAuthoritiesRuleProblems}),
27
+ * and each profile name it uses that no registered profile has. The server reports them when it
28
+ * starts; {@link evaluate} denies such a value (an unknown profile as `profile '…' is not registered`).
28
29
  */
29
30
  findRuleProblems(authorities: unknown): string[];
30
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"authorities.engine.d.ts","sourceRoot":"","sources":["../../src/authorities/authorities.engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACvG,OAAO,KAAK,EACV,4BAA4B,EAC5B,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AA0B7B;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;gBAG7C,QAAQ,EAAE,0BAA0B,EACpC,UAAU,EAAE,4BAA4B;IAG3D;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,EAAE;IAIhD;;;OAGG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAM/B;;;;OAIG;IACG,QAAQ,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkB/G;;OAEG;YACW,eAAe;IAyB7B,yEAAyE;IACzE,OAAO,CAAC,UAAU;IAUlB;;OAEG;YACW,oBAAoB;IAclC;;OAEG;YACW,cAAc;IA+C5B;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;YACW,cAAc;IA2B5B;;;;OAIG;YACW,cAAc;IAyB5B;;OAEG;YACW,aAAa;IAiB3B;;OAEG;YACW,aAAa;IAwB3B;;OAEG;YACW,WAAW;IAczB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;CAGpE"}
1
+ {"version":3,"file":"authorities.engine.d.ts","sourceRoot":"","sources":["../../src/authorities/authorities.engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACvG,OAAO,KAAK,EACV,4BAA4B,EAC5B,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AA0B7B;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;gBAG7C,QAAQ,EAAE,0BAA0B,EACpC,UAAU,EAAE,4BAA4B;IAG3D;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,EAAE;IAShD;;;OAGG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAM/B;;;;OAIG;IACG,QAAQ,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkB/G;;OAEG;YACW,eAAe;IAyB7B,yEAAyE;IACzE,OAAO,CAAC,UAAU;IAUlB;;OAEG;YACW,oBAAoB;IAclC;;OAEG;YACW,cAAc;IA+C5B;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;YACW,cAAc;IA2B5B;;;;OAIG;YACW,cAAc;IAyB5B;;OAEG;YACW,aAAa;IAiB3B;;OAEG;YACW,aAAa;IAwB3B;;OAEG;YACW,WAAW;IAczB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;CAGpE"}
package/esm/index.mjs CHANGED
@@ -619,6 +619,12 @@ var TRANSPARENT_JWT_ALGS = [
619
619
  ];
620
620
  var MAX_JWKS_FETCH_BYTES = 1048576;
621
621
  var MAX_JWKS_FETCH_HOPS = 3;
622
+ var MISSING_EXP_ERROR = 'missing required "exp" claim';
623
+ function isMissingExpError(error) {
624
+ if (typeof error !== "object" || error === null) return false;
625
+ const { code, claim, reason } = error;
626
+ return code === "ERR_JWT_CLAIM_VALIDATION_FAILED" && claim === "exp" && reason === "missing";
627
+ }
622
628
  var WEAK_KEY_WARNING = `
623
629
  \u26A0\uFE0F SECURITY WARNING: OAuth provider is using an RSA key smaller than 2048 bits.
624
630
  This is considered insecure and should be updated.
@@ -688,6 +694,7 @@ var JwksService = class {
688
694
  kid = typeof header?.kid === "string" ? header.kid : void 0;
689
695
  } catch {
690
696
  }
697
+ let missingExp = false;
691
698
  for (const p of candidates) {
692
699
  let jwks;
693
700
  try {
@@ -719,11 +726,14 @@ var JwksService = class {
719
726
  if (fallbackResult.ok) {
720
727
  return fallbackResult;
721
728
  }
729
+ if (fallbackResult.error === "missing_exp") missingExp = true;
722
730
  }
723
731
  }
732
+ if (isMissingExpError(e)) missingExp = true;
724
733
  this.logger.debug("[JwksService] Failed to verify token for provider: %s", p.id, e);
725
734
  }
726
735
  }
736
+ if (missingExp) return { ok: false, error: MISSING_EXP_ERROR };
727
737
  return { ok: false, error: `no_provider_verified${kid ? ` (kid=${kid})` : ""}` };
728
738
  }
729
739
  /**
@@ -856,7 +866,10 @@ var JwksService = class {
856
866
  * 1) inline jwks (if provided) → cache & return
857
867
  * 2) cached & fresh (TTL) → return
858
868
  * 3) explicit jwksUri → fetch, cache, return
859
- * 4) discover jwks_uri via AS → fetch AS metadata, then jwks_uri, cache, return
869
+ * 4) discover jwks_uri → the issuer's OAuth authorization server
870
+ * metadata (RFC 8414), else its OpenID configuration (OpenID Connect
871
+ * Discovery 1.0 §4, where Google, Okta, Auth0 and Entra publish it),
872
+ * then fetch jwks_uri, cache, return
860
873
  */
861
874
  async getJwksForProvider(ref) {
862
875
  if (ref.jwks?.keys?.length) {
@@ -872,11 +885,13 @@ var JwksService = class {
872
885
  if (fromUri?.keys?.length) return fromUri;
873
886
  }
874
887
  const issuer = trimSlash(ref.issuerUrl);
875
- const meta = await this.tryFetchAsMeta(`${issuer}/.well-known/oauth-authorization-server`);
876
- const uri = meta && typeof meta === "object" && meta["jwks_uri"] ? String(meta["jwks_uri"]) : void 0;
877
- if (uri) {
878
- const fromMeta = await this.tryFetchJwks(ref.id, uri);
879
- if (fromMeta?.keys?.length) return fromMeta;
888
+ for (const document of ["oauth-authorization-server", "openid-configuration"]) {
889
+ const meta = await this.tryFetchAsMeta(`${issuer}/.well-known/${document}`);
890
+ const uri = meta && typeof meta === "object" && meta["jwks_uri"] ? String(meta["jwks_uri"]) : void 0;
891
+ if (uri) {
892
+ const fromMeta = await this.tryFetchJwks(ref.id, uri);
893
+ if (fromMeta?.keys?.length) return fromMeta;
894
+ }
880
895
  }
881
896
  const maxStaleMs = Math.max(this.opts.providerJwksTtlMs * 4, 6e4);
882
897
  if (cached && Date.now() - cached.fetchedAt < maxStaleMs) {
@@ -3927,6 +3942,15 @@ function deriveTypedUser(claims) {
3927
3942
  picture: extractClaimValue(claims, "picture", isString)
3928
3943
  };
3929
3944
  }
3945
+ function anonymousCallerClaims(options, anonymousId) {
3946
+ const { issuer, scopes = ["anonymous"], subject } = options;
3947
+ return {
3948
+ sub: subject ?? `anon:${anonymousId}`,
3949
+ iss: issuer,
3950
+ name: subject ? "Static token" : "Anonymous",
3951
+ scope: scopes.join(" ")
3952
+ };
3953
+ }
3930
3954
  function extractBearerToken(header) {
3931
3955
  if (!header) return void 0;
3932
3956
  const m = header.match(/^\s*Bearer\s+(\S+)\s*$/i);
@@ -9048,6 +9072,19 @@ function grantScopes(requested, allowed) {
9048
9072
  }
9049
9073
  return granted;
9050
9074
  }
9075
+ function advertisedScopes(allowed) {
9076
+ const scopes = [];
9077
+ for (const scope of allowed ?? DEFAULT_ALLOWED_SCOPES) {
9078
+ if (scope && !scope.includes("*") && !scopes.includes(scope)) scopes.push(scope);
9079
+ }
9080
+ return scopes;
9081
+ }
9082
+ function resourceScopesFor(options) {
9083
+ const mode = options?.mode ?? "public";
9084
+ if (mode === "local" || mode === "remote") return advertisedScopes(options?.allowedScopes);
9085
+ const listed = mode === "public" ? options?.anonymousScopes ?? ["anonymous"] : mode === "static" ? options?.scopes ?? ["static"] : mode === "transparent" ? [...options?.requiredScopes ?? [], ...options?.scopes ?? []] : [];
9086
+ return advertisedScopes(listed);
9087
+ }
9051
9088
 
9052
9089
  // libs/auth/src/utils/redirect-uri.utils.ts
9053
9090
  function isLoopbackRedirectUri(uri) {
@@ -10864,11 +10901,15 @@ var AuthoritiesEngine = class {
10864
10901
  /** Problems found per rule object, so a rule is validated once however often it is evaluated. */
10865
10902
  ruleProblems = /* @__PURE__ */ new WeakMap();
10866
10903
  /**
10867
- * Problems with an `authorities` value declared on an entry (see {@link findAuthoritiesRuleProblems}).
10868
- * The server reports them when it starts; {@link evaluate} denies such a value.
10904
+ * Problems with an `authorities` value declared on an entry (see {@link findAuthoritiesRuleProblems}),
10905
+ * and each profile name it uses that no registered profile has. The server reports them when it
10906
+ * starts; {@link evaluate} denies such a value (an unknown profile as `profile '…' is not registered`).
10869
10907
  */
10870
10908
  findRuleProblems(authorities) {
10871
- return findAuthoritiesRuleProblems(authorities);
10909
+ const problems = findAuthoritiesRuleProblems(authorities);
10910
+ if (problems.length > 0) return problems;
10911
+ const names = typeof authorities === "string" ? [authorities] : Array.isArray(authorities) ? authorities : [];
10912
+ return names.filter((name) => typeof name === "string" && !this.profiles.has(name)).map((name) => `names an unknown profile "${name}"`);
10872
10913
  }
10873
10914
  /**
10874
10915
  * Problems with every registered profile's rule (see {@link findAuthoritiesRuleProblems}).
@@ -11429,8 +11470,10 @@ export {
11429
11470
  abacConditionSchema,
11430
11471
  abacOperatorSchema,
11431
11472
  abacPolicySchema,
11473
+ advertisedScopes,
11432
11474
  aiPlatformTypeSchema,
11433
11475
  allowsPublicAccess,
11476
+ anonymousCallerClaims,
11434
11477
  apiKeyCredentialSchema,
11435
11478
  appAuthOptionsSchema,
11436
11479
  appAuthStateSchema,
@@ -11610,6 +11653,7 @@ export {
11610
11653
  resetCachedKey,
11611
11654
  resolveRequiredScopes,
11612
11655
  resourceIdRefSchema,
11656
+ resourceScopesFor,
11613
11657
  safeDecrypt,
11614
11658
  sealPendingLogin,
11615
11659
  secureStoreConfigSchema,
package/esm/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/auth",
3
- "version": "1.8.3",
3
+ "version": "1.8.5",
4
4
  "description": "FrontMCP Auth - Authentication, session management, and credential vault",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "homepage": "https://docs.agentfront.dev",
@@ -47,8 +47,8 @@
47
47
  "node": ">=24.0.0"
48
48
  },
49
49
  "peerDependencies": {
50
- "@frontmcp/lazy-zod": "1.8.3",
51
- "@frontmcp/storage-sqlite": "1.8.3",
50
+ "@frontmcp/lazy-zod": "1.8.5",
51
+ "@frontmcp/storage-sqlite": "1.8.5",
52
52
  "@vercel/kv": "^3.0.0",
53
53
  "ioredis": "^5.0.0"
54
54
  },
@@ -64,8 +64,8 @@
64
64
  }
65
65
  },
66
66
  "dependencies": {
67
- "@frontmcp/di": "1.8.3",
68
- "@frontmcp/utils": "1.8.3",
67
+ "@frontmcp/di": "1.8.5",
68
+ "@frontmcp/utils": "1.8.5",
69
69
  "jose": "^6.0.0"
70
70
  },
71
71
  "devDependencies": {
package/index.d.ts CHANGED
@@ -34,8 +34,8 @@ export { JwksService, trimSlash, normalizeIssuer, decodeJwtPayloadSafe } from '.
34
34
  export type { JwksServiceOptions, ProviderVerifyRef, VerifyResult } from './jwks';
35
35
  export { CDN, DEFAULT_THEME, baseLayout, createLayout, authLayout, centeredCardLayout, wideLayout, extraWideLayout, escapeHtml, BUILT_IN_AUTH_PAGE_CSP, builtInAuthPageHeaders, buildConsentPage, buildIncrementalAuthPage, buildFederatedLoginPage, buildToolConsentPage, buildLoginPage, buildConnectPage, buildConnectSuccessPage, buildErrorPage, renderToHtml, renderLocalLoginPage, toLoginExtraFields, withoutSecretFieldValues, } from './ui';
36
36
  export type { ThemeColors, ThemeFonts, ThemeConfig, BaseLayoutOptions, AppAuthCard, ProviderCard, ToolCard, LoginExtraField, ConsentHiddenField, } from './ui';
37
- export { InMemoryAuthorizationStore, RedisAuthorizationStore, StorageAuthorizationStore, sealPendingLogin, openPendingLogin, SIGNIN_BINDING_COOKIE_PREFIX, SIGNIN_BINDING_SECURE_COOKIE_PREFIX, SIGNIN_BINDING_MAX_AGE_SECONDS, createSigninBinding, signinBindingCookieName, signinBindingMatches, verifyPkce, generatePkceChallenge, generateAuthorizationCode, generateRefreshTokenValue, buildCodeRecord, buildPendingRecord, buildRefreshTokenRecord, pkceChallengeSchema, authorizationCodeRecordSchema, credentialTypeSchema, oauthCredentialSchema, apiKeyCredentialSchema, basicAuthCredentialSchema, bearerCredentialSchema, privateKeyCredentialSchema, mtlsCredentialSchema, customCredentialSchema, sshKeyCredentialSchema, serviceAccountCredentialSchema, pkceOAuthCredentialSchema, credentialSchema, appCredentialSchema, vaultConsentRecordSchema, vaultFederatedRecordSchema, pendingIncrementalAuthSchema, authorizationVaultEntrySchema, InMemoryAuthorizationVault, StorageAuthorizationVault, EncryptedTypedStorage, EncryptedStorageError, encryptedDataSchema, encryptedVaultEntrySchema, VaultEncryption, TokenVault, StorageTokenStore, TypedStorage, hkdfSha256, encryptValue, decryptValue, encryptAesGcm, decryptAesGcm, TinyTtlCache, transportProtocolSchema, sseTransportStateSchema, streamableHttpTransportStateSchema, statefulHttpTransportStateSchema, statelessHttpTransportStateSchema, legacySseTransportStateSchema, transportStateSchema, transportSessionSchema, sessionJwtPayloadSchema, encryptedBlobSchema, storedSessionSchema, redisConfigSchema, signSession, verifySession, isSignedSession, verifyOrParseSession, SessionRateLimiter, defaultSessionRateLimiter, TransportIdGenerator, isJwt, getTokenSignatureFingerprint, deriveTypedUser, extractBearerToken, getKey, encryptJson, decryptSessionJson, safeDecrypt, resetCachedKey, RedisSessionStore, VercelKvSessionStore, InMemoryOrchestratedTokenStore, StorageOrchestratedTokenStore, InMemoryFederatedAuthSessionStore, StorageFederatedAuthSessionStore, toSessionRecord, fromSessionRecord, createFederatedAuthSession, isSessionComplete, getNextProvider, completeCurrentProvider, startNextProvider, InMemoryConsentStore, StorageConsentStore, consentRecordKey, createTokenStorageAdapter, isRedisTokenStorage, isSqliteTokenStorage, isPersistentTokenStorage, redisVaultEntrySchema, EncryptedRedisVault, createEncryptedVault, toEpochSeconds, isSoonExpiring, isSoonExpiringProvider, tryJwtExp, SessionCredentialVault, createSessionCredentialVault, signCredentialResumeToken, verifyCredentialResumeToken, buildCredentialResumeUrl, DEFAULT_RESUME_TTL_MS, signIncrementalAuthTicket, verifyIncrementalAuthTicket, DEFAULT_INCREMENTAL_TICKET_TTL_MS, CREDENTIALS_ACCESSOR, CredentialsAccessorImpl, EncryptedStorageSecureStoreBackend, SECURE_STORE_ACCESSOR, SecureStoreAccessorImpl, createSecureStore, } from './session';
38
- export type { AuthorizationStore, PkceChallenge, AuthorizationCodeRecord, PendingAuthorizationRecord, PendingLoginState, SigninBinding, SigninBindingCookieOptions, RefreshTokenRecord, ConsentStateRecord, FederatedLoginStateRecord, CreateCodeRecordParams, CreatePendingRecordParams, CreateRefreshTokenRecordParams, StorageAuthorizationStoreOptions, CredentialType, OAuthCredential, ApiKeyCredential, BasicAuthCredential, BearerCredential, PrivateKeyCredential, MtlsCredential, CustomCredential, SshKeyCredential, ServiceAccountCredential, PkceOAuthCredential, Credential, AppCredential, VaultConsentRecord, VaultFederatedRecord, PendingIncrementalAuth, AuthorizationVaultEntry, AuthorizationVault, InMemoryAuthorizationVaultOptions, EncryptedData, VaultKeyDerivationClaims, VaultEncryptionConfig, EncryptedVaultEntry, VaultSensitiveData, EncBlob, VaultKey, SecretRecord, TokenStore, TypedStorageOptions, TypedSetOptions, TypedSetEntry, EncryptedTypedStorageOptions, EncryptedSetOptions, EncryptedSetEntry, EncryptionKey, StoredEncryptedBlob, ClientKeyBinding, StorageTokenStoreOptions, StorageAuthorizationVaultOptions, EncryptedBlob, TransportProtocol, SessionStorageMode, TransportSession, TransportState, SseTransportState, StreamableHttpTransportState, StatefulHttpTransportState, StatelessHttpTransportState, LegacySseTransportState, SessionJwtPayload, StatelessSessionJwtPayload, StoredSession, TransportEncryptedBlob, SessionStore, SessionStorageConfig, RedisConfig, SessionSecurityConfig, SessionMode, ProviderEmbedMode, SessionEncBlob, ProviderSnapshot, CreateSessionArgs, SignedSession, SessionSigningConfig, SessionRateLimiterConfig, RateLimitResult, RedisSessionStoreConfig, VercelKvSessionConfig, InMemoryOrchestratedTokenStoreOptions, StorageOrchestratedTokenStoreOptions, StorageFederatedAuthSessionStoreOptions, ProviderPkce, ProviderTokens, ProviderUserInfo, CompletedProvider, FederatedAuthSession, FederatedAuthSessionRecord, FederatedAuthSessionStore, FederatedAuthSessionCreateParams, ConsentStore, RememberedConsentRecord, StorageConsentStoreOptions, RedisVaultEntry, EncryptionContext, TokenRefreshCtx, TokenRefreshResult, TokenRefresher, StoredCredential, SessionCredentialVaultOptions, CreateSessionCredentialVaultOptions, CredentialResumePayload, IncrementalAuthTicketPayload, CredentialsAccessor, CredentialValue, CredentialNotConnected, CredentialConnected, RequireConnectResult, RequireConnectOptions, CredentialsAccessorDeps, SecureStoreBackend, SecureStoreScope, SecureStoreScopeRef, EncryptedStorageSecureStoreBackendOptions, SecureStoreAccessor, SecureStoreSetOptions, SecureStoreAccessorDeps, CreateSecureStoreOptions, ResolvedSecureStore, SecureStoreBackendKind, } from './session';
37
+ export { InMemoryAuthorizationStore, RedisAuthorizationStore, StorageAuthorizationStore, sealPendingLogin, openPendingLogin, SIGNIN_BINDING_COOKIE_PREFIX, SIGNIN_BINDING_SECURE_COOKIE_PREFIX, SIGNIN_BINDING_MAX_AGE_SECONDS, createSigninBinding, signinBindingCookieName, signinBindingMatches, verifyPkce, generatePkceChallenge, generateAuthorizationCode, generateRefreshTokenValue, buildCodeRecord, buildPendingRecord, buildRefreshTokenRecord, pkceChallengeSchema, authorizationCodeRecordSchema, credentialTypeSchema, oauthCredentialSchema, apiKeyCredentialSchema, basicAuthCredentialSchema, bearerCredentialSchema, privateKeyCredentialSchema, mtlsCredentialSchema, customCredentialSchema, sshKeyCredentialSchema, serviceAccountCredentialSchema, pkceOAuthCredentialSchema, credentialSchema, appCredentialSchema, vaultConsentRecordSchema, vaultFederatedRecordSchema, pendingIncrementalAuthSchema, authorizationVaultEntrySchema, InMemoryAuthorizationVault, StorageAuthorizationVault, EncryptedTypedStorage, EncryptedStorageError, encryptedDataSchema, encryptedVaultEntrySchema, VaultEncryption, TokenVault, StorageTokenStore, TypedStorage, hkdfSha256, encryptValue, decryptValue, encryptAesGcm, decryptAesGcm, TinyTtlCache, transportProtocolSchema, sseTransportStateSchema, streamableHttpTransportStateSchema, statefulHttpTransportStateSchema, statelessHttpTransportStateSchema, legacySseTransportStateSchema, transportStateSchema, transportSessionSchema, sessionJwtPayloadSchema, encryptedBlobSchema, storedSessionSchema, redisConfigSchema, signSession, verifySession, isSignedSession, verifyOrParseSession, SessionRateLimiter, defaultSessionRateLimiter, TransportIdGenerator, isJwt, getTokenSignatureFingerprint, deriveTypedUser, anonymousCallerClaims, extractBearerToken, getKey, encryptJson, decryptSessionJson, safeDecrypt, resetCachedKey, RedisSessionStore, VercelKvSessionStore, InMemoryOrchestratedTokenStore, StorageOrchestratedTokenStore, InMemoryFederatedAuthSessionStore, StorageFederatedAuthSessionStore, toSessionRecord, fromSessionRecord, createFederatedAuthSession, isSessionComplete, getNextProvider, completeCurrentProvider, startNextProvider, InMemoryConsentStore, StorageConsentStore, consentRecordKey, createTokenStorageAdapter, isRedisTokenStorage, isSqliteTokenStorage, isPersistentTokenStorage, redisVaultEntrySchema, EncryptedRedisVault, createEncryptedVault, toEpochSeconds, isSoonExpiring, isSoonExpiringProvider, tryJwtExp, SessionCredentialVault, createSessionCredentialVault, signCredentialResumeToken, verifyCredentialResumeToken, buildCredentialResumeUrl, DEFAULT_RESUME_TTL_MS, signIncrementalAuthTicket, verifyIncrementalAuthTicket, DEFAULT_INCREMENTAL_TICKET_TTL_MS, CREDENTIALS_ACCESSOR, CredentialsAccessorImpl, EncryptedStorageSecureStoreBackend, SECURE_STORE_ACCESSOR, SecureStoreAccessorImpl, createSecureStore, } from './session';
38
+ export type { AnonymousCallerClaimsOptions, AuthorizationStore, PkceChallenge, AuthorizationCodeRecord, PendingAuthorizationRecord, PendingLoginState, SigninBinding, SigninBindingCookieOptions, RefreshTokenRecord, ConsentStateRecord, FederatedLoginStateRecord, CreateCodeRecordParams, CreatePendingRecordParams, CreateRefreshTokenRecordParams, StorageAuthorizationStoreOptions, CredentialType, OAuthCredential, ApiKeyCredential, BasicAuthCredential, BearerCredential, PrivateKeyCredential, MtlsCredential, CustomCredential, SshKeyCredential, ServiceAccountCredential, PkceOAuthCredential, Credential, AppCredential, VaultConsentRecord, VaultFederatedRecord, PendingIncrementalAuth, AuthorizationVaultEntry, AuthorizationVault, InMemoryAuthorizationVaultOptions, EncryptedData, VaultKeyDerivationClaims, VaultEncryptionConfig, EncryptedVaultEntry, VaultSensitiveData, EncBlob, VaultKey, SecretRecord, TokenStore, TypedStorageOptions, TypedSetOptions, TypedSetEntry, EncryptedTypedStorageOptions, EncryptedSetOptions, EncryptedSetEntry, EncryptionKey, StoredEncryptedBlob, ClientKeyBinding, StorageTokenStoreOptions, StorageAuthorizationVaultOptions, EncryptedBlob, TransportProtocol, SessionStorageMode, TransportSession, TransportState, SseTransportState, StreamableHttpTransportState, StatefulHttpTransportState, StatelessHttpTransportState, LegacySseTransportState, SessionJwtPayload, StatelessSessionJwtPayload, StoredSession, TransportEncryptedBlob, SessionStore, SessionStorageConfig, RedisConfig, SessionSecurityConfig, SessionMode, ProviderEmbedMode, SessionEncBlob, ProviderSnapshot, CreateSessionArgs, SignedSession, SessionSigningConfig, SessionRateLimiterConfig, RateLimitResult, RedisSessionStoreConfig, VercelKvSessionConfig, InMemoryOrchestratedTokenStoreOptions, StorageOrchestratedTokenStoreOptions, StorageFederatedAuthSessionStoreOptions, ProviderPkce, ProviderTokens, ProviderUserInfo, CompletedProvider, FederatedAuthSession, FederatedAuthSessionRecord, FederatedAuthSessionStore, FederatedAuthSessionCreateParams, ConsentStore, RememberedConsentRecord, StorageConsentStoreOptions, RedisVaultEntry, EncryptionContext, TokenRefreshCtx, TokenRefreshResult, TokenRefresher, StoredCredential, SessionCredentialVaultOptions, CreateSessionCredentialVaultOptions, CredentialResumePayload, IncrementalAuthTicketPayload, CredentialsAccessor, CredentialValue, CredentialNotConnected, CredentialConnected, RequireConnectResult, RequireConnectOptions, CredentialsAccessorDeps, SecureStoreBackend, SecureStoreScope, SecureStoreScopeRef, EncryptedStorageSecureStoreBackendOptions, SecureStoreAccessor, SecureStoreSetOptions, SecureStoreAccessorDeps, CreateSecureStoreOptions, ResolvedSecureStore, SecureStoreBackendKind, } from './session';
39
39
  export { type AuthMode, type AuthUser, type AuthorizedTool, type AuthorizedPrompt, type LLMSafeAuthContext, type AppAuthorizationRecord, type ProgressiveAuthState, type AuthorizationCreateCtx, type Authorization, AppAuthState, authModeSchema, authUserSchema, authorizedToolSchema, authorizedPromptSchema, llmSafeAuthContextSchema, appAuthStateSchema, appAuthorizationRecordSchema, progressiveAuthStateSchema, AuthorizationBase, PublicAuthorization, type PublicAuthorizationCreateCtx, TransparentAuthorization, type TransparentAuthorizationCreateCtx, type TransparentVerifiedPayload, OrchestratedAuthorization, type OrchestratedAuthorizationCreateCtx, type OrchestratedProviderState, type OrchestratedTokenStore, type TokenRefreshCallback, type OrchestratedAuthAccessor, OrchestratedAuthAccessorAdapter, NullOrchestratedAuthAccessor, ORCHESTRATED_AUTH_ACCESSOR, DcrClientRegistry, type RegisteredClient, type PreRegisteredClientInput, type DcrRegistryConfig, } from './authorization';
40
40
  export type { AuthLogger } from './common';
41
41
  export type { RawZodShape } from './common';
@@ -49,8 +49,8 @@ export * from './options';
49
49
  export { consentToolItemSchema, consentSelectionSchema, consentStateSchema, federatedProviderItemSchema, federatedLoginStateSchema, federatedSelectionSchema, } from './consent';
50
50
  export type { ConsentToolItem, ConsentSelection, ConsentState, FederatedProviderItem, FederatedLoginState, FederatedSelection, } from './consent';
51
51
  export * from './detection';
52
- export { buildWwwAuthenticate, buildPrmUrl, buildUnauthorizedHeader, buildInvalidTokenHeader, buildInsufficientScopeHeader, buildInvalidRequestHeader, parseWwwAuthenticate, validateAudience, createAudienceValidator, deriveExpectedAudience, AudienceValidator, deriveAuthorizationId, DEFAULT_ALLOWED_SCOPES, grantScopes, isLoopbackRedirectUri, } from './utils';
53
- export type { BearerErrorCode, WwwAuthenticateOptions, AudienceValidationResult, AudienceValidatorOptions, } from './utils';
52
+ export { buildWwwAuthenticate, buildPrmUrl, buildUnauthorizedHeader, buildInvalidTokenHeader, buildInsufficientScopeHeader, buildInvalidRequestHeader, parseWwwAuthenticate, validateAudience, createAudienceValidator, deriveExpectedAudience, AudienceValidator, deriveAuthorizationId, advertisedScopes, DEFAULT_ALLOWED_SCOPES, grantScopes, resourceScopesFor, isLoopbackRedirectUri, } from './utils';
53
+ export type { BearerErrorCode, ResourceScopeOptions, WwwAuthenticateOptions, AudienceValidationResult, AudienceValidatorOptions, } from './utils';
54
54
  export { type CredentialScope, type LoadingStrategy, type GetCredentialOptions, type ResolvedCredential, type CredentialFactoryContext, type CredentialFactory, type CredentialRefreshFn, type CredentialHeadersFn, type CredentialProviderConfig, type AuthProviderMapping, type CredentialCacheEntry, type VaultStorageKey, type AuthProvidersVaultOptions, type CredentialEventType, type CredentialEvent, type CacheStats, credentialScopeSchema, loadingStrategySchema, getCredentialOptionsSchema, credentialProviderConfigSchema, authProviderMappingSchema, authProvidersVaultOptionsSchema, extractCredentialExpiry, CredentialCache, type AuthProvidersAccessor, AUTH_PROVIDERS_ACCESSOR, AuthProvidersAccessorImpl, AuthProvidersRegistry, AUTH_PROVIDERS_REGISTRY, type NormalizedProviderConfig, AuthProvidersVault, AUTH_PROVIDERS_VAULT, EagerCredentialLoader, type EagerLoadResult, LazyCredentialLoader, } from './vault';
55
55
  export { type CimdLogger, noopLogger, clientMetadataDocumentSchema, cimdCacheConfigSchema, cimdSecurityConfigSchema, cimdNetworkConfigSchema, cimdConfigSchema, type ClientMetadataDocument, type ClientMetadataDocumentInput, type CimdCacheConfig, type CimdSecurityConfig, type CimdNetworkConfig, type CimdConfig, type CimdConfigInput, type CimdResolutionResult, CimdError, InvalidClientIdUrlError, CimdFetchError, CimdValidationError, CimdClientIdMismatchError, CimdSecurityError, RedirectUriMismatchError, CimdResponseTooLargeError, CimdDisabledError, isCimdClientId, validateClientIdUrl, checkSsrfProtection, hasOnlyLocalhostRedirectUris, InMemoryCimdCache, extractCacheHeaders, parseCacheHeaders, type CimdCacheEntry, type CacheableHeaders, CimdService, } from './cimd';
56
56
  export { FrontMcpAuthContextImpl, buildAuthContext } from './context';
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/index.js CHANGED
@@ -332,8 +332,10 @@ __export(index_exports, {
332
332
  abacConditionSchema: () => abacConditionSchema,
333
333
  abacOperatorSchema: () => abacOperatorSchema,
334
334
  abacPolicySchema: () => abacPolicySchema,
335
+ advertisedScopes: () => advertisedScopes,
335
336
  aiPlatformTypeSchema: () => aiPlatformTypeSchema,
336
337
  allowsPublicAccess: () => allowsPublicAccess,
338
+ anonymousCallerClaims: () => anonymousCallerClaims,
337
339
  apiKeyCredentialSchema: () => apiKeyCredentialSchema,
338
340
  appAuthOptionsSchema: () => appAuthOptionsSchema,
339
341
  appAuthStateSchema: () => appAuthStateSchema,
@@ -513,6 +515,7 @@ __export(index_exports, {
513
515
  resetCachedKey: () => resetCachedKey,
514
516
  resolveRequiredScopes: () => resolveRequiredScopes,
515
517
  resourceIdRefSchema: () => resourceIdRefSchema,
518
+ resourceScopesFor: () => resourceScopesFor,
516
519
  safeDecrypt: () => safeDecrypt,
517
520
  sealPendingLogin: () => sealPendingLogin,
518
521
  secureStoreConfigSchema: () => secureStoreConfigSchema,
@@ -957,6 +960,12 @@ var TRANSPARENT_JWT_ALGS = [
957
960
  ];
958
961
  var MAX_JWKS_FETCH_BYTES = 1048576;
959
962
  var MAX_JWKS_FETCH_HOPS = 3;
963
+ var MISSING_EXP_ERROR = 'missing required "exp" claim';
964
+ function isMissingExpError(error) {
965
+ if (typeof error !== "object" || error === null) return false;
966
+ const { code, claim, reason } = error;
967
+ return code === "ERR_JWT_CLAIM_VALIDATION_FAILED" && claim === "exp" && reason === "missing";
968
+ }
960
969
  var WEAK_KEY_WARNING = `
961
970
  \u26A0\uFE0F SECURITY WARNING: OAuth provider is using an RSA key smaller than 2048 bits.
962
971
  This is considered insecure and should be updated.
@@ -1026,6 +1035,7 @@ var JwksService = class {
1026
1035
  kid = typeof header?.kid === "string" ? header.kid : void 0;
1027
1036
  } catch {
1028
1037
  }
1038
+ let missingExp = false;
1029
1039
  for (const p of candidates) {
1030
1040
  let jwks;
1031
1041
  try {
@@ -1057,11 +1067,14 @@ var JwksService = class {
1057
1067
  if (fallbackResult.ok) {
1058
1068
  return fallbackResult;
1059
1069
  }
1070
+ if (fallbackResult.error === "missing_exp") missingExp = true;
1060
1071
  }
1061
1072
  }
1073
+ if (isMissingExpError(e)) missingExp = true;
1062
1074
  this.logger.debug("[JwksService] Failed to verify token for provider: %s", p.id, e);
1063
1075
  }
1064
1076
  }
1077
+ if (missingExp) return { ok: false, error: MISSING_EXP_ERROR };
1065
1078
  return { ok: false, error: `no_provider_verified${kid ? ` (kid=${kid})` : ""}` };
1066
1079
  }
1067
1080
  /**
@@ -1194,7 +1207,10 @@ var JwksService = class {
1194
1207
  * 1) inline jwks (if provided) → cache & return
1195
1208
  * 2) cached & fresh (TTL) → return
1196
1209
  * 3) explicit jwksUri → fetch, cache, return
1197
- * 4) discover jwks_uri via AS → fetch AS metadata, then jwks_uri, cache, return
1210
+ * 4) discover jwks_uri → the issuer's OAuth authorization server
1211
+ * metadata (RFC 8414), else its OpenID configuration (OpenID Connect
1212
+ * Discovery 1.0 §4, where Google, Okta, Auth0 and Entra publish it),
1213
+ * then fetch jwks_uri, cache, return
1198
1214
  */
1199
1215
  async getJwksForProvider(ref) {
1200
1216
  if (ref.jwks?.keys?.length) {
@@ -1210,11 +1226,13 @@ var JwksService = class {
1210
1226
  if (fromUri?.keys?.length) return fromUri;
1211
1227
  }
1212
1228
  const issuer = trimSlash(ref.issuerUrl);
1213
- const meta = await this.tryFetchAsMeta(`${issuer}/.well-known/oauth-authorization-server`);
1214
- const uri = meta && typeof meta === "object" && meta["jwks_uri"] ? String(meta["jwks_uri"]) : void 0;
1215
- if (uri) {
1216
- const fromMeta = await this.tryFetchJwks(ref.id, uri);
1217
- if (fromMeta?.keys?.length) return fromMeta;
1229
+ for (const document of ["oauth-authorization-server", "openid-configuration"]) {
1230
+ const meta = await this.tryFetchAsMeta(`${issuer}/.well-known/${document}`);
1231
+ const uri = meta && typeof meta === "object" && meta["jwks_uri"] ? String(meta["jwks_uri"]) : void 0;
1232
+ if (uri) {
1233
+ const fromMeta = await this.tryFetchJwks(ref.id, uri);
1234
+ if (fromMeta?.keys?.length) return fromMeta;
1235
+ }
1218
1236
  }
1219
1237
  const maxStaleMs = Math.max(this.opts.providerJwksTtlMs * 4, 6e4);
1220
1238
  if (cached && Date.now() - cached.fetchedAt < maxStaleMs) {
@@ -4238,6 +4256,15 @@ function deriveTypedUser(claims) {
4238
4256
  picture: extractClaimValue(claims, "picture", isString)
4239
4257
  };
4240
4258
  }
4259
+ function anonymousCallerClaims(options, anonymousId) {
4260
+ const { issuer, scopes = ["anonymous"], subject } = options;
4261
+ return {
4262
+ sub: subject ?? `anon:${anonymousId}`,
4263
+ iss: issuer,
4264
+ name: subject ? "Static token" : "Anonymous",
4265
+ scope: scopes.join(" ")
4266
+ };
4267
+ }
4241
4268
  function extractBearerToken(header) {
4242
4269
  if (!header) return void 0;
4243
4270
  const m = header.match(/^\s*Bearer\s+(\S+)\s*$/i);
@@ -9359,6 +9386,19 @@ function grantScopes(requested, allowed) {
9359
9386
  }
9360
9387
  return granted;
9361
9388
  }
9389
+ function advertisedScopes(allowed) {
9390
+ const scopes = [];
9391
+ for (const scope of allowed ?? DEFAULT_ALLOWED_SCOPES) {
9392
+ if (scope && !scope.includes("*") && !scopes.includes(scope)) scopes.push(scope);
9393
+ }
9394
+ return scopes;
9395
+ }
9396
+ function resourceScopesFor(options) {
9397
+ const mode = options?.mode ?? "public";
9398
+ if (mode === "local" || mode === "remote") return advertisedScopes(options?.allowedScopes);
9399
+ const listed = mode === "public" ? options?.anonymousScopes ?? ["anonymous"] : mode === "static" ? options?.scopes ?? ["static"] : mode === "transparent" ? [...options?.requiredScopes ?? [], ...options?.scopes ?? []] : [];
9400
+ return advertisedScopes(listed);
9401
+ }
9362
9402
 
9363
9403
  // libs/auth/src/utils/redirect-uri.utils.ts
9364
9404
  function isLoopbackRedirectUri(uri) {
@@ -11175,11 +11215,15 @@ var AuthoritiesEngine = class {
11175
11215
  /** Problems found per rule object, so a rule is validated once however often it is evaluated. */
11176
11216
  ruleProblems = /* @__PURE__ */ new WeakMap();
11177
11217
  /**
11178
- * Problems with an `authorities` value declared on an entry (see {@link findAuthoritiesRuleProblems}).
11179
- * The server reports them when it starts; {@link evaluate} denies such a value.
11218
+ * Problems with an `authorities` value declared on an entry (see {@link findAuthoritiesRuleProblems}),
11219
+ * and each profile name it uses that no registered profile has. The server reports them when it
11220
+ * starts; {@link evaluate} denies such a value (an unknown profile as `profile '…' is not registered`).
11180
11221
  */
11181
11222
  findRuleProblems(authorities) {
11182
- return findAuthoritiesRuleProblems(authorities);
11223
+ const problems = findAuthoritiesRuleProblems(authorities);
11224
+ if (problems.length > 0) return problems;
11225
+ const names = typeof authorities === "string" ? [authorities] : Array.isArray(authorities) ? authorities : [];
11226
+ return names.filter((name) => typeof name === "string" && !this.profiles.has(name)).map((name) => `names an unknown profile "${name}"`);
11183
11227
  }
11184
11228
  /**
11185
11229
  * Problems with every registered profile's rule (see {@link findAuthoritiesRuleProblems}).
@@ -11741,8 +11785,10 @@ var FetchCredentialMiddleware = class {
11741
11785
  abacConditionSchema,
11742
11786
  abacOperatorSchema,
11743
11787
  abacPolicySchema,
11788
+ advertisedScopes,
11744
11789
  aiPlatformTypeSchema,
11745
11790
  allowsPublicAccess,
11791
+ anonymousCallerClaims,
11746
11792
  apiKeyCredentialSchema,
11747
11793
  appAuthOptionsSchema,
11748
11794
  appAuthStateSchema,
@@ -11922,6 +11968,7 @@ var FetchCredentialMiddleware = class {
11922
11968
  resetCachedKey,
11923
11969
  resolveRequiredScopes,
11924
11970
  resourceIdRefSchema,
11971
+ resourceScopesFor,
11925
11972
  safeDecrypt,
11926
11973
  sealPendingLogin,
11927
11974
  secureStoreConfigSchema,
@@ -57,7 +57,10 @@ export declare class JwksService {
57
57
  * 1) inline jwks (if provided) → cache & return
58
58
  * 2) cached & fresh (TTL) → return
59
59
  * 3) explicit jwksUri → fetch, cache, return
60
- * 4) discover jwks_uri via AS → fetch AS metadata, then jwks_uri, cache, return
60
+ * 4) discover jwks_uri → the issuer's OAuth authorization server
61
+ * metadata (RFC 8414), else its OpenID configuration (OpenID Connect
62
+ * Discovery 1.0 §4, where Google, Okta, Auth0 and Entra publish it),
63
+ * then fetch jwks_uri, cache, return
61
64
  */
62
65
  getJwksForProvider(ref: ProviderVerifyRef): Promise<JSONWebKeySet | undefined>;
63
66
  /** Return the orchestrator public JWKS (generates/rotates as needed). */
@@ -1 +1 @@
1
- {"version":3,"file":"jwks.service.d.ts","sourceRoot":"","sources":["../../src/jwks/jwks.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAuD,KAAK,aAAa,EAAY,MAAM,MAAM,CAAC;AAczG,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAmClG,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+C;IAEpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,eAAe,CAKrB;IAGF,OAAO,CAAC,YAAY,CAAiE;IAGrF,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,cAAc,CAA4B;IAElD,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,IAAI,CAAC,EAAE,kBAAkB;IAcrC;;;OAGG;YACW,iBAAiB;IAc/B,mFAAmF;IAC7E,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAQ7C;;;OAGG;IACG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA2DnG;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;;OAGG;YACW,iBAAiB;IAwG/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB,kEAAkE;IAClE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAIvD;;;;;;OAMG;IACG,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IA2CpF,yEAAyE;IACnE,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC;IAKnD,wEAAwE;IAClE,yBAAyB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,aAAa,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;YAShG,YAAY;YAaZ,cAAc;YAQd,SAAS;YAgET,qBAAqB;YAyBrB,yBAAyB;IA+DvC,OAAO,CAAC,WAAW;CAgBpB"}
1
+ {"version":3,"file":"jwks.service.d.ts","sourceRoot":"","sources":["../../src/jwks/jwks.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAuD,KAAK,aAAa,EAAY,MAAM,MAAM,CAAC;AAczG,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAgDlG,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+C;IAEpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,eAAe,CAKrB;IAGF,OAAO,CAAC,YAAY,CAAiE;IAGrF,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,cAAc,CAA4B;IAElD,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,IAAI,CAAC,EAAE,kBAAkB;IAcrC;;;OAGG;YACW,iBAAiB;IAc/B,mFAAmF;IAC7E,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAQ7C;;;OAGG;IACG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAmEnG;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;;OAGG;YACW,iBAAiB;IAwG/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB,kEAAkE;IAClE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAIvD;;;;;;;;;OASG;IACG,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IA8CpF,yEAAyE;IACnE,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC;IAKnD,wEAAwE;IAClE,yBAAyB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,aAAa,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;YAShG,YAAY;YAaZ,cAAc;YAQd,SAAS;YAgET,qBAAqB;YAyBrB,yBAAyB;IA+DvC,OAAO,CAAC,WAAW;CAgBpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/auth",
3
- "version": "1.8.3",
3
+ "version": "1.8.5",
4
4
  "description": "FrontMCP Auth - Authentication, session management, and credential vault",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "homepage": "https://docs.agentfront.dev",
@@ -47,8 +47,8 @@
47
47
  "node": ">=24.0.0"
48
48
  },
49
49
  "peerDependencies": {
50
- "@frontmcp/lazy-zod": "1.8.3",
51
- "@frontmcp/storage-sqlite": "1.8.3",
50
+ "@frontmcp/lazy-zod": "1.8.5",
51
+ "@frontmcp/storage-sqlite": "1.8.5",
52
52
  "@vercel/kv": "^3.0.0",
53
53
  "ioredis": "^5.0.0"
54
54
  },
@@ -64,8 +64,8 @@
64
64
  }
65
65
  },
66
66
  "dependencies": {
67
- "@frontmcp/di": "1.8.3",
68
- "@frontmcp/utils": "1.8.3",
67
+ "@frontmcp/di": "1.8.5",
68
+ "@frontmcp/utils": "1.8.5",
69
69
  "jose": "^6.0.0"
70
70
  },
71
71
  "devDependencies": {
@@ -48,7 +48,8 @@ export type { SignedSession, SessionSigningConfig } from './session-crypto';
48
48
  export { SessionRateLimiter, defaultSessionRateLimiter } from './session-rate-limiter';
49
49
  export type { SessionRateLimiterConfig, RateLimitResult } from './session-rate-limiter';
50
50
  export { TransportIdGenerator } from './session.transport';
51
- export { isJwt, getTokenSignatureFingerprint, deriveTypedUser, extractBearerToken, getKey, encryptJson, decryptSessionJson, safeDecrypt, resetCachedKey, TinyTtlCache, } from './utils';
51
+ export { isJwt, getTokenSignatureFingerprint, deriveTypedUser, anonymousCallerClaims, extractBearerToken, getKey, encryptJson, decryptSessionJson, safeDecrypt, resetCachedKey, TinyTtlCache, } from './utils';
52
+ export type { AnonymousCallerClaimsOptions } from './utils';
52
53
  export { TypedStorage, EncryptedTypedStorage, EncryptedStorageError, StorageTokenStore, StorageAuthorizationVault, InMemoryAuthorizationVault, } from './storage';
53
54
  export type { TypedStorageOptions, TypedSetOptions, TypedSetEntry, EncryptedTypedStorageOptions, EncryptedSetOptions, EncryptedSetEntry, EncryptionKey, StoredEncryptedBlob, ClientKeyBinding, StorageTokenStoreOptions, StorageAuthorizationVaultOptions, InMemoryAuthorizationVaultOptions, } from './storage';
54
55
  export { RedisSessionStore } from './redis-session.store';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { UserClaim } from '../../common/session.types';
1
+ import { type UserClaim } from '../../common/session.types';
2
2
  export declare function isJwt(token: string | undefined): boolean;
3
3
  /**
4
4
  * If the token is a JWT, returns the raw signature segment (3rd part) as base64url.
@@ -8,5 +8,27 @@ export declare function isJwt(token: string | undefined): boolean;
8
8
  export declare function getTokenSignatureFingerprint(token: string): string;
9
9
  /** Best-effort typed user derivation from claims */
10
10
  export declare function deriveTypedUser(claims: Record<string, unknown>): UserClaim;
11
+ /** What identifies an anonymous or static-key caller in its claims. */
12
+ export interface AnonymousCallerClaimsOptions {
13
+ /** Issuer of the claims (the server that identifies the caller). */
14
+ issuer: string;
15
+ /** Scopes granted to the caller. Default: `['anonymous']`. */
16
+ scopes?: string[];
17
+ /**
18
+ * Explicit subject. Static mode names the configured token that was presented; without it the
19
+ * caller is anonymous and gets `anon:<anonymousId>`.
20
+ */
21
+ subject?: string;
22
+ }
23
+ /**
24
+ * The claims of an anonymous or static-key caller (public mode, transparent anonymous access, a
25
+ * static key): `sub` is the given subject or `anon:<anonymousId>`, and `scope` the granted scopes.
26
+ */
27
+ export declare function anonymousCallerClaims(options: AnonymousCallerClaimsOptions, anonymousId: string): {
28
+ sub: string;
29
+ iss: string;
30
+ name: string;
31
+ scope: string;
32
+ };
11
33
  export declare function extractBearerToken(header?: string): string | undefined;
12
34
  //# sourceMappingURL=auth-token.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-token.utils.d.ts","sourceRoot":"","sources":["../../../src/session/utils/auth-token.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlE;AAkBD,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAe1E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAItE"}
1
+ {"version":3,"file":"auth-token.utils.d.ts","sourceRoot":"","sources":["../../../src/session/utils/auth-token.utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlE;AAkBD,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAe1E;AAED,uEAAuE;AACvE,MAAM,WAAW,4BAA4B;IAC3C,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,MAAM,GAClB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAQ3D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAItE"}
@@ -2,6 +2,6 @@
2
2
  * Session utilities
3
3
  */
4
4
  export { TinyTtlCache } from './tiny-ttl-cache';
5
- export { isJwt, getTokenSignatureFingerprint, deriveTypedUser, extractBearerToken } from './auth-token.utils';
5
+ export { isJwt, getTokenSignatureFingerprint, deriveTypedUser, anonymousCallerClaims, extractBearerToken, type AnonymousCallerClaimsOptions, } from './auth-token.utils';
6
6
  export { getKey, encryptJson, decryptSessionJson, safeDecrypt, resetCachedKey } from './session-crypto.utils';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,4BAA4B,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,KAAK,EACL,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,4BAA4B,GAClC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
package/utils/index.d.ts CHANGED
@@ -6,6 +6,6 @@ export type { BearerErrorCode, WwwAuthenticateOptions } from './www-authenticate
6
6
  export { validateAudience, createAudienceValidator, deriveExpectedAudience, AudienceValidator, } from './audience.validator';
7
7
  export type { AudienceValidationResult, AudienceValidatorOptions } from './audience.validator';
8
8
  export { deriveAuthorizationId } from './authorization-id.utils';
9
- export { DEFAULT_ALLOWED_SCOPES, grantScopes } from './scope-grant.utils';
9
+ export { advertisedScopes, DEFAULT_ALLOWED_SCOPES, grantScopes, resourceScopesFor, type ResourceScopeOptions, } from './scope-grant.utils';
10
10
  export { isLoopbackRedirectUri } from './redirect-uri.utils';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -8,4 +8,38 @@ export declare const DEFAULT_ALLOWED_SCOPES: readonly string[];
8
8
  * @param allowed The configured allowlist; `undefined` means {@link DEFAULT_ALLOWED_SCOPES}.
9
9
  */
10
10
  export declare function grantScopes(requested: readonly string[], allowed: readonly string[] | undefined): string[];
11
+ /**
12
+ * The scope values to advertise as `scopes_supported` (RFC 8414 §2, RFC 9728 §2)
13
+ * for a server that grants `allowed`: the literal entries, in order, without
14
+ * duplicates. A `*` glob such as `'tickets:*'` names no single scope a client
15
+ * could ask for, so it isn't advertised (RFC 8414 lets a server leave supported
16
+ * scopes out); list a scope literally to advertise it.
17
+ *
18
+ * @param allowed The configured allowlist; `undefined` means {@link DEFAULT_ALLOWED_SCOPES}.
19
+ */
20
+ export declare function advertisedScopes(allowed: readonly string[] | undefined): string[];
21
+ /** The auth option fields {@link resourceScopesFor} reads, whichever mode they belong to. */
22
+ export interface ResourceScopeOptions {
23
+ mode?: string;
24
+ allowedScopes?: readonly string[];
25
+ anonymousScopes?: readonly string[];
26
+ scopes?: readonly string[];
27
+ requiredScopes?: readonly string[];
28
+ }
29
+ /**
30
+ * The scope values a protected resource advertises as `scopes_supported`
31
+ * (RFC 9728 §2) for its auth mode: the scopes a client can actually be given
32
+ * for it, not a fixed OpenID Connect list (#629).
33
+ *
34
+ * - `local` / `remote`: the literal entries of `allowedScopes` ({@link advertisedScopes});
35
+ * - `public` (and no auth at all): `anonymousScopes`, what the anonymous grant gives;
36
+ * - `static`: `scopes`, what the static credential carries;
37
+ * - `transparent`: `requiredScopes`, then `scopes` (what the upstream provider is
38
+ * asked for), the scopes a token for this resource needs.
39
+ *
40
+ * An empty result means the server names no scopes; leave `scopes_supported` out then.
41
+ *
42
+ * @param options The scope's auth options (parsed or as configured); `undefined` means public mode.
43
+ */
44
+ export declare function resourceScopesFor(options: ResourceScopeOptions | undefined): string[];
11
45
  //# sourceMappingURL=scope-grant.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scope-grant.utils.d.ts","sourceRoot":"","sources":["../../src/utils/scope-grant.utils.ts"],"names":[],"mappings":"AASA,mGAAmG;AACnG,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAKlD,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAQ1G"}
1
+ {"version":3,"file":"scope-grant.utils.d.ts","sourceRoot":"","sources":["../../src/utils/scope-grant.utils.ts"],"names":[],"mappings":"AASA,mGAAmG;AACnG,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAKlD,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAQ1G;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAMjF;AAED,6FAA6F;AAC7F,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,MAAM,EAAE,CAYrF"}