@trokky/trokky 3.5.1 → 3.5.2
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/dist/adapters/cloudflare-d1/cloudflare-d1-adapter.d.ts +2 -0
- package/dist/adapters/cloudflare-d1/cloudflare-d1-adapter.d.ts.map +1 -1
- package/dist/adapters/cloudflare-d1/cloudflare-d1-adapter.js +17 -0
- package/dist/adapters/cloudflare-d1/cloudflare-d1-adapter.js.map +1 -1
- package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts +1 -0
- package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts.map +1 -1
- package/dist/adapters/filesystem-data/filesystem-data-adapter.js +24 -1
- package/dist/adapters/filesystem-data/filesystem-data-adapter.js.map +1 -1
- package/dist/adapters/postgres-data/postgres-data-adapter.d.ts +2 -0
- package/dist/adapters/postgres-data/postgres-data-adapter.d.ts.map +1 -1
- package/dist/adapters/postgres-data/postgres-data-adapter.js +24 -0
- package/dist/adapters/postgres-data/postgres-data-adapter.js.map +1 -1
- package/dist/core/core/engine.d.ts +10 -1
- package/dist/core/core/engine.d.ts.map +1 -1
- package/dist/core/core/engine.js +34 -4
- package/dist/core/core/engine.js.map +1 -1
- package/dist/core/security/auth-flow-store.d.ts +69 -0
- package/dist/core/security/auth-flow-store.d.ts.map +1 -0
- package/dist/core/security/auth-flow-store.js +145 -0
- package/dist/core/security/auth-flow-store.js.map +1 -0
- package/dist/core/security/oauth2/authorization-server.d.ts +68 -13
- package/dist/core/security/oauth2/authorization-server.d.ts.map +1 -1
- package/dist/core/security/oauth2/authorization-server.js +161 -151
- package/dist/core/security/oauth2/authorization-server.js.map +1 -1
- package/dist/core/security/oauth2/scoped-permissions.d.ts +15 -0
- package/dist/core/security/oauth2/scoped-permissions.d.ts.map +1 -0
- package/dist/core/security/oauth2/scoped-permissions.js +53 -0
- package/dist/core/security/oauth2/scoped-permissions.js.map +1 -0
- package/dist/core/services/auth-service.d.ts +4 -0
- package/dist/core/services/auth-service.d.ts.map +1 -1
- package/dist/core/services/auth-service.js +63 -5
- package/dist/core/services/auth-service.js.map +1 -1
- package/dist/core/services/document-service.d.ts.map +1 -1
- package/dist/core/services/document-service.js +5 -1
- package/dist/core/services/document-service.js.map +1 -1
- package/dist/core/services/oauth2-server-service.d.ts +48 -1
- package/dist/core/services/oauth2-server-service.d.ts.map +1 -1
- package/dist/core/services/oauth2-server-service.js +170 -10
- package/dist/core/services/oauth2-server-service.js.map +1 -1
- package/dist/core/types/index.d.ts +4 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/oauth2.d.ts +1 -1
- package/dist/core/types/oauth2.d.ts.map +1 -1
- package/dist/core/types/oauth2.js +1 -1
- package/dist/core/types/oauth2.js.map +1 -1
- package/dist/core/types/storage-adapters.d.ts +11 -1
- package/dist/core/types/storage-adapters.d.ts.map +1 -1
- package/dist/i18n/config.d.ts +34 -0
- package/dist/i18n/config.d.ts.map +1 -1
- package/dist/i18n/locales/en/studio.json +18 -1
- package/dist/i18n/locales/fr/studio.json +18 -1
- package/dist/integrations/express/config.d.ts +12 -0
- package/dist/integrations/express/config.d.ts.map +1 -1
- package/dist/integrations/express/config.js.map +1 -1
- package/dist/routes/auth/auth-flow-store.d.ts +3 -59
- package/dist/routes/auth/auth-flow-store.d.ts.map +1 -1
- package/dist/routes/auth/auth-flow-store.js +3 -119
- package/dist/routes/auth/auth-flow-store.js.map +1 -1
- package/dist/routes/auth/oauth.d.ts.map +1 -1
- package/dist/routes/auth/oauth.js +4 -2
- package/dist/routes/auth/oauth.js.map +1 -1
- package/dist/routes/auth/oauth2-server.d.ts.map +1 -1
- package/dist/routes/auth/oauth2-server.js +28 -8
- package/dist/routes/auth/oauth2-server.js.map +1 -1
- package/dist/routes/handlers/audit.d.ts +6 -0
- package/dist/routes/handlers/audit.d.ts.map +1 -1
- package/dist/routes/handlers/audit.js +19 -17
- package/dist/routes/handlers/audit.js.map +1 -1
- package/dist/routes/handlers/auth.d.ts +23 -1
- package/dist/routes/handlers/auth.d.ts.map +1 -1
- package/dist/routes/handlers/auth.js +101 -2
- package/dist/routes/handlers/auth.js.map +1 -1
- package/dist/routes/handlers/base.d.ts +14 -0
- package/dist/routes/handlers/base.d.ts.map +1 -1
- package/dist/routes/handlers/base.js +41 -4
- package/dist/routes/handlers/base.js.map +1 -1
- package/dist/routes/handlers/documents.d.ts.map +1 -1
- package/dist/routes/handlers/documents.js +7 -2
- package/dist/routes/handlers/documents.js.map +1 -1
- package/dist/routes/handlers/tokens.d.ts.map +1 -1
- package/dist/routes/handlers/tokens.js +5 -4
- package/dist/routes/handlers/tokens.js.map +1 -1
- package/dist/routes/handlers/users.d.ts.map +1 -1
- package/dist/routes/handlers/users.js +35 -6
- package/dist/routes/handlers/users.js.map +1 -1
- package/dist/routes/routes.d.ts.map +1 -1
- package/dist/routes/routes.js +8 -1
- package/dist/routes/routes.js.map +1 -1
- package/dist/types/auth.d.ts +8 -0
- package/dist/types/auth.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/oauth2.d.ts +13 -1
- package/dist/types/oauth2.d.ts.map +1 -1
- package/dist/types/oauth2.js +25 -10
- package/dist/types/oauth2.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { scopedPermissions } from '../security/oauth2/scoped-permissions.js';
|
|
1
2
|
/**
|
|
2
3
|
* Authentication service: password verification, JWT issuance and the
|
|
3
4
|
* login flows (including MFA hand-off). Extracted from TrokkyCore.
|
|
@@ -74,22 +75,77 @@ export class AuthService {
|
|
|
74
75
|
if (!decoded || !userId || !username) {
|
|
75
76
|
return null;
|
|
76
77
|
}
|
|
78
|
+
// Every JWT this server signs has one job. A Studio session token carries no `type`; an
|
|
79
|
+
// OAuth2 access token is `oauth2_access`. Anything else — an OAuth2 refresh token, an MFA
|
|
80
|
+
// pending or setup token — must not work as a bearer credential, or an MFA-pending token
|
|
81
|
+
// would be a login that skipped the second factor.
|
|
82
|
+
const tokenType = decoded.type;
|
|
83
|
+
if (tokenType !== undefined && tokenType !== 'oauth2_access') {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
const scopes = tokenType === 'oauth2_access' && Array.isArray(decoded.scopes)
|
|
87
|
+
? decoded.scopes
|
|
88
|
+
: undefined;
|
|
89
|
+
if (tokenType === 'oauth2_access' && !scopes) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
const loginAt = decoded.iat ? new Date(decoded.iat * 1000).toISOString() : new Date().toISOString();
|
|
93
|
+
const expiresAt = decoded.exp ? new Date(decoded.exp * 1000).toISOString() : undefined;
|
|
77
94
|
// Fetch fresh user data from storage to get current permissions
|
|
78
95
|
try {
|
|
79
96
|
const currentUser = await this.deps.getUser(userId);
|
|
80
97
|
if (!currentUser || !currentUser.isActive) {
|
|
81
98
|
return null; // User no longer exists or is inactive
|
|
82
99
|
}
|
|
100
|
+
if (scopes) {
|
|
101
|
+
// Valid only while the approval behind it stands: revoking it in Studio ends every
|
|
102
|
+
// token issued under it, this one included
|
|
103
|
+
const grantId = typeof decoded.grantId === 'string' ? decoded.grantId : undefined;
|
|
104
|
+
if (!grantId || !this.deps.isOAuth2GrantLive || !(await this.deps.isOAuth2GrantLive(currentUser, grantId))) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
const clientId = typeof decoded.clientId === 'string' ? decoded.clientId : undefined;
|
|
108
|
+
// A trusted (first-party) client acts as the user outright. Its session carries the
|
|
109
|
+
// client id and no scopes: routes treat it as the user, the account routes still
|
|
110
|
+
// refuse it because it is an OAuth2 token.
|
|
111
|
+
if (clientId && this.deps.isTrustedOAuth2Client?.(clientId)) {
|
|
112
|
+
return {
|
|
113
|
+
userId,
|
|
114
|
+
username,
|
|
115
|
+
role: currentUser.role,
|
|
116
|
+
permissions: currentUser.permissions,
|
|
117
|
+
loginAt,
|
|
118
|
+
expiresAt,
|
|
119
|
+
clientId
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// Acts for the user, holds only what the user granted, and is never an admin: the
|
|
123
|
+
// `api` role routes every check through `permissions` alone.
|
|
124
|
+
return {
|
|
125
|
+
userId,
|
|
126
|
+
username,
|
|
127
|
+
role: 'api',
|
|
128
|
+
permissions: scopedPermissions(currentUser, scopes),
|
|
129
|
+
loginAt,
|
|
130
|
+
expiresAt,
|
|
131
|
+
scopes,
|
|
132
|
+
clientId
|
|
133
|
+
};
|
|
134
|
+
}
|
|
83
135
|
return {
|
|
84
136
|
userId,
|
|
85
137
|
username,
|
|
86
138
|
role: currentUser.role, // Use fresh role from storage
|
|
87
139
|
permissions: currentUser.permissions, // Use fresh permissions from storage
|
|
88
|
-
loginAt
|
|
89
|
-
expiresAt
|
|
140
|
+
loginAt,
|
|
141
|
+
expiresAt
|
|
90
142
|
};
|
|
91
143
|
}
|
|
92
144
|
catch (error) {
|
|
145
|
+
// A scoped token's rights depend on the user's current ones: without them, refuse
|
|
146
|
+
if (scopes) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
93
149
|
// If we can't fetch user data, fall back to JWT payload for backwards compatibility
|
|
94
150
|
if (!decoded.role || !decoded.permissions) {
|
|
95
151
|
return null;
|
|
@@ -99,8 +155,8 @@ export class AuthService {
|
|
|
99
155
|
username,
|
|
100
156
|
role: decoded.role,
|
|
101
157
|
permissions: decoded.permissions,
|
|
102
|
-
loginAt
|
|
103
|
-
expiresAt
|
|
158
|
+
loginAt,
|
|
159
|
+
expiresAt
|
|
104
160
|
};
|
|
105
161
|
}
|
|
106
162
|
}
|
|
@@ -493,7 +549,9 @@ export class AuthService {
|
|
|
493
549
|
try {
|
|
494
550
|
// Verify the refresh token
|
|
495
551
|
const session = await this.verifyAuthToken(refreshToken);
|
|
496
|
-
|
|
552
|
+
// Only a Studio session renews into a Studio session. An OAuth2 access token must not:
|
|
553
|
+
// that would turn a scoped grant into the user's full rights.
|
|
554
|
+
if (!session || session.clientId) {
|
|
497
555
|
return null;
|
|
498
556
|
}
|
|
499
557
|
// Get the user
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-service.js","sourceRoot":"","sources":["../../../src/core/services/auth-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth-service.js","sourceRoot":"","sources":["../../../src/core/services/auth-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/document-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAYnD,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AA+B1B,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,YAAY,CAAA;IACtB,WAAW,EAAE,kBAAkB,CAAA;IAC/B,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,eAAe,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,cAAc,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,gBAAgB,CAAA;CAC1E;AAED;;GAEG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,2BAA2B;IAGjD,cAAc,CACzB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,OAAO,gBAAgB,EACxC,YAAY,CAAC,EAAE,YAAY,EAC3B,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAClB,EACD,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"document-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/document-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,11 @@ export class DocumentService {
|
|
|
57
57
|
ipAddress: auditContext.ipAddress,
|
|
58
58
|
userAgent: auditContext.userAgent,
|
|
59
59
|
sessionId: undefined, // Could be added later if needed
|
|
60
|
-
|
|
60
|
+
// An application acting for the user: the history says "by <user> via <application>",
|
|
61
|
+
// so a person can tell an agent's change from their own
|
|
62
|
+
metadata: auditContext.clientId
|
|
63
|
+
? { via: { clientId: auditContext.clientId, clientName: auditContext.clientName ?? auditContext.clientId } }
|
|
64
|
+
: undefined
|
|
61
65
|
});
|
|
62
66
|
this.deps.auditLog.info('Audit log created', {
|
|
63
67
|
documentId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-service.js","sourceRoot":"","sources":["../../../src/core/services/document-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAK7D,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,sBAAsB,EACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAQL,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAE1B,+FAA+F;AAC/F,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;AAE7D,SAAS,kBAAkB,CAAC,MAA6B;IACvD,MAAM,MAAM,GAAI,MAAkD,EAAE,MAAM,CAAA;IAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzH,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAE,MAA8C,IAAI,EAAE,CAAC,CAAC,CAAA;AACpF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,IAA6B,EAAE,MAA6B;IACrF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnF,SAAQ;QACV,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACrB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAeD;;GAEG;AACH,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,IAAiC;QAAjC,SAAI,GAAJ,IAAI,CAA6B;IAAG,CAAC;IAElE,qCAAqC;IAC9B,KAAK,CAAC,cAAc,CACzB,UAAkB,EAClB,UAAkB,EAClB,SAAwC,EACxC,YAA2B,EAC3B,OAIC,EACD,QAAiB;QAEjB,8EAA8E;QAC9E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3D,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;gBACzC,UAAU;gBACV,UAAU;gBACV,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC;gBACtC,OAAO,EAAE,YAAY,CAAC,MAAM;gBAC5B,SAAS,EAAE,YAAY,CAAC,QAAQ;gBAChC,aAAa,EAAE,YAAY,CAAC,QAAQ;gBACpC,OAAO;gBACP,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,QAAQ,EAAE,QAAQ,IAAI,CAAC;gBACvB,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,SAAS,EAAE,SAAS,EAAE,iCAAiC;gBACvD,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"document-service.js","sourceRoot":"","sources":["../../../src/core/services/document-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { TrokkyLogger } from '../utils/logger.js';
|
|
|
3
3
|
import { OAuth2AuthorizationServer } from '../security/oauth2/index.js';
|
|
4
4
|
import type { OAuth2Scope, TokenResponse } from '../types/oauth2.js';
|
|
5
5
|
import { User, UpdateUserData } from '../types/index.js';
|
|
6
|
+
import type { DataStorageAdapter } from '../types/storage-adapters.js';
|
|
6
7
|
export interface OAuth2ServerServiceDependencies {
|
|
7
8
|
logger: TrokkyLogger;
|
|
8
9
|
cryptoAdapter: CryptoAdapter;
|
|
@@ -14,7 +15,27 @@ export interface OAuth2ServerServiceDependencies {
|
|
|
14
15
|
} | undefined;
|
|
15
16
|
getUser: (id: string) => Promise<User | null>;
|
|
16
17
|
updateUser: (id: string, userData: UpdateUserData) => Promise<User>;
|
|
18
|
+
/** Where revocations are recorded, one record per grant */
|
|
19
|
+
getDataStorage: () => DataStorageAdapter | null | undefined;
|
|
17
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* One approval a person gave an application: what the tokens it holds may do, and the
|
|
23
|
+
* handle to take them back. Kept on the user record, under preferences (the one field every
|
|
24
|
+
* storage adapter persists as-is), next to the consents.
|
|
25
|
+
*/
|
|
26
|
+
export interface OAuth2Grant {
|
|
27
|
+
id: string;
|
|
28
|
+
clientId: string;
|
|
29
|
+
/** The client's name when the grant was made, as the person saw it */
|
|
30
|
+
clientName: string;
|
|
31
|
+
scopes: OAuth2Scope[];
|
|
32
|
+
createdAt: string;
|
|
33
|
+
lastUsedAt?: string;
|
|
34
|
+
/** Where the sign-in came from, as its token request identified itself */
|
|
35
|
+
userAgent?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare const OAUTH2_GRANTS_KEY = "_oauth2Grants";
|
|
38
|
+
export declare function grantsOf(user: Pick<User, 'preferences'> | null | undefined): Record<string, OAuth2Grant>;
|
|
18
39
|
/**
|
|
19
40
|
* OAuth2 authorization-server token issuance and consent management.
|
|
20
41
|
*/
|
|
@@ -30,7 +51,7 @@ export declare class OAuth2ServerService {
|
|
|
30
51
|
* Generate OAuth2 tokens for a user
|
|
31
52
|
* Used by the OAuth2 routes to create access and refresh tokens
|
|
32
53
|
*/
|
|
33
|
-
generateOAuth2Tokens(user: User, scopes: OAuth2Scope[], clientId: string): Promise<{
|
|
54
|
+
generateOAuth2Tokens(user: User, scopes: OAuth2Scope[], clientId: string, grantId: string): Promise<{
|
|
34
55
|
accessToken: string;
|
|
35
56
|
refreshToken?: string;
|
|
36
57
|
expiresIn: number;
|
|
@@ -40,6 +61,30 @@ export declare class OAuth2ServerService {
|
|
|
40
61
|
* Returns new tokens if the refresh token is valid
|
|
41
62
|
*/
|
|
42
63
|
refreshOAuth2Token(refreshToken: string, clientId: string, requestedScope?: string): Promise<TokenResponse | null>;
|
|
64
|
+
/** Record a new approval, when an application first receives tokens for it */
|
|
65
|
+
createGrant(user: User, clientId: string, scopes: OAuth2Scope[], userAgent?: string): Promise<OAuth2Grant>;
|
|
66
|
+
listGrants(userId: string): Promise<OAuth2Grant[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Whether tokens issued under a grant still work: it is the user's own, it has been used
|
|
69
|
+
* within the refresh-token lifetime (after that no token of it can be valid), and it has
|
|
70
|
+
* not been revoked.
|
|
71
|
+
*/
|
|
72
|
+
isGrantLive(user: Pick<User, 'preferences'>, grantId: string): Promise<boolean>;
|
|
73
|
+
/**
|
|
74
|
+
* Revoke one grant: every token issued under it stops working at once. The consent for its
|
|
75
|
+
* client goes too, so the application has to ask again rather than be approved silently.
|
|
76
|
+
*/
|
|
77
|
+
revokeGrant(userId: string, grantId: string): Promise<boolean>;
|
|
78
|
+
/**
|
|
79
|
+
* RFC 7009: revoke the grant behind a token the caller holds. Possessing the token is the
|
|
80
|
+
* authorisation. Unknown, invalid or already revoked tokens are not an error.
|
|
81
|
+
*/
|
|
82
|
+
revokeByToken(token: string, clientId?: string): Promise<void>;
|
|
83
|
+
private hasLapsed;
|
|
84
|
+
/** Outlives every token issued under the grant, and every copy of it a stale write restores */
|
|
85
|
+
private recordRevocation;
|
|
86
|
+
/** Read-modify-write of the grants under the user's lock, dropping lapsed ones on the way */
|
|
87
|
+
private updateGrants;
|
|
43
88
|
/**
|
|
44
89
|
* Check if a user has an existing consent for a client with the given scopes
|
|
45
90
|
* Returns the consent if all requested scopes are already consented, null otherwise
|
|
@@ -53,9 +98,11 @@ export declare class OAuth2ServerService {
|
|
|
53
98
|
* Stores in user preferences for persistence
|
|
54
99
|
*/
|
|
55
100
|
saveUserConsent(userId: string, clientId: string, scopes: OAuth2Scope[], expiresInDays?: number): Promise<boolean>;
|
|
101
|
+
private writeUserConsent;
|
|
56
102
|
/**
|
|
57
103
|
* Revoke user consent for a client
|
|
58
104
|
*/
|
|
59
105
|
revokeUserConsent(userId: string, clientId: string): Promise<boolean>;
|
|
106
|
+
private removeUserConsent;
|
|
60
107
|
}
|
|
61
108
|
//# sourceMappingURL=oauth2-server-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2-server-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/oauth2-server-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACpE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"oauth2-server-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/oauth2-server-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,37 @@
|
|
|
1
|
+
import { getAuthFlowState, saveAuthFlowState } from '../security/auth-flow-store.js';
|
|
2
|
+
export const OAUTH2_GRANTS_KEY = '_oauth2Grants';
|
|
3
|
+
export function grantsOf(user) {
|
|
4
|
+
const grants = user?.preferences?.[OAUTH2_GRANTS_KEY];
|
|
5
|
+
return grants && typeof grants === 'object' ? grants : {};
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A revocation, recorded under the grant's own id. The grant list sits in the user's
|
|
9
|
+
* preferences, which several writers read and write back whole (consents, MFA, password
|
|
10
|
+
* reset, a user edit), so a write that read the preferences before a revoke can put the grant
|
|
11
|
+
* back. This record is written once and never rewritten by anything else, so a revoke stands
|
|
12
|
+
* whatever races it, on every adapter and every replica.
|
|
13
|
+
*/
|
|
14
|
+
const REVOKED_GRANT_KIND = 'oauth2_grant_revoked';
|
|
15
|
+
/** How often a renewal records `lastUsedAt`: each write is a user write and an audit event */
|
|
16
|
+
const LAST_USED_EVERY_MS = 12 * 60 * 60 * 1000;
|
|
17
|
+
/** Slack on the grant's lifetime for that throttling, so a grant in use never lapses */
|
|
18
|
+
const LIFETIME_SLACK_MS = 24 * 60 * 60 * 1000;
|
|
19
|
+
/**
|
|
20
|
+
* Grant writes for one user run one after another in this process: five devices finishing
|
|
21
|
+
* their sign-in at once each add a grant, and none may overwrite another's.
|
|
22
|
+
*/
|
|
23
|
+
const userLocks = new Map();
|
|
24
|
+
function withUserLock(userId, work) {
|
|
25
|
+
const previous = userLocks.get(userId) ?? Promise.resolve();
|
|
26
|
+
const run = previous.catch(() => undefined).then(work);
|
|
27
|
+
const tail = run.catch(() => undefined);
|
|
28
|
+
userLocks.set(userId, tail);
|
|
29
|
+
void tail.then(() => {
|
|
30
|
+
if (userLocks.get(userId) === tail)
|
|
31
|
+
userLocks.delete(userId);
|
|
32
|
+
});
|
|
33
|
+
return run;
|
|
34
|
+
}
|
|
1
35
|
/**
|
|
2
36
|
* OAuth2 authorization-server token issuance and consent management.
|
|
3
37
|
*/
|
|
@@ -17,17 +51,19 @@ export class OAuth2ServerService {
|
|
|
17
51
|
* Generate OAuth2 tokens for a user
|
|
18
52
|
* Used by the OAuth2 routes to create access and refresh tokens
|
|
19
53
|
*/
|
|
20
|
-
async generateOAuth2Tokens(user, scopes, clientId) {
|
|
54
|
+
async generateOAuth2Tokens(user, scopes, clientId, grantId) {
|
|
21
55
|
const accessTokenTtl = this.deps.getOAuth2Options()?.accessTokenTtl ?? 3600;
|
|
22
56
|
const refreshTokenTtl = this.deps.getOAuth2Options()?.refreshTokenTtl ?? 2592000;
|
|
23
57
|
const includeRefreshToken = scopes.includes('offline_access');
|
|
24
58
|
// Convert OAuth2 scopes to permissions for the token payload
|
|
25
59
|
const permissions = this.deps.getOAuth2Server()?.scopesToPermissions(scopes) || [];
|
|
26
60
|
// Generate access token
|
|
61
|
+
// Every token names its grant: revoking the grant ends it, access token included
|
|
27
62
|
const accessTokenPayload = {
|
|
28
63
|
sub: user.id,
|
|
29
64
|
type: 'oauth2_access',
|
|
30
65
|
clientId,
|
|
66
|
+
grantId,
|
|
31
67
|
scopes,
|
|
32
68
|
permissions,
|
|
33
69
|
username: user.username,
|
|
@@ -43,6 +79,7 @@ export class OAuth2ServerService {
|
|
|
43
79
|
sub: user.id,
|
|
44
80
|
type: 'oauth2_refresh',
|
|
45
81
|
clientId,
|
|
82
|
+
grantId,
|
|
46
83
|
scopes
|
|
47
84
|
};
|
|
48
85
|
refreshToken = await this.deps.cryptoAdapter.generateJWT(refreshTokenPayload, this.deps.jwtSecret, {
|
|
@@ -91,14 +128,30 @@ export class OAuth2ServerService {
|
|
|
91
128
|
this.deps.logger.warn('User not found or inactive for refresh', { userId: payload.sub });
|
|
92
129
|
return null;
|
|
93
130
|
}
|
|
94
|
-
//
|
|
95
|
-
|
|
131
|
+
// A revoked or lapsed grant, or a token from before grants existed, renews nothing
|
|
132
|
+
const grant = payload.grantId && await this.isGrantLive(user, payload.grantId)
|
|
133
|
+
? grantsOf(user)[payload.grantId]
|
|
134
|
+
: undefined;
|
|
135
|
+
if (!grant || grant.clientId !== clientId) {
|
|
136
|
+
this.deps.logger.warn('Refresh for a missing or revoked grant', { userId: payload.sub, clientId });
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
// Determine scopes - can only narrow, not expand, and never beyond the grant
|
|
140
|
+
let scopes = payload.scopes.filter(s => grant.scopes.includes(s));
|
|
96
141
|
if (requestedScope) {
|
|
97
142
|
const requestedScopes = requestedScope.split(' ').filter(Boolean);
|
|
98
|
-
scopes = requestedScopes.filter(s =>
|
|
143
|
+
scopes = requestedScopes.filter(s => scopes.includes(s));
|
|
144
|
+
}
|
|
145
|
+
// Bookkeeping: a failure to record it must not sign the application out
|
|
146
|
+
const lastUsed = Date.parse(grant.lastUsedAt ?? grant.createdAt);
|
|
147
|
+
if (!(Date.now() - lastUsed < LAST_USED_EVERY_MS)) {
|
|
148
|
+
await this.updateGrants(user.id, grants => {
|
|
149
|
+
if (Object.hasOwn(grants, grant.id))
|
|
150
|
+
grants[grant.id] = { ...grants[grant.id], lastUsedAt: new Date().toISOString() };
|
|
151
|
+
}).catch(error => this.deps.logger.warn('Could not record grant use', { error, grantId: grant.id }));
|
|
99
152
|
}
|
|
100
153
|
// Generate new tokens
|
|
101
|
-
const tokens = await this.generateOAuth2Tokens(user, scopes, clientId);
|
|
154
|
+
const tokens = await this.generateOAuth2Tokens(user, scopes, clientId, grant.id);
|
|
102
155
|
this.deps.logger.info('OAuth2 token refreshed', {
|
|
103
156
|
userId: user.id,
|
|
104
157
|
clientId,
|
|
@@ -118,6 +171,108 @@ export class OAuth2ServerService {
|
|
|
118
171
|
}
|
|
119
172
|
}
|
|
120
173
|
// ============================================
|
|
174
|
+
// Grants: what applications hold, and taking it back
|
|
175
|
+
// ============================================
|
|
176
|
+
/** Record a new approval, when an application first receives tokens for it */
|
|
177
|
+
async createGrant(user, clientId, scopes, userAgent) {
|
|
178
|
+
const now = new Date().toISOString();
|
|
179
|
+
const grant = {
|
|
180
|
+
id: `grant-${globalThis.crypto.randomUUID()}`,
|
|
181
|
+
clientId,
|
|
182
|
+
clientName: this.deps.getOAuth2Server()?.getClient(clientId)?.name ?? clientId,
|
|
183
|
+
scopes,
|
|
184
|
+
createdAt: now,
|
|
185
|
+
lastUsedAt: now,
|
|
186
|
+
...(userAgent ? { userAgent: userAgent.slice(0, 200) } : {})
|
|
187
|
+
};
|
|
188
|
+
await this.updateGrants(user.id, grants => { grants[grant.id] = grant; });
|
|
189
|
+
this.deps.logger.info('OAuth2 grant created', { userId: user.id, clientId, grantId: grant.id });
|
|
190
|
+
return grant;
|
|
191
|
+
}
|
|
192
|
+
async listGrants(userId) {
|
|
193
|
+
const user = await this.deps.getUser(userId);
|
|
194
|
+
const live = [];
|
|
195
|
+
for (const grant of Object.values(grantsOf(user))) {
|
|
196
|
+
if (user && await this.isGrantLive(user, grant.id))
|
|
197
|
+
live.push(grant);
|
|
198
|
+
}
|
|
199
|
+
return live.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Whether tokens issued under a grant still work: it is the user's own, it has been used
|
|
203
|
+
* within the refresh-token lifetime (after that no token of it can be valid), and it has
|
|
204
|
+
* not been revoked.
|
|
205
|
+
*/
|
|
206
|
+
async isGrantLive(user, grantId) {
|
|
207
|
+
const grants = grantsOf(user);
|
|
208
|
+
if (!Object.hasOwn(grants, grantId) || this.hasLapsed(grants[grantId]))
|
|
209
|
+
return false;
|
|
210
|
+
return !(await getAuthFlowState(this.deps.getDataStorage(), grantId, REVOKED_GRANT_KIND));
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Revoke one grant: every token issued under it stops working at once. The consent for its
|
|
214
|
+
* client goes too, so the application has to ask again rather than be approved silently.
|
|
215
|
+
*/
|
|
216
|
+
async revokeGrant(userId, grantId) {
|
|
217
|
+
const user = await this.deps.getUser(userId);
|
|
218
|
+
if (!user || !Object.hasOwn(grantsOf(user), grantId))
|
|
219
|
+
return false;
|
|
220
|
+
await this.recordRevocation(grantId);
|
|
221
|
+
const clientId = grantsOf(user)[grantId].clientId;
|
|
222
|
+
await this.updateGrants(userId, (grants, preferences) => {
|
|
223
|
+
delete grants[grantId];
|
|
224
|
+
const consents = preferences._oauth2Consents;
|
|
225
|
+
if (consents && Object.hasOwn(consents, clientId)) {
|
|
226
|
+
const { [clientId]: _removed, ...remaining } = consents;
|
|
227
|
+
preferences._oauth2Consents = remaining;
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
this.deps.logger.info('OAuth2 grant revoked', { userId, grantId });
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* RFC 7009: revoke the grant behind a token the caller holds. Possessing the token is the
|
|
235
|
+
* authorisation. Unknown, invalid or already revoked tokens are not an error.
|
|
236
|
+
*/
|
|
237
|
+
async revokeByToken(token, clientId) {
|
|
238
|
+
const payload = await this.deps.cryptoAdapter.verifyJWT(token, this.deps.jwtSecret).catch(() => null);
|
|
239
|
+
if (!payload?.sub || !payload.grantId)
|
|
240
|
+
return;
|
|
241
|
+
if (payload.type !== 'oauth2_access' && payload.type !== 'oauth2_refresh')
|
|
242
|
+
return;
|
|
243
|
+
if (clientId && payload.clientId !== clientId)
|
|
244
|
+
return;
|
|
245
|
+
await this.revokeGrant(payload.sub, payload.grantId);
|
|
246
|
+
}
|
|
247
|
+
hasLapsed(grant) {
|
|
248
|
+
const refreshTokenTtl = this.deps.getOAuth2Options()?.refreshTokenTtl ?? 2592000;
|
|
249
|
+
const lastUsed = Date.parse(grant.lastUsedAt ?? grant.createdAt);
|
|
250
|
+
return !(Date.now() - lastUsed < refreshTokenTtl * 1000 + LIFETIME_SLACK_MS);
|
|
251
|
+
}
|
|
252
|
+
/** Outlives every token issued under the grant, and every copy of it a stale write restores */
|
|
253
|
+
async recordRevocation(grantId) {
|
|
254
|
+
const refreshTokenTtl = this.deps.getOAuth2Options()?.refreshTokenTtl ?? 2592000;
|
|
255
|
+
await saveAuthFlowState(this.deps.getDataStorage(), {
|
|
256
|
+
id: grantId,
|
|
257
|
+
kind: REVOKED_GRANT_KIND,
|
|
258
|
+
data: {},
|
|
259
|
+
expiresAt: new Date(Date.now() + refreshTokenTtl * 1000 + 2 * LIFETIME_SLACK_MS).toISOString()
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
/** Read-modify-write of the grants under the user's lock, dropping lapsed ones on the way */
|
|
263
|
+
updateGrants(userId, change) {
|
|
264
|
+
return withUserLock(userId, async () => {
|
|
265
|
+
const user = await this.deps.getUser(userId);
|
|
266
|
+
if (!user)
|
|
267
|
+
return;
|
|
268
|
+
const preferences = { ...(user.preferences || {}) };
|
|
269
|
+
const grants = Object.fromEntries(Object.entries(grantsOf(user)).filter(([, grant]) => !this.hasLapsed(grant)));
|
|
270
|
+
change(grants, preferences);
|
|
271
|
+
preferences[OAUTH2_GRANTS_KEY] = grants;
|
|
272
|
+
await this.deps.updateUser(userId, { preferences });
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
// ============================================
|
|
121
276
|
// OAuth2 Consent Management
|
|
122
277
|
// ============================================
|
|
123
278
|
/**
|
|
@@ -172,6 +327,9 @@ export class OAuth2ServerService {
|
|
|
172
327
|
* Stores in user preferences for persistence
|
|
173
328
|
*/
|
|
174
329
|
async saveUserConsent(userId, clientId, scopes, expiresInDays) {
|
|
330
|
+
return withUserLock(userId, () => this.writeUserConsent(userId, clientId, scopes, expiresInDays));
|
|
331
|
+
}
|
|
332
|
+
async writeUserConsent(userId, clientId, scopes, expiresInDays) {
|
|
175
333
|
try {
|
|
176
334
|
this.deps.logger.info('saveUserConsent: starting', { userId, clientId, scopes });
|
|
177
335
|
const user = await this.deps.getUser(userId);
|
|
@@ -186,11 +344,10 @@ export class OAuth2ServerService {
|
|
|
186
344
|
currentPreferences,
|
|
187
345
|
existingConsents
|
|
188
346
|
});
|
|
189
|
-
//
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
: scopes;
|
|
347
|
+
// The latest approval replaces the last one. Merging would undo a narrowing: approve
|
|
348
|
+
// read+delete, later approve read only, and the next request for read+delete would
|
|
349
|
+
// still match the stored consent and be approved without asking.
|
|
350
|
+
const mergedScopes = [...new Set(scopes)];
|
|
194
351
|
// Calculate expiry (default: 365 days, or never if not specified)
|
|
195
352
|
const expiresAt = expiresInDays
|
|
196
353
|
? new Date(Date.now() + expiresInDays * 24 * 60 * 60 * 1000).toISOString()
|
|
@@ -229,6 +386,9 @@ export class OAuth2ServerService {
|
|
|
229
386
|
* Revoke user consent for a client
|
|
230
387
|
*/
|
|
231
388
|
async revokeUserConsent(userId, clientId) {
|
|
389
|
+
return withUserLock(userId, () => this.removeUserConsent(userId, clientId));
|
|
390
|
+
}
|
|
391
|
+
async removeUserConsent(userId, clientId) {
|
|
232
392
|
try {
|
|
233
393
|
const user = await this.deps.getUser(userId);
|
|
234
394
|
if (!user) {
|