@ddd-ts-kit/auth 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +10 -46
- package/dist/jwt/session-of-claims.d.ts.map +1 -1
- package/dist/jwt/session-of-claims.js +8 -0
- package/dist/jwt/session-of-claims.js.map +1 -1
- package/package.json +7 -7
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Gary Bourgeat
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -375,6 +375,7 @@ logging or serializing the object shows no key.
|
|
|
375
375
|
| `authenticationStrength` | `mfa` when `amr` lists `mfa` (RFC 8176), `assuranceLevel` from `acr` |
|
|
376
376
|
| `impersonatedBy` | the `sub` of the `act` claim (RFC 8693), or the claim named by `impersonatorClaim`: the id itself, or an object holding it under `sub` or `id` |
|
|
377
377
|
| `locale`, `timeZone` | `locale`, `zoneinfo` |
|
|
378
|
+
| `scopes` | `scope`, the space-separated list of OAuth 2.0, else `scp` as a list; absent when the token grants none. `HasScope` of `@ddd-ts-kit/http` reads them at the edge |
|
|
378
379
|
| `extensions` | what `toSessionExtensions(claims)` answers |
|
|
379
380
|
|
|
380
381
|
```ts
|
|
@@ -615,52 +616,15 @@ dedicated service, or keep a projection of accessible ids.
|
|
|
615
616
|
no watch API or changelog.
|
|
616
617
|
- `expand` is the trace of one check for one actor, not the userset tree of Zanzibar's Expand.
|
|
617
618
|
|
|
618
|
-
**Delegating to a dedicated service.** OpenFGA and SpiceDB implement the full model.
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
private readonly mapping: PermissionMapping,
|
|
628
|
-
) {}
|
|
629
|
-
|
|
630
|
-
async check({ actor, permission, resource }: CheckRequest): Promise<Decision> {
|
|
631
|
-
if (isAnonymous(actor)) {
|
|
632
|
-
return deny(DenialReason.anonymous);
|
|
633
|
-
}
|
|
634
|
-
if (resource === undefined) {
|
|
635
|
-
return deny(DenialReason.resourceRequired);
|
|
636
|
-
}
|
|
637
|
-
const relation = this.mapping[resource.type]?.[permission.id];
|
|
638
|
-
if (relation === undefined) {
|
|
639
|
-
return deny(DenialReason.unmappedPermission);
|
|
640
|
-
}
|
|
641
|
-
const { allowed } = await this.client.check({
|
|
642
|
-
user: `${actor.type}:${actor.id}`,
|
|
643
|
-
relation,
|
|
644
|
-
object: `${resource.type}:${resource.id}`,
|
|
645
|
-
});
|
|
646
|
-
return allowed ? ALLOWED : deny(DenialReason.noRelation);
|
|
647
|
-
}
|
|
648
|
-
|
|
649
|
-
async listAccessible({ actor, permission, resourceType }: ListRequest): Promise<AccessScope> {
|
|
650
|
-
const relation = this.mapping[resourceType]?.[permission.id];
|
|
651
|
-
if (isAnonymous(actor) || relation === undefined) {
|
|
652
|
-
return { kind: 'none' };
|
|
653
|
-
}
|
|
654
|
-
const { objects } = await this.client.listObjects({ user: `${actor.type}:${actor.id}`, relation, type: resourceType });
|
|
655
|
-
return { kind: 'ids', ids: objects.map((object) => object.slice(resourceType.length + 1)) };
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
```
|
|
659
|
-
|
|
660
|
-
With SpiceDB the same two methods call `CheckPermission` and `LookupResources`; the tuple
|
|
661
|
-
writes of the next section become `WriteRelationships`, through the outbox when the service is
|
|
662
|
-
remote, since a remote call cannot share the transaction. Hold the adapter to
|
|
663
|
-
`authorizerContract` in an integration test, and carry the consistency token the service
|
|
619
|
+
**Delegating to a dedicated service.** OpenFGA and SpiceDB implement the full model.
|
|
620
|
+
[`@ddd-ts-kit/openfga`](../openfga/README.md) answers the `RelationTupleStore` and `Authorizer`
|
|
621
|
+
ports on OpenFGA, with the authorization model generated from the same `defineSchema` and both
|
|
622
|
+
adapters held to the contract suites of this package; a project moves from
|
|
623
|
+
`RelationBasedAuthorizer` to `OpenFgaAuthorizer` by binding. SpiceDB maps the same two methods
|
|
624
|
+
to `CheckPermission` and `LookupResources`, and the tuple writes of the next section to
|
|
625
|
+
`WriteRelationships`; no adapter is shipped for it. With either service, a tuple write is a
|
|
626
|
+
remote call that cannot share the transaction: it goes after the commit, retried. Hold an adapter
|
|
627
|
+
to `authorizerContract` in an integration test, and carry the consistency token the service
|
|
664
628
|
returns in the `context` of the request if you need read-your-writes.
|
|
665
629
|
|
|
666
630
|
### Keeping relationships in sync
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-of-claims.d.ts","sourceRoot":"","sources":["../../src/jwt/session-of-claims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,oBAAoB,EAEpB,OAAO,EACP,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM;IACnD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,oBAAoB,CAAC,CAAC;IAC7F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,sBAAsB,CAAC;CACtE;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"session-of-claims.d.ts","sourceRoot":"","sources":["../../src/jwt/session-of-claims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,oBAAoB,EAEpB,OAAO,EACP,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM;IACnD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,oBAAoB,CAAC,CAAC;IAC7F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,sBAAsB,CAAC;CACtE;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAgBnH"}
|
|
@@ -17,6 +17,7 @@ export function sessionOfClaims(claims, actor, options) {
|
|
|
17
17
|
...optional('impersonatedBy', impersonatorOf(claims[options.impersonatorClaim ?? ACTOR_CLAIM])),
|
|
18
18
|
...optional('locale', textOf(claims['locale'])),
|
|
19
19
|
...optional('timeZone', textOf(claims['zoneinfo'])),
|
|
20
|
+
...optional('scopes', scopesOf(claims)),
|
|
20
21
|
extensions: options.toSessionExtensions?.(claims) ?? {},
|
|
21
22
|
};
|
|
22
23
|
}
|
|
@@ -68,4 +69,11 @@ function impersonatorOf(claim) {
|
|
|
68
69
|
const named = { ...claim };
|
|
69
70
|
return textOf(named['sub']) ?? textOf(named['id']);
|
|
70
71
|
}
|
|
72
|
+
/** `scope`, the space-separated list of RFC 8693 and OAuth 2.0, or `scp`, the list some providers write instead. */
|
|
73
|
+
function scopesOf(claims) {
|
|
74
|
+
const written = claims['scope'] ?? claims['scp'];
|
|
75
|
+
const scopes = typeof written === 'string' ? written.split(' ') : Array.isArray(written) ? written : [];
|
|
76
|
+
const kept = scopes.filter((scope) => typeof scope === 'string' && scope !== '');
|
|
77
|
+
return kept.length === 0 ? undefined : kept;
|
|
78
|
+
}
|
|
71
79
|
//# sourceMappingURL=session-of-claims.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-of-claims.js","sourceRoot":"","sources":["../../src/jwt/session-of-claims.ts"],"names":[],"mappings":"AAeA,kFAAkF;AAClF,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAmB,MAAS,EAAE,KAAY,EAAE,OAA+B;IACxG,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1C,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE;QACvG,KAAK;QACL,QAAQ,EAAE,QAAQ,IAAI,YAAY;QAClC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC;QACpE,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,GAAG,QAAQ,CAAC,wBAAwB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACzD,GAAG,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,IAAI,WAAW,CAAC,CAAC,CAAC;QAC/F,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACnD,UAAU,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;KACxD,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClG,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC;AAED,SAAS,QAAQ,CACf,MAAS,EACT,UAA0D;IAE1D,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,UAAU,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAuB,EAAE,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,QAAQ,CAA4B,GAAQ,EAAE,KAAwB;IAC7E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAgC,EAAE,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAErB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,yFAAyF;AACzF,SAAS,UAAU,CAAC,MAAc;IAChC,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7C,IAAI,UAAU,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,yFAAyF;AACzF,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GAAW,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
1
|
+
{"version":3,"file":"session-of-claims.js","sourceRoot":"","sources":["../../src/jwt/session-of-claims.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ddd-ts-kit/auth",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Authentication and authorization behind ports: actors, permissions declared per use case, role, attribute and relationship (Zanzibar-style) based authorizers, deny by default.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
"dist"
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@ddd-ts-kit/kernel": "0.
|
|
45
|
+
"@ddd-ts-kit/kernel": "0.8.0"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@ddd-ts-kit/di": "0.
|
|
49
|
-
"@ddd-ts-kit/testing": "0.
|
|
48
|
+
"@ddd-ts-kit/di": "0.8.0",
|
|
49
|
+
"@ddd-ts-kit/testing": "0.8.0",
|
|
50
50
|
"jose": "^6.0.0"
|
|
51
51
|
},
|
|
52
52
|
"peerDependenciesMeta": {
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
-
"@ddd-ts-kit/di": "0.
|
|
65
|
-
"@ddd-ts-kit/http": "0.
|
|
66
|
-
"@ddd-ts-kit/testing": "0.
|
|
64
|
+
"@ddd-ts-kit/di": "0.8.0",
|
|
65
|
+
"@ddd-ts-kit/http": "0.8.0",
|
|
66
|
+
"@ddd-ts-kit/testing": "0.8.0",
|
|
67
67
|
"jose": "^6.0.0"
|
|
68
68
|
}
|
|
69
69
|
}
|