@atlasauth/emulator-core 0.2.0 → 0.3.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/LICENSE +21 -0
- package/dist/custom-html.d.ts +57 -0
- package/dist/custom-html.js +491 -0
- package/dist/custom-html.js.map +1 -0
- package/dist/engine.d.ts +1 -1
- package/dist/engine.js +5 -1
- package/dist/engine.js.map +1 -1
- package/dist/error-catalog.js +8 -0
- package/dist/error-catalog.js.map +1 -1
- package/dist/event-gate.js +60 -2
- package/dist/event-gate.js.map +1 -1
- package/dist/generic.js +5 -1
- package/dist/generic.js.map +1 -1
- package/dist/handlers/access-signals.d.ts +48 -0
- package/dist/handlers/access-signals.js +76 -0
- package/dist/handlers/access-signals.js.map +1 -0
- package/dist/handlers/approvals.js +54 -1
- package/dist/handlers/approvals.js.map +1 -1
- package/dist/handlers/authz-data.d.ts +2 -0
- package/dist/handlers/authz-data.js +627 -0
- package/dist/handlers/authz-data.js.map +1 -0
- package/dist/handlers/authz-layers.d.ts +229 -0
- package/dist/handlers/authz-layers.js +786 -0
- package/dist/handlers/authz-layers.js.map +1 -0
- package/dist/handlers/authz-state.d.ts +80 -0
- package/dist/handlers/authz-state.js +175 -0
- package/dist/handlers/authz-state.js.map +1 -0
- package/dist/handlers/authz.js +240 -177
- package/dist/handlers/authz.js.map +1 -1
- package/dist/handlers/billing.d.ts +99 -1
- package/dist/handlers/billing.js +556 -77
- package/dist/handlers/billing.js.map +1 -1
- package/dist/handlers/cedar-ext.d.ts +35 -0
- package/dist/handlers/cedar-ext.js +174 -0
- package/dist/handlers/cedar-ext.js.map +1 -0
- package/dist/handlers/cedar.d.ts +146 -0
- package/dist/handlers/cedar.js +689 -0
- package/dist/handlers/cedar.js.map +1 -0
- package/dist/handlers/connections.d.ts +4 -1
- package/dist/handlers/connections.js +267 -38
- package/dist/handlers/connections.js.map +1 -1
- package/dist/handlers/control.js +6 -1
- package/dist/handlers/control.js.map +1 -1
- package/dist/handlers/device.js +18 -1
- package/dist/handlers/device.js.map +1 -1
- package/dist/handlers/emu3-misc.d.ts +38 -0
- package/dist/handlers/emu3-misc.js +1056 -0
- package/dist/handlers/emu3-misc.js.map +1 -0
- package/dist/handlers/emu4-actions-access.d.ts +46 -0
- package/dist/handlers/emu4-actions-access.js +107 -0
- package/dist/handlers/emu4-actions-access.js.map +1 -0
- package/dist/handlers/emu4-actions-catalog-extra.d.ts +3 -0
- package/dist/handlers/emu4-actions-catalog-extra.js +204 -0
- package/dist/handlers/emu4-actions-catalog-extra.js.map +1 -0
- package/dist/handlers/emu4-actions-catalog.d.ts +3 -0
- package/dist/handlers/emu4-actions-catalog.js +143 -0
- package/dist/handlers/emu4-actions-catalog.js.map +1 -0
- package/dist/handlers/emu4-actions-def.d.ts +50 -0
- package/dist/handlers/emu4-actions-def.js +250 -0
- package/dist/handlers/emu4-actions-def.js.map +1 -0
- package/dist/handlers/emu4-actions-sandbox.d.ts +36 -0
- package/dist/handlers/emu4-actions-sandbox.js +318 -0
- package/dist/handlers/emu4-actions-sandbox.js.map +1 -0
- package/dist/handlers/emu4-actions-typegen.d.ts +5 -0
- package/dist/handlers/emu4-actions-typegen.js +73 -0
- package/dist/handlers/emu4-actions-typegen.js.map +1 -0
- package/dist/handlers/emu4-actions.d.ts +2 -0
- package/dist/handlers/emu4-actions.js +506 -0
- package/dist/handlers/emu4-actions.js.map +1 -0
- package/dist/handlers/emu4-authz-trust.d.ts +40 -0
- package/dist/handlers/emu4-authz-trust.js +488 -0
- package/dist/handlers/emu4-authz-trust.js.map +1 -0
- package/dist/handlers/emu4-authz.d.ts +2 -0
- package/dist/handlers/emu4-authz.js +752 -0
- package/dist/handlers/emu4-authz.js.map +1 -0
- package/dist/handlers/emu4-billing-core.d.ts +23 -0
- package/dist/handlers/emu4-billing-core.js +22 -0
- package/dist/handlers/emu4-billing-core.js.map +1 -0
- package/dist/handlers/emu4-billing-x.d.ts +2 -0
- package/dist/handlers/emu4-billing-x.js +489 -0
- package/dist/handlers/emu4-billing-x.js.map +1 -0
- package/dist/handlers/emu4-billing.d.ts +14 -0
- package/dist/handlers/emu4-billing.js +846 -0
- package/dist/handlers/emu4-billing.js.map +1 -0
- package/dist/handlers/emu4-clones.d.ts +2 -0
- package/dist/handlers/emu4-clones.js +322 -0
- package/dist/handlers/emu4-clones.js.map +1 -0
- package/dist/handlers/emu4-compliance.d.ts +8 -0
- package/dist/handlers/emu4-compliance.js +39 -0
- package/dist/handlers/emu4-compliance.js.map +1 -0
- package/dist/handlers/emu4-config.d.ts +14 -0
- package/dist/handlers/emu4-config.js +148 -0
- package/dist/handlers/emu4-config.js.map +1 -0
- package/dist/handlers/emu4-cookies.d.ts +8 -0
- package/dist/handlers/emu4-cookies.js +248 -0
- package/dist/handlers/emu4-cookies.js.map +1 -0
- package/dist/handlers/emu4-erasure.d.ts +2 -0
- package/dist/handlers/emu4-erasure.js +587 -0
- package/dist/handlers/emu4-erasure.js.map +1 -0
- package/dist/handlers/emu4-federation.d.ts +8 -0
- package/dist/handlers/emu4-federation.js +18 -0
- package/dist/handlers/emu4-federation.js.map +1 -0
- package/dist/handlers/emu4-journey-math.d.ts +42 -0
- package/dist/handlers/emu4-journey-math.js +99 -0
- package/dist/handlers/emu4-journey-math.js.map +1 -0
- package/dist/handlers/emu4-messaging.d.ts +21 -0
- package/dist/handlers/emu4-messaging.js +595 -0
- package/dist/handlers/emu4-messaging.js.map +1 -0
- package/dist/handlers/emu4-minors.d.ts +7 -0
- package/dist/handlers/emu4-minors.js +408 -0
- package/dist/handlers/emu4-minors.js.map +1 -0
- package/dist/handlers/emu4-oauth-audit.d.ts +5 -0
- package/dist/handlers/emu4-oauth-audit.js +17 -0
- package/dist/handlers/emu4-oauth-audit.js.map +1 -0
- package/dist/handlers/emu4-oauth-auth.d.ts +83 -0
- package/dist/handlers/emu4-oauth-auth.js +363 -0
- package/dist/handlers/emu4-oauth-auth.js.map +1 -0
- package/dist/handlers/emu4-oauth-delivery.d.ts +68 -0
- package/dist/handlers/emu4-oauth-delivery.js +207 -0
- package/dist/handlers/emu4-oauth-delivery.js.map +1 -0
- package/dist/handlers/emu4-oauth-keys.d.ts +11 -0
- package/dist/handlers/emu4-oauth-keys.js +268 -0
- package/dist/handlers/emu4-oauth-keys.js.map +1 -0
- package/dist/handlers/emu4-oauth-pub.d.ts +36 -0
- package/dist/handlers/emu4-oauth-pub.js +420 -0
- package/dist/handlers/emu4-oauth-pub.js.map +1 -0
- package/dist/handlers/emu4-oauth.d.ts +10 -0
- package/dist/handlers/emu4-oauth.js +23 -0
- package/dist/handlers/emu4-oauth.js.map +1 -0
- package/dist/handlers/emu4-policies.d.ts +2 -0
- package/dist/handlers/emu4-policies.js +408 -0
- package/dist/handlers/emu4-policies.js.map +1 -0
- package/dist/handlers/emu4-region.d.ts +2 -0
- package/dist/handlers/emu4-region.js +189 -0
- package/dist/handlers/emu4-region.js.map +1 -0
- package/dist/handlers/emu4-saml.d.ts +12 -0
- package/dist/handlers/emu4-saml.js +532 -0
- package/dist/handlers/emu4-saml.js.map +1 -0
- package/dist/handlers/emu4-shared.d.ts +44 -0
- package/dist/handlers/emu4-shared.js +90 -0
- package/dist/handlers/emu4-shared.js.map +1 -0
- package/dist/handlers/emu4-snapshots.d.ts +38 -0
- package/dist/handlers/emu4-snapshots.js +231 -0
- package/dist/handlers/emu4-snapshots.js.map +1 -0
- package/dist/handlers/emu4-sns.d.ts +9 -0
- package/dist/handlers/emu4-sns.js +21 -0
- package/dist/handlers/emu4-sns.js.map +1 -0
- package/dist/handlers/emu4-trust-binding.d.ts +27 -0
- package/dist/handlers/emu4-trust-binding.js +344 -0
- package/dist/handlers/emu4-trust-binding.js.map +1 -0
- package/dist/handlers/emu4-trust.d.ts +35 -0
- package/dist/handlers/emu4-trust.js +543 -0
- package/dist/handlers/emu4-trust.js.map +1 -0
- package/dist/handlers/fga-engine.d.ts +78 -0
- package/dist/handlers/fga-engine.js +663 -0
- package/dist/handlers/fga-engine.js.map +1 -0
- package/dist/handlers/governance.js +3 -2
- package/dist/handlers/governance.js.map +1 -1
- package/dist/handlers/hooks.js +13 -0
- package/dist/handlers/hooks.js.map +1 -1
- package/dist/handlers/index.js +14 -1
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/machines.js +6 -0
- package/dist/handlers/machines.js.map +1 -1
- package/dist/handlers/messaging.d.ts +3 -1
- package/dist/handlers/messaging.js +455 -48
- package/dist/handlers/messaging.js.map +1 -1
- package/dist/handlers/oauth-adv.d.ts +191 -0
- package/dist/handlers/oauth-adv.js +1305 -0
- package/dist/handlers/oauth-adv.js.map +1 -0
- package/dist/handlers/oauth-flows.d.ts +25 -1
- package/dist/handlers/oauth-flows.js +111 -50
- package/dist/handlers/oauth-flows.js.map +1 -1
- package/dist/handlers/oauth.d.ts +24 -3
- package/dist/handlers/oauth.js +245 -60
- package/dist/handlers/oauth.js.map +1 -1
- package/dist/handlers/orgs.js +6 -0
- package/dist/handlers/orgs.js.map +1 -1
- package/dist/handlers/platform.d.ts +5 -0
- package/dist/handlers/platform.js +33 -15
- package/dist/handlers/platform.js.map +1 -1
- package/dist/handlers/scim.d.ts +2 -0
- package/dist/handlers/scim.js +198 -11
- package/dist/handlers/scim.js.map +1 -1
- package/dist/handlers/sessions.d.ts +2 -0
- package/dist/handlers/sessions.js +24 -16
- package/dist/handlers/sessions.js.map +1 -1
- package/dist/handlers/users.js +3 -0
- package/dist/handlers/users.js.map +1 -1
- package/dist/jwe.d.ts +18 -0
- package/dist/jwe.js +101 -0
- package/dist/jwe.js.map +1 -0
- package/dist/jws.js +2 -0
- package/dist/jws.js.map +1 -1
- package/dist/messaging-callbacks.d.ts +100 -0
- package/dist/messaging-callbacks.js +767 -0
- package/dist/messaging-callbacks.js.map +1 -0
- package/dist/openapi.d.ts +1 -0
- package/dist/openapi.js +44 -2
- package/dist/openapi.js.map +1 -1
- package/dist/parity-emu3-authz.d.ts +3 -0
- package/dist/parity-emu3-authz.js +61 -0
- package/dist/parity-emu3-authz.js.map +1 -0
- package/dist/parity-emu3-billing.d.ts +3 -0
- package/dist/parity-emu3-billing.js +25 -0
- package/dist/parity-emu3-billing.js.map +1 -0
- package/dist/parity-emu3-messaging.d.ts +3 -0
- package/dist/parity-emu3-messaging.js +27 -0
- package/dist/parity-emu3-messaging.js.map +1 -0
- package/dist/parity-emu3-misc.d.ts +2 -0
- package/dist/parity-emu3-misc.js +63 -0
- package/dist/parity-emu3-misc.js.map +1 -0
- package/dist/parity-emu3-oauth.d.ts +2 -0
- package/dist/parity-emu3-oauth.js +39 -0
- package/dist/parity-emu3-oauth.js.map +1 -0
- package/dist/parity-emu4-actions.d.ts +2 -0
- package/dist/parity-emu4-actions.js +38 -0
- package/dist/parity-emu4-actions.js.map +1 -0
- package/dist/parity-emu4-authz.d.ts +3 -0
- package/dist/parity-emu4-authz.js +68 -0
- package/dist/parity-emu4-authz.js.map +1 -0
- package/dist/parity-emu4-billing.d.ts +6 -0
- package/dist/parity-emu4-billing.js +44 -0
- package/dist/parity-emu4-billing.js.map +1 -0
- package/dist/parity-emu4-compliance.d.ts +2 -0
- package/dist/parity-emu4-compliance.js +92 -0
- package/dist/parity-emu4-compliance.js.map +1 -0
- package/dist/parity-emu4-federation.d.ts +2 -0
- package/dist/parity-emu4-federation.js +33 -0
- package/dist/parity-emu4-federation.js.map +1 -0
- package/dist/parity-emu4-messaging.d.ts +3 -0
- package/dist/parity-emu4-messaging.js +42 -0
- package/dist/parity-emu4-messaging.js.map +1 -0
- package/dist/parity-emu4-oauth.d.ts +2 -0
- package/dist/parity-emu4-oauth.js +55 -0
- package/dist/parity-emu4-oauth.js.map +1 -0
- package/dist/parity-emu4-trust.d.ts +2 -0
- package/dist/parity-emu4-trust.js +41 -0
- package/dist/parity-emu4-trust.js.map +1 -0
- package/dist/parity-routes.js +19 -1
- package/dist/parity-routes.js.map +1 -1
- package/dist/sns-cert.d.ts +9 -0
- package/dist/sns-cert.js +101 -0
- package/dist/sns-cert.js.map +1 -0
- package/dist/tokens.d.ts +69 -4
- package/dist/tokens.js +164 -38
- package/dist/tokens.js.map +1 -1
- package/package.json +2 -2
package/dist/tokens.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Engine } from './engine';
|
|
2
2
|
import type { Obj } from './openapi';
|
|
3
|
+
import { type OpDecryptAlg } from './jwe';
|
|
3
4
|
/** The issuer used when none is given: a reserved `.invalid` host, so no production verifier can ever be configured with it. */
|
|
4
5
|
export declare const DEFAULT_TEST_ISSUER = "https://emulator.atlas.invalid";
|
|
5
6
|
export interface MintSessionInput {
|
|
@@ -9,17 +10,29 @@ export interface MintSessionInput {
|
|
|
9
10
|
claims?: Obj;
|
|
10
11
|
ttlSeconds?: number;
|
|
11
12
|
}
|
|
13
|
+
/** The algorithms an instance key may use (the same list the real provider publishes). */
|
|
14
|
+
export declare const SIGNING_ALGS: readonly ["RS256", "ES256", "ES384", "PS256", "EdDSA"];
|
|
15
|
+
export type SigningAlg = (typeof SIGNING_ALGS)[number];
|
|
16
|
+
export declare const isSigningAlg: (v: unknown) => v is SigningAlg;
|
|
17
|
+
/** How long the previous key stays published after a rotation unless the caller says otherwise. */
|
|
18
|
+
export declare const DEFAULT_KEY_GRACE_S = 86400;
|
|
12
19
|
/**
|
|
13
20
|
* Real signed tokens. Keys are generated in memory on first use and never written anywhere, so a token
|
|
14
21
|
* this engine signs can only verify against this engine's own JWKS. Every token also carries
|
|
15
22
|
* `atlas_emulator: true`, and the issuer defaults to a reserved host.
|
|
23
|
+
*
|
|
24
|
+
* The key set follows the real provider: one current key signs, a staged key is published before it signs, a previous
|
|
25
|
+
* key stays published until its grace ends (the engine clock), an emergency rotation publishes only the new key.
|
|
16
26
|
*/
|
|
17
27
|
export declare class TokenService {
|
|
18
28
|
private readonly engine;
|
|
19
|
-
private
|
|
29
|
+
private keys;
|
|
20
30
|
private initializing;
|
|
21
31
|
private issuerUrl;
|
|
22
32
|
private rotations;
|
|
33
|
+
private enc;
|
|
34
|
+
/** Keys for the algorithms the OP signs responses with that differ from the instance key (as the real provider's OP key table). */
|
|
35
|
+
private opKeys;
|
|
23
36
|
constructor(engine: Engine);
|
|
24
37
|
get issuer(): string;
|
|
25
38
|
/** The HTTP server calls this once it knows its origin. Drops keys made for the old issuer. */
|
|
@@ -27,15 +40,59 @@ export declare class TokenService {
|
|
|
27
40
|
reset(): void;
|
|
28
41
|
private make;
|
|
29
42
|
private ensure;
|
|
43
|
+
/** Start signing with a staged key that is due, and drop previous keys whose grace has ended. */
|
|
44
|
+
private settle;
|
|
45
|
+
/** The clock-driven transitions, when a key exists already (an engine that never signed is left alone). */
|
|
46
|
+
settleIfStarted(): Promise<void>;
|
|
47
|
+
/** Make sure the first key exists and the clock-driven transitions have run; every entry point calls this first. */
|
|
48
|
+
ready(): Promise<void>;
|
|
30
49
|
private current;
|
|
50
|
+
private currentRec;
|
|
31
51
|
jwks(): Promise<{
|
|
32
52
|
keys: Obj[];
|
|
33
53
|
}>;
|
|
34
|
-
/**
|
|
35
|
-
|
|
54
|
+
/** The published key set a relying party reads: the signing keys, plus the encryption key once a client registered for encrypted request objects. */
|
|
55
|
+
publishedJwks(): Promise<{
|
|
56
|
+
keys: Obj[];
|
|
57
|
+
}>;
|
|
58
|
+
/** Make the key clients encrypt request objects to (and publish it). Idempotent per algorithm. */
|
|
59
|
+
ensureEncryptionKey(alg: OpDecryptAlg): Promise<Obj>;
|
|
60
|
+
/** The plaintext of a JWE addressed to one of this engine's encryption keys (by `kid`, else by `alg`); null when it cannot be decrypted. */
|
|
61
|
+
decryptEncrypted(jwe: string): Promise<string | null>;
|
|
62
|
+
/**
|
|
63
|
+
* Publish a new signing key. Immediately it signs and the old key stays published for `graceSeconds` (default 24 h);
|
|
64
|
+
* `emergency` publishes only the new key; `staged` publishes it now and starts signing at `activatesAt`.
|
|
65
|
+
* The caller checks the real provider's one-key-at-a-time rules (`keyState`).
|
|
66
|
+
*/
|
|
67
|
+
rotate(alg?: SigningAlg, opts?: {
|
|
68
|
+
graceSeconds?: number;
|
|
69
|
+
emergency?: boolean;
|
|
70
|
+
staged?: boolean;
|
|
71
|
+
activatesAt?: number;
|
|
72
|
+
trigger?: string;
|
|
73
|
+
}): Promise<{
|
|
36
74
|
kid: string;
|
|
75
|
+
alg: SigningAlg;
|
|
37
76
|
previous_kid: string;
|
|
77
|
+
previous_retires_at: number | null;
|
|
78
|
+
emergency: boolean;
|
|
79
|
+
staged?: true;
|
|
80
|
+
activates_at?: number;
|
|
38
81
|
}>;
|
|
82
|
+
/** The staged key, unpublished; null when none is staged. */
|
|
83
|
+
cancelStaged(): Promise<string | null>;
|
|
84
|
+
/** The key set as the rotation rules see it. */
|
|
85
|
+
keyState(): Promise<{
|
|
86
|
+
currentKid: string;
|
|
87
|
+
alg: SigningAlg;
|
|
88
|
+
staged: {
|
|
89
|
+
kid: string;
|
|
90
|
+
alg: string;
|
|
91
|
+
activatesAt: number;
|
|
92
|
+
} | null;
|
|
93
|
+
previousRetiresAt: number | null;
|
|
94
|
+
}>;
|
|
95
|
+
/** The published keys, newest first, with their state. */
|
|
39
96
|
signingKeys(): Promise<Obj[]>;
|
|
40
97
|
mintSession(input: MintSessionInput): Promise<{
|
|
41
98
|
jwt: string;
|
|
@@ -47,6 +104,12 @@ export declare class TokenService {
|
|
|
47
104
|
* `idToken` uses the OIDC ID-token minting path (aud, nonce, auth_time stay as given).
|
|
48
105
|
*/
|
|
49
106
|
signClaims(claims: Obj, ttlSeconds?: number): Promise<string>;
|
|
107
|
+
/**
|
|
108
|
+
* Sign claims in a chosen algorithm (an authorization response or ID token the client registered an algorithm for).
|
|
109
|
+
* The instance key signs when it already has that algorithm (or none is asked); otherwise a key of that algorithm is
|
|
110
|
+
* made once and published beside it.
|
|
111
|
+
*/
|
|
112
|
+
signClaimsAs(alg: string | null | undefined, claims: Obj, ttlSeconds?: number): Promise<string>;
|
|
50
113
|
/** Verify as a resource server would: against the engine JWKS, issuer and clock. */
|
|
51
114
|
verify(token: string): Promise<{
|
|
52
115
|
ok: true;
|
|
@@ -60,7 +123,9 @@ export declare class TokenService {
|
|
|
60
123
|
* the JWKS, issuer, `exp` and `nbf`. `verify` is the session-only check a resource server would run; this one is
|
|
61
124
|
* for the engine's own routes (machine verify, introspection, token exchange).
|
|
62
125
|
*/
|
|
63
|
-
verifyAny(token: string
|
|
126
|
+
verifyAny(token: string, opts?: {
|
|
127
|
+
ignoreExp?: boolean;
|
|
128
|
+
}): Promise<{
|
|
64
129
|
ok: true;
|
|
65
130
|
claims: Obj;
|
|
66
131
|
} | {
|
package/dist/tokens.js
CHANGED
|
@@ -1,22 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TokenService = exports.DEFAULT_TEST_ISSUER = void 0;
|
|
3
|
+
exports.TokenService = exports.DEFAULT_KEY_GRACE_S = exports.isSigningAlg = exports.SIGNING_ALGS = exports.DEFAULT_TEST_ISSUER = void 0;
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
5
|
const backend_1 = require("@atlasauth/backend");
|
|
6
6
|
const store_1 = require("./store");
|
|
7
|
+
const jws_1 = require("./jws");
|
|
8
|
+
const jwe_1 = require("./jwe");
|
|
9
|
+
const emu4_oauth_audit_1 = require("./handlers/emu4-oauth-audit");
|
|
7
10
|
/** The issuer used when none is given: a reserved `.invalid` host, so no production verifier can ever be configured with it. */
|
|
8
11
|
exports.DEFAULT_TEST_ISSUER = 'https://emulator.atlas.invalid';
|
|
12
|
+
/** The algorithms an instance key may use (the same list the real provider publishes). */
|
|
13
|
+
exports.SIGNING_ALGS = ['RS256', 'ES256', 'ES384', 'PS256', 'EdDSA'];
|
|
14
|
+
const isSigningAlg = (v) => exports.SIGNING_ALGS.includes(v);
|
|
15
|
+
exports.isSigningAlg = isSigningAlg;
|
|
16
|
+
/** How long the previous key stays published after a rotation unless the caller says otherwise. */
|
|
17
|
+
exports.DEFAULT_KEY_GRACE_S = 86_400;
|
|
9
18
|
/**
|
|
10
19
|
* Real signed tokens. Keys are generated in memory on first use and never written anywhere, so a token
|
|
11
20
|
* this engine signs can only verify against this engine's own JWKS. Every token also carries
|
|
12
21
|
* `atlas_emulator: true`, and the issuer defaults to a reserved host.
|
|
22
|
+
*
|
|
23
|
+
* The key set follows the real provider: one current key signs, a staged key is published before it signs, a previous
|
|
24
|
+
* key stays published until its grace ends (the engine clock), an emergency rotation publishes only the new key.
|
|
13
25
|
*/
|
|
14
26
|
class TokenService {
|
|
15
27
|
engine;
|
|
16
|
-
|
|
28
|
+
keys = [];
|
|
17
29
|
initializing = null;
|
|
18
30
|
issuerUrl;
|
|
19
31
|
rotations = 0;
|
|
32
|
+
enc = new Map();
|
|
33
|
+
/** Keys for the algorithms the OP signs responses with that differ from the instance key (as the real provider's OP key table). */
|
|
34
|
+
opKeys = new Map();
|
|
20
35
|
constructor(engine) {
|
|
21
36
|
this.engine = engine;
|
|
22
37
|
this.issuerUrl = engine.options.issuer ?? exports.DEFAULT_TEST_ISSUER;
|
|
@@ -29,48 +44,148 @@ class TokenService {
|
|
|
29
44
|
if (issuer === this.issuerUrl)
|
|
30
45
|
return;
|
|
31
46
|
this.issuerUrl = issuer;
|
|
32
|
-
this.
|
|
33
|
-
this.initializing = null;
|
|
34
|
-
this.rotations = 0;
|
|
47
|
+
this.reset();
|
|
35
48
|
}
|
|
36
49
|
reset() {
|
|
37
|
-
this.
|
|
50
|
+
this.keys = [];
|
|
38
51
|
this.initializing = null;
|
|
39
52
|
this.rotations = 0;
|
|
53
|
+
this.enc.clear();
|
|
54
|
+
this.opKeys.clear();
|
|
40
55
|
}
|
|
41
56
|
async make(alg) {
|
|
42
57
|
const kid = `emu-${this.engine.instanceId}-${++this.rotations}`;
|
|
43
|
-
|
|
58
|
+
// The test issuer is typed for RS256 and ES256; its key generation and signing take every algorithm of the list.
|
|
59
|
+
return (0, backend_1.createTestIssuer)({ alg: alg, issuer: this.issuerUrl, kid, now: this.engine.clock.now });
|
|
44
60
|
}
|
|
45
61
|
async ensure() {
|
|
46
|
-
this.initializing ??= this.make('RS256').then((i) => void this.
|
|
62
|
+
this.initializing ??= this.make('RS256').then((i) => void this.keys.push({ issuer: i, alg: 'RS256', activatesAt: null, graceMs: exports.DEFAULT_KEY_GRACE_S * 1000, retiresAt: null, trigger: null }));
|
|
47
63
|
await this.initializing;
|
|
48
64
|
}
|
|
65
|
+
/** Start signing with a staged key that is due, and drop previous keys whose grace has ended. */
|
|
66
|
+
settle() {
|
|
67
|
+
const now = this.engine.clock.now();
|
|
68
|
+
for (const k of this.keys) {
|
|
69
|
+
if (k.activatesAt === null || k.activatesAt > now)
|
|
70
|
+
continue;
|
|
71
|
+
const prev = this.keys.filter((x) => x !== k && x.activatesAt === null).pop();
|
|
72
|
+
const at = k.activatesAt;
|
|
73
|
+
k.activatesAt = null;
|
|
74
|
+
if (prev && prev.retiresAt === null)
|
|
75
|
+
prev.retiresAt = at + k.graceMs;
|
|
76
|
+
const data = { object: 'signing_key', kid: k.issuer.kid, alg: k.alg, previous_kid: prev?.issuer.kid ?? null, previous_retires_at: prev?.retiresAt ?? null };
|
|
77
|
+
this.engine.webhooks.emit('signing_key.activated', data);
|
|
78
|
+
(0, emu4_oauth_audit_1.recordAudit)(this.engine, 'signing_key.activated', 'system', 'instance', this.engine.instanceId, data);
|
|
79
|
+
}
|
|
80
|
+
this.keys = this.keys.filter((k) => k.retiresAt === null || k.retiresAt > now);
|
|
81
|
+
}
|
|
82
|
+
/** The clock-driven transitions, when a key exists already (an engine that never signed is left alone). */
|
|
83
|
+
async settleIfStarted() {
|
|
84
|
+
if (this.initializing)
|
|
85
|
+
await this.ready();
|
|
86
|
+
}
|
|
87
|
+
/** Make sure the first key exists and the clock-driven transitions have run; every entry point calls this first. */
|
|
88
|
+
async ready() {
|
|
89
|
+
await this.ensure();
|
|
90
|
+
this.settle();
|
|
91
|
+
}
|
|
49
92
|
current() {
|
|
50
|
-
const cur = this.
|
|
93
|
+
const cur = this.keys.filter((k) => k.activatesAt === null).pop();
|
|
51
94
|
if (!cur)
|
|
52
95
|
throw new Error('token service not initialised');
|
|
53
|
-
return cur;
|
|
96
|
+
return cur.issuer;
|
|
97
|
+
}
|
|
98
|
+
currentRec() {
|
|
99
|
+
return this.keys.filter((k) => k.activatesAt === null).pop();
|
|
54
100
|
}
|
|
55
101
|
async jwks() {
|
|
56
|
-
await this.
|
|
57
|
-
return { keys: this.
|
|
102
|
+
await this.ready();
|
|
103
|
+
return { keys: [...this.keys.flatMap((k) => k.issuer.jwks.keys), ...[...this.opKeys.values()].flatMap((i) => i.jwks.keys)] };
|
|
58
104
|
}
|
|
59
|
-
/**
|
|
60
|
-
async
|
|
61
|
-
await this.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
105
|
+
/** The published key set a relying party reads: the signing keys, plus the encryption key once a client registered for encrypted request objects. */
|
|
106
|
+
async publishedJwks() {
|
|
107
|
+
const sig = await this.jwks();
|
|
108
|
+
return { keys: [...sig.keys, ...[...this.enc.values()].map((k) => k.publicJwk)] };
|
|
109
|
+
}
|
|
110
|
+
/** Make the key clients encrypt request objects to (and publish it). Idempotent per algorithm. */
|
|
111
|
+
async ensureEncryptionKey(alg) {
|
|
112
|
+
let k = this.enc.get(alg);
|
|
113
|
+
if (!k)
|
|
114
|
+
this.enc.set(alg, (k = await (0, jwe_1.generateEncKey)(alg, `emu-enc-${this.engine.instanceId}-${alg.toLowerCase()}`)));
|
|
115
|
+
return k.publicJwk;
|
|
116
|
+
}
|
|
117
|
+
/** The plaintext of a JWE addressed to one of this engine's encryption keys (by `kid`, else by `alg`); null when it cannot be decrypted. */
|
|
118
|
+
async decryptEncrypted(jwe) {
|
|
119
|
+
try {
|
|
120
|
+
const header = JSON.parse(new TextDecoder().decode(Uint8Array.from(atob(jwe.split('.')[0].replace(/-/g, '+').replace(/_/g, '/')), (c) => c.charCodeAt(0))));
|
|
121
|
+
const key = [...this.enc.values()].find((k) => (header.kid ? k.kid === header.kid : k.alg === header.alg));
|
|
122
|
+
return key ? await (0, jwe_1.decryptJwe)(jwe, key) : null;
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Publish a new signing key. Immediately it signs and the old key stays published for `graceSeconds` (default 24 h);
|
|
130
|
+
* `emergency` publishes only the new key; `staged` publishes it now and starts signing at `activatesAt`.
|
|
131
|
+
* The caller checks the real provider's one-key-at-a-time rules (`keyState`).
|
|
132
|
+
*/
|
|
133
|
+
async rotate(alg, opts = {}) {
|
|
134
|
+
await this.ready();
|
|
135
|
+
const cur = this.currentRec();
|
|
136
|
+
const now = this.engine.clock.now();
|
|
137
|
+
const next = alg ?? cur.alg;
|
|
138
|
+
const issuer = await this.make(next);
|
|
139
|
+
const rec = { issuer, alg: next, activatesAt: null, graceMs: (opts.graceSeconds ?? exports.DEFAULT_KEY_GRACE_S) * 1000, retiresAt: null, trigger: opts.trigger ?? null };
|
|
140
|
+
if (opts.staged && !opts.emergency) {
|
|
141
|
+
rec.activatesAt = opts.activatesAt ?? now + 14 * 86_400_000;
|
|
142
|
+
rec.graceMs = (opts.graceSeconds ?? exports.DEFAULT_KEY_GRACE_S) * 1000;
|
|
143
|
+
this.keys.push(rec);
|
|
144
|
+
return { kid: issuer.kid, alg: next, previous_kid: cur.issuer.kid, previous_retires_at: rec.activatesAt + rec.graceMs, emergency: false, staged: true, activates_at: rec.activatesAt };
|
|
145
|
+
}
|
|
146
|
+
if (opts.emergency)
|
|
147
|
+
this.keys = [];
|
|
148
|
+
else
|
|
149
|
+
cur.retiresAt = now + rec.graceMs;
|
|
150
|
+
this.keys.push(rec);
|
|
151
|
+
this.settle();
|
|
152
|
+
return { kid: issuer.kid, alg: next, previous_kid: cur.issuer.kid, previous_retires_at: opts.emergency ? null : cur.retiresAt, emergency: opts.emergency === true };
|
|
153
|
+
}
|
|
154
|
+
/** The staged key, unpublished; null when none is staged. */
|
|
155
|
+
async cancelStaged() {
|
|
156
|
+
await this.ready();
|
|
157
|
+
const k = this.keys.find((x) => x.activatesAt !== null);
|
|
158
|
+
if (!k)
|
|
159
|
+
return null;
|
|
160
|
+
this.keys = this.keys.filter((x) => x !== k);
|
|
161
|
+
return k.issuer.kid;
|
|
66
162
|
}
|
|
163
|
+
/** The key set as the rotation rules see it. */
|
|
164
|
+
async keyState() {
|
|
165
|
+
await this.ready();
|
|
166
|
+
const cur = this.currentRec();
|
|
167
|
+
const staged = this.keys.find((k) => k.activatesAt !== null);
|
|
168
|
+
const prev = this.keys.filter((k) => k.retiresAt !== null).map((k) => k.retiresAt);
|
|
169
|
+
return { currentKid: cur.issuer.kid, alg: cur.alg, staged: staged ? { kid: staged.issuer.kid, alg: staged.alg, activatesAt: staged.activatesAt } : null, previousRetiresAt: prev.length ? Math.max(...prev) : null };
|
|
170
|
+
}
|
|
171
|
+
/** The published keys, newest first, with their state. */
|
|
67
172
|
async signingKeys() {
|
|
68
|
-
await this.
|
|
69
|
-
const cur = this.
|
|
70
|
-
return [...this.
|
|
173
|
+
await this.ready();
|
|
174
|
+
const cur = this.currentRec();
|
|
175
|
+
return [...this.keys].reverse().map((k) => ({
|
|
176
|
+
object: 'signing_key',
|
|
177
|
+
kid: k.issuer.kid,
|
|
178
|
+
alg: k.alg,
|
|
179
|
+
status: k === cur ? 'current' : k.activatesAt !== null ? 'next' : 'previous',
|
|
180
|
+
role: 'main',
|
|
181
|
+
retires_at: k.retiresAt,
|
|
182
|
+
...(k.activatesAt !== null ? { activates_at: k.activatesAt } : {}),
|
|
183
|
+
provider: 'local',
|
|
184
|
+
current: k === cur,
|
|
185
|
+
}));
|
|
71
186
|
}
|
|
72
187
|
async mintSession(input) {
|
|
73
|
-
await this.
|
|
188
|
+
await this.ready();
|
|
74
189
|
const ttl = input.ttlSeconds ?? 60;
|
|
75
190
|
const nowS = Math.floor(this.engine.clock.now() / 1000);
|
|
76
191
|
const claims = {
|
|
@@ -89,14 +204,29 @@ class TokenService {
|
|
|
89
204
|
* `idToken` uses the OIDC ID-token minting path (aud, nonce, auth_time stay as given).
|
|
90
205
|
*/
|
|
91
206
|
async signClaims(claims, ttlSeconds = 60) {
|
|
92
|
-
await this.
|
|
207
|
+
await this.ready();
|
|
93
208
|
const nowS = Math.floor(this.engine.clock.now() / 1000);
|
|
94
209
|
const body = { iss: this.issuerUrl, iat: nowS, exp: nowS + ttlSeconds, atlas_emulator: true, sid: undefined, azp: undefined, sv: undefined, mfa: undefined, ...claims };
|
|
95
210
|
return this.current().mintSession(body);
|
|
96
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Sign claims in a chosen algorithm (an authorization response or ID token the client registered an algorithm for).
|
|
214
|
+
* The instance key signs when it already has that algorithm (or none is asked); otherwise a key of that algorithm is
|
|
215
|
+
* made once and published beside it.
|
|
216
|
+
*/
|
|
217
|
+
async signClaimsAs(alg, claims, ttlSeconds = 60) {
|
|
218
|
+
await this.ready();
|
|
219
|
+
if (!alg || !(0, exports.isSigningAlg)(alg) || alg === this.currentRec().alg)
|
|
220
|
+
return this.signClaims(claims, ttlSeconds);
|
|
221
|
+
let issuer = this.opKeys.get(alg);
|
|
222
|
+
if (!issuer)
|
|
223
|
+
this.opKeys.set(alg, (issuer = await this.make(alg)));
|
|
224
|
+
const nowS = Math.floor(this.engine.clock.now() / 1000);
|
|
225
|
+
return issuer.mintSession({ iss: this.issuerUrl, iat: nowS, exp: nowS + ttlSeconds, atlas_emulator: true, sid: undefined, azp: undefined, sv: undefined, mfa: undefined, ...claims });
|
|
226
|
+
}
|
|
97
227
|
/** Verify as a resource server would: against the engine JWKS, issuer and clock. */
|
|
98
228
|
async verify(token) {
|
|
99
|
-
await this.
|
|
229
|
+
await this.ready();
|
|
100
230
|
const backend = new backend_1.AtlasBackend({ jwks: await this.jwks(), issuer: this.issuerUrl, now: this.engine.clock.now });
|
|
101
231
|
const r = await backend.verify(token);
|
|
102
232
|
return r.ok ? { ok: true, claims: r.claims } : { ok: false, reason: r.reason };
|
|
@@ -106,28 +236,24 @@ class TokenService {
|
|
|
106
236
|
* the JWKS, issuer, `exp` and `nbf`. `verify` is the session-only check a resource server would run; this one is
|
|
107
237
|
* for the engine's own routes (machine verify, introspection, token exchange).
|
|
108
238
|
*/
|
|
109
|
-
async verifyAny(token) {
|
|
239
|
+
async verifyAny(token, opts = {}) {
|
|
110
240
|
try {
|
|
111
|
-
const
|
|
112
|
-
if (!
|
|
241
|
+
const jwt = (0, jws_1.decodeJwt)(token);
|
|
242
|
+
if (!jwt)
|
|
113
243
|
return { ok: false, reason: 'malformed' };
|
|
114
|
-
const
|
|
115
|
-
const header = JSON.parse(new TextDecoder().decode(dec(h)));
|
|
116
|
-
const jwk = (await this.jwks()).keys.find((k) => k.kid === header.kid);
|
|
244
|
+
const jwk = (await this.jwks()).keys.find((k) => k.kid === jwt.header.kid);
|
|
117
245
|
if (!jwk)
|
|
118
246
|
return { ok: false, reason: 'unknown_key' };
|
|
119
|
-
|
|
120
|
-
if (!
|
|
247
|
+
// The key fixes the algorithm: a token naming another one never verifies (no algorithm confusion).
|
|
248
|
+
if (!(0, exports.isSigningAlg)(jwt.header.alg) || jwk.alg !== jwt.header.alg)
|
|
121
249
|
return { ok: false, reason: 'unsupported_alg' };
|
|
122
|
-
|
|
123
|
-
const ok = await crypto.subtle.verify(rsa ? { name: 'RSASSA-PKCS1-v1_5' } : { name: 'ECDSA', hash: 'SHA-256' }, key, dec(sig), new TextEncoder().encode(`${h}.${p}`));
|
|
124
|
-
if (!ok)
|
|
250
|
+
if (!(await (0, jws_1.verifyJws)(jwt, jwk)))
|
|
125
251
|
return { ok: false, reason: 'bad_signature' };
|
|
126
|
-
const claims =
|
|
252
|
+
const claims = jwt.payload;
|
|
127
253
|
const nowS = this.engine.clock.now() / 1000;
|
|
128
254
|
if (claims.iss !== this.issuerUrl)
|
|
129
255
|
return { ok: false, reason: 'wrong_issuer' };
|
|
130
|
-
if (typeof claims.exp === 'number' && claims.exp <= nowS)
|
|
256
|
+
if (!opts.ignoreExp && typeof claims.exp === 'number' && claims.exp <= nowS)
|
|
131
257
|
return { ok: false, reason: 'expired' };
|
|
132
258
|
if (typeof claims.nbf === 'number' && claims.nbf > nowS + 60)
|
|
133
259
|
return { ok: false, reason: 'not_yet_valid' };
|
package/dist/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlasauth/emulator-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "An in-memory Atlas engine driven by the OpenAPI document: stateful users, organizations, roles, API keys, machines and grants, real signed tokens, signed webhooks, the change feed and a message sink. Used by the emulator, the msw handlers and in-process tests.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"./package.json": "./package.json"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@atlasauth/backend": "0.
|
|
30
|
+
"@atlasauth/backend": "0.54.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"msw": "^2"
|