@owlmeans/server-oidc-rp 0.1.0 → 0.1.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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 OwlMeans Common — Fullstack typescript framework
3
+ Copyright (c) 2026 OwlMeans Common — Fullstack typescript framework
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/actions/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAiBjE,eAAO,MAAM,IAAI,EAAE,kBAwEjB,CAAA"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/actions/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAiBjE,eAAO,MAAM,IAAI,EAAE,kBAmFjB,CAAA"}
@@ -6,7 +6,7 @@ import { authService, DEFAULT_ALIAS } from '../consts.js';
6
6
  // import type { Client } from 'openid-client'
7
7
  import { base64urlnopad as base64 } from '@scure/base';
8
8
  import { randomBytes } from '@noble/hashes/utils';
9
- import { sha256 } from '@noble/hashes/sha256';
9
+ import { sha256 } from '@noble/hashes/sha2';
10
10
  import { cache, verifierId } from '../utils/cache.js';
11
11
  import { AUTHEN_TIMEFRAME } from '@owlmeans/server-auth';
12
12
  export const init = handleBody(async (body, ctx) => {
@@ -16,28 +16,38 @@ export const init = handleBody(async (body, ctx) => {
16
16
  const entityId = body.entity;
17
17
  const context = assertContext(ctx);
18
18
  const oidc = context.service(DEFAULT_ALIAS);
19
- let client;
20
- // if (!oidc.hasProvider({ entityId })) {
21
- /**
22
- * @TODO We need to move it to some remote resource.
23
- * And make oidc service itself use such a resource to get required client.
24
- */
25
- const [providers] = await context.module(authService.provider.list).call({
26
- params: { service: context.cfg.alias ?? context.cfg.service },
27
- query: { entityId }
28
- });
29
- if (providers.length < 1) {
30
- throw new AuthUnknown();
19
+ let client = null;
20
+ const defaultClientId = oidc.getDefault();
21
+ if (defaultClientId != null) {
22
+ client = await oidc.getClient(defaultClientId);
31
23
  }
32
- console.log("\n\n ************* \n Providers we get from remote:", providers);
33
- const provider = providers.find(p => p.def === true) ?? providers.shift();
34
- console.log("\n\nProvider we choose:", provider);
35
- console.log("************* \n\n");
36
- if (provider == null) {
37
- throw new AuthUnknown();
24
+ if (client == null) {
25
+ // if (!oidc.hasProvider({ entityId })) {
26
+ /**
27
+ * @TODO We need to move it to some remote resource.
28
+ * And make oidc service itself use such a resource to get required client.
29
+ */
30
+ const [providers] = await context.module(authService.provider.list).call({
31
+ params: { service: context.cfg.alias ?? context.cfg.service },
32
+ query: { entityId }
33
+ });
34
+ if (providers.length < 1) {
35
+ throw new AuthUnknown();
36
+ }
37
+ console.log("\n\n ************* \n Providers we get from remote:", providers);
38
+ const provider = providers.find(p => p.def === true) ?? providers.shift();
39
+ // Loaded providers can't be default otherwise we will get stuck with one of them
40
+ if (provider != null && "def" in provider) {
41
+ delete provider.def;
42
+ }
43
+ console.log("\n\nProvider we choose:", provider);
44
+ console.log("************* \n\n");
45
+ if (provider == null) {
46
+ throw new AuthUnknown();
47
+ }
48
+ oidc.registerTemporaryProvider(provider);
49
+ client = await oidc.getClient({ clientId: provider.clientId, entityId });
38
50
  }
39
- oidc.registerTemporaryProvider(provider);
40
- client = await oidc.getClient({ clientId: provider.clientId, entityId });
41
51
  // Cache provider for a while - we dont actually need to clean it up
42
52
  // setTimeout(() => provider && oidc.unregisterTemporaryProvider(provider), PROVIDER_CACHE_TTL)
43
53
  // } else {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/actions/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/actions/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oidc-client.d.ts","sourceRoot":"","sources":["../../../src/auth/plugins/oidc-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAqB,MAAM,gBAAgB,CAAA;AAgBxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAG,UAqLrF,CAAA"}
1
+ {"version":3,"file":"oidc-client.d.ts","sourceRoot":"","sources":["../../../src/auth/plugins/oidc-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAqB,MAAM,gBAAgB,CAAA;AAgBxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAG,UAqLrF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAMnD,eAAO,MAAM,YAAY,WAAW,MAAM,KAAe,WAqBxD,CAAA"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAMnD,eAAO,MAAM,YAAY,GAAI,QAAO,MAAkB,KAAG,WAqBxD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AASpD,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,WAC3D,CAAC,SAAS,gBAAgB,MAKpC,CAAA;AAED,eAAO,MAAM,cAAc,YAAa,YAAY,EAAE,aAAa,MAAM,GAAG,MAAM,EAAE,SAKnF,CAAA"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AASpD,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EACpE,SAAS,CAAC,EAAE,OAAO,gBAAgB,MAKpC,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,YAAY,EAAE,EAAE,WAAW,MAAM,GAAG,MAAM,EAAE,SAKnF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/model/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAqB,MAAM,aAAa,CAAA;AAErE,OAAO,KAAK,EAAE,SAAS,EAAyC,MAAM,YAAY,CAAA;AAKlF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAG,SAuHhF,CAAA"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/model/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAqB,MAAM,aAAa,CAAA;AAErE,OAAO,KAAK,EAAE,SAAS,EAAyC,MAAM,YAAY,CAAA;AAKlF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAG,SA2HhF,CAAA"}
@@ -42,6 +42,9 @@ export const createGateModel = (ctx) => {
42
42
  request.subject_token = record.payload.access_token;
43
43
  const response = await fetch(tokenEndpoint, await model.prepareRequest(client, request));
44
44
  if (!response.ok) {
45
+ if (response.status === 400) {
46
+ throw new AuthUnknown('invalid');
47
+ }
45
48
  console.warn(await response.text());
46
49
  return [];
47
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/model/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/model/gate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAQpD,eAAO,MAAM,uBAAuB,YACzB,YAAY,EAAE,gBACT,MAAM,WACZ,MAAM,SAkBf,CAAA"}
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAQpD,eAAO,MAAM,uBAAuB,GAClC,SAAS,YAAY,EAAE,EACvB,cAAc,MAAM,EACpB,SAAQ,MAAmB,SAkB5B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA0C,iBAAiB,EAAyC,MAAM,YAAY,CAAA;AAQlI,eAAO,MAAM,qBAAqB,WAAW,MAAM,KAAmB,iBAuOrE,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA0C,iBAAiB,EAAyC,MAAM,YAAY,CAAA;AAQlI,eAAO,MAAM,qBAAqB,GAAI,QAAO,MAAsB,KAAG,iBAuOrE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAqB,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AASxD,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,kBACpE,eAAe,KAAG,OAAO,CAAC,CAAC,kBAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAqDlF,CAAA"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAqB,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AASxD,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,MAChF,YAAY,eAAe,KAAG,OAAO,CAAC,CAAC,kBAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAqDlF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAG,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAInD,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAG,QAAQ,CAAC,aAAa,CAC1C,CAAA;AAEvD,eAAO,MAAM,UAAU,cAAe,MAAM,WAAgD,CAAA;AAC5F,eAAO,MAAM,UAAU,aAAc,MAAM,WAA+C,CAAA;AAC1F,eAAO,MAAM,SAAS,UAAW,MAAM,WAAyC,CAAA"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAG,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAInD,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAG,QAAQ,CAAC,aAAa,CAC1C,CAAA;AAEvD,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,WAAgD,CAAA;AAC5F,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,WAA+C,CAAA;AAC1F,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,WAAyC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"wrapped.d.ts","sourceRoot":"","sources":["../../src/utils/wrapped.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,OAAO,YAAa,OAAO,KAAG,kBACZ,CAAA"}
1
+ {"version":3,"file":"wrapped.d.ts","sourceRoot":"","sources":["../../src/utils/wrapped.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,KAAG,kBACZ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAWzE,eAAO,MAAM,uBAAuB,QAAO,kBA4E1C,CAAA"}
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAyC,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAW/F,eAAO,MAAM,uBAAuB,QAAO,kBA4G1C,CAAA"}
package/build/wrapper.js CHANGED
@@ -3,7 +3,7 @@ import { EnvelopeKind, makeEnvelopeModel } from '@owlmeans/basic-envelope';
3
3
  import { createService } from '@owlmeans/context';
4
4
  import { OIDC_WRAPPED_TOKEN, WRAPPED_OIDC } from '@owlmeans/oidc';
5
5
  import { cache, managedId } from './utils/cache.js';
6
- import { authService, OIDC_AUTH_LIFTETIME, OIDC_WRAP_FRESHNESS } from './consts.js';
6
+ import { authService, DEFAULT_ALIAS, OIDC_AUTH_LIFTETIME, OIDC_WRAP_FRESHNESS } from './consts.js';
7
7
  import days from 'dayjs';
8
8
  import { TRUSTED } from '@owlmeans/config';
9
9
  import { AUTH_SRV_KEY } from '@owlmeans/server-auth';
@@ -29,33 +29,62 @@ export const makeOidcWrappingService = () => {
29
29
  return { token };
30
30
  }
31
31
  record.validated = new Date();
32
- const [update] = await ctx.module(authService.auth.update)
33
- .call({ body: { token, tokenSet: record.payload } });
34
- const updateEnvelope = makeEnvelopeModel(update.token, EnvelopeKind.Token);
35
- const authManager = await trust(ctx, TRUSTED, AUTH_SRV_KEY);
36
- if (!await updateEnvelope.verify(authManager.key)) {
37
- throw new AuthenFailed();
32
+ if (ctx.hasModule(authService.auth.update)) {
33
+ const [update] = await ctx.module(authService.auth.update)
34
+ .call({ body: { token, tokenSet: record.payload } });
35
+ const updateEnvelope = makeEnvelopeModel(update.token, EnvelopeKind.Token);
36
+ const authManager = await trust(ctx, TRUSTED, AUTH_SRV_KEY);
37
+ if (!await updateEnvelope.verify(authManager.key)) {
38
+ throw new AuthenFailed();
39
+ }
40
+ const updatedAuth = updateEnvelope.message();
41
+ const updatedUser = {
42
+ ...user,
43
+ role: updatedAuth.role ?? AuthRole.Guest,
44
+ userId: updatedAuth.userId ?? user.userId,
45
+ profileId: updatedAuth.profileId,
46
+ entityId: updatedAuth.entityId ?? user.entityId,
47
+ createdAt: new Date()
48
+ };
49
+ if (updatedAuth.challenge !== user.token) {
50
+ await cache(ctx).delete(record);
51
+ updatedUser.token = updatedAuth.challenge;
52
+ record.id = managedId(updatedUser.token);
53
+ }
54
+ const trusted = await trust(ctx, TRUSTED, ctx.cfg.alias ?? ctx.cfg.service);
55
+ const authorization = await makeEnvelopeModel(OIDC_WRAPPED_TOKEN)
56
+ .send(updatedUser, null).sign(trusted.key, EnvelopeKind.Token);
57
+ record.payload = update.tokenSet;
58
+ await cache(ctx).save(record, { ttl: OIDC_AUTH_LIFTETIME / 1000 });
59
+ return { token: `${OIDC_WRAPPED_TOKEN.toUpperCase()} ${authorization}` };
38
60
  }
39
- const updatedAuth = updateEnvelope.message();
40
- const updatedUser = {
41
- ...user,
42
- role: updatedAuth.role ?? AuthRole.Guest,
43
- userId: updatedAuth.userId ?? user.userId,
44
- profileId: updatedAuth.profileId,
45
- entityId: updatedAuth.entityId ?? user.entityId,
46
- createdAt: new Date()
47
- };
48
- if (updatedAuth.challenge !== user.token) {
49
- await cache(ctx).delete(record);
50
- updatedUser.token = updatedAuth.challenge;
51
- record.id = managedId(updatedUser.token);
61
+ else if (record.payload != null) {
62
+ const oidc = ctx.service(DEFAULT_ALIAS);
63
+ const defaultClientId = oidc.getDefault();
64
+ if (defaultClientId != null) {
65
+ let tokenSet = record.payload;
66
+ const client = await oidc.getClient(defaultClientId);
67
+ if (days.unix(tokenSet.expires_at ?? 0).isBefore()) {
68
+ tokenSet = await client.refresh(tokenSet);
69
+ }
70
+ else {
71
+ const result = await client.introspect(tokenSet, 'access_token');
72
+ if (!result.active) {
73
+ throw new AuthorizationError('access-token');
74
+ }
75
+ }
76
+ const updatedUser = {
77
+ ...user,
78
+ createdAt: new Date()
79
+ };
80
+ const trusted = await trust(ctx, TRUSTED, ctx.cfg.alias ?? ctx.cfg.service);
81
+ const authorization = await makeEnvelopeModel(OIDC_WRAPPED_TOKEN)
82
+ .send(updatedUser, null).sign(trusted.key, EnvelopeKind.Token);
83
+ record.payload = tokenSet;
84
+ await cache(ctx).save(record, { ttl: OIDC_AUTH_LIFTETIME / 1000 });
85
+ return { token: `${OIDC_WRAPPED_TOKEN.toUpperCase()} ${authorization}` };
86
+ }
52
87
  }
53
- const trusted = await trust(ctx, TRUSTED, ctx.cfg.alias ?? ctx.cfg.service);
54
- const authorization = await makeEnvelopeModel(OIDC_WRAPPED_TOKEN)
55
- .send(updatedUser, null).sign(trusted.key, EnvelopeKind.Token);
56
- record.payload = update.tokenSet;
57
- await cache(ctx).save(record, { ttl: OIDC_AUTH_LIFTETIME / 1000 });
58
- return { token: `${OIDC_WRAPPED_TOKEN.toUpperCase()} ${authorization}` };
59
88
  }
60
89
  catch (err) {
61
90
  console.error(err);
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@owlmeans/server-oidc-rp",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
+ "license": "MIT",
4
5
  "type": "module",
5
6
  "scripts": {
6
7
  "build": "tsc -b",
@@ -34,28 +35,28 @@
34
35
  }
35
36
  },
36
37
  "devDependencies": {
37
- "@types/node": "^22.7.8",
38
- "nodemon": "^3.1.7",
38
+ "@types/node": "^24.10.1",
39
+ "nodemon": "^3.1.11",
39
40
  "npm-check": "^6.0.1",
40
- "typescript": "^5.6.3"
41
+ "typescript": "^5.8.3"
41
42
  },
42
43
  "dependencies": {
43
44
  "@noble/hashes": "^1.5.0",
44
- "@owlmeans/auth": "^0.1.0",
45
- "@owlmeans/auth-common": "^0.1.0",
46
- "@owlmeans/basic-envelope": "^0.1.0",
47
- "@owlmeans/client-module": "^0.1.0",
48
- "@owlmeans/config": "^0.1.0",
49
- "@owlmeans/context": "^0.1.0",
50
- "@owlmeans/did": "^0.1.0",
51
- "@owlmeans/module": "^0.1.0",
52
- "@owlmeans/oidc": "^0.1.0",
53
- "@owlmeans/resource": "^0.1.0",
54
- "@owlmeans/route": "^0.1.0",
55
- "@owlmeans/server-api": "^0.1.0",
56
- "@owlmeans/server-auth": "^0.1.0",
57
- "@owlmeans/server-context": "^0.1.0",
58
- "@owlmeans/server-module": "^0.1.0",
45
+ "@owlmeans/auth": "^0.1.2",
46
+ "@owlmeans/auth-common": "^0.1.2",
47
+ "@owlmeans/basic-envelope": "^0.1.2",
48
+ "@owlmeans/client-module": "^0.1.2",
49
+ "@owlmeans/config": "^0.1.2",
50
+ "@owlmeans/context": "^0.1.2",
51
+ "@owlmeans/did": "^0.1.2",
52
+ "@owlmeans/module": "^0.1.2",
53
+ "@owlmeans/oidc": "^0.1.2",
54
+ "@owlmeans/resource": "^0.1.2",
55
+ "@owlmeans/route": "^0.1.2",
56
+ "@owlmeans/server-api": "^0.1.2",
57
+ "@owlmeans/server-auth": "^0.1.2",
58
+ "@owlmeans/server-context": "^0.1.2",
59
+ "@owlmeans/server-module": "^0.1.2",
59
60
  "@scure/base": "^1.1.9",
60
61
  "dayjs": "^1.11.13",
61
62
  "jose": "^5.9.6",
@@ -64,8 +65,7 @@
64
65
  "peerDependencies": {
65
66
  "ajv": "*"
66
67
  },
67
- "private": false,
68
68
  "publishConfig": {
69
69
  "access": "public"
70
70
  }
71
- }
71
+ }
@@ -11,7 +11,7 @@ import { authService, DEFAULT_ALIAS } from '../consts.js'
11
11
 
12
12
  import { base64urlnopad as base64 } from '@scure/base'
13
13
  import { randomBytes } from '@noble/hashes/utils'
14
- import { sha256 } from '@noble/hashes/sha256'
14
+ import { sha256 } from '@noble/hashes/sha2'
15
15
  import { cache, verifierId } from '../utils/cache.js'
16
16
  import { AUTHEN_TIMEFRAME } from '@owlmeans/server-auth'
17
17
 
@@ -25,35 +25,46 @@ export const init: RefedModuleHandler = handleBody(async (body: OIDCAuthInitPara
25
25
  const context = assertContext<Config, Context>(ctx)
26
26
  const oidc = context.service<OidcClientService>(DEFAULT_ALIAS)
27
27
 
28
- let client: OidcClientAdapter
29
- // if (!oidc.hasProvider({ entityId })) {
30
- /**
31
- * @TODO We need to move it to some remote resource.
32
- * And make oidc service itself use such a resource to get required client.
33
- */
34
- const [providers] = await context.module<ClientModule<OidcProviderDescriptor[]>>(
35
- authService.provider.list
36
- ).call({
37
- params: { service: context.cfg.alias ?? context.cfg.service },
38
- query: { entityId }
39
- })
28
+ let client: OidcClientAdapter | null = null
40
29
 
41
- if (providers.length < 1) {
42
- throw new AuthUnknown()
30
+ const defaultClientId = oidc.getDefault()
31
+ if (defaultClientId != null) {
32
+ client = await oidc.getClient(defaultClientId)
43
33
  }
44
-
45
- console.log("\n\n ************* \n Providers we get from remote:", providers)
46
-
47
- const provider = providers.find(p => p.def === true) ?? providers.shift()
48
-
49
- console.log("\n\nProvider we choose:", provider)
50
- console.log( "************* \n\n")
51
-
52
- if (provider == null) {
53
- throw new AuthUnknown()
34
+ if (client == null) {
35
+ // if (!oidc.hasProvider({ entityId })) {
36
+ /**
37
+ * @TODO We need to move it to some remote resource.
38
+ * And make oidc service itself use such a resource to get required client.
39
+ */
40
+ const [providers] = await context.module<ClientModule<OidcProviderDescriptor[]>>(
41
+ authService.provider.list
42
+ ).call({
43
+ params: { service: context.cfg.alias ?? context.cfg.service },
44
+ query: { entityId }
45
+ })
46
+
47
+ if (providers.length < 1) {
48
+ throw new AuthUnknown()
49
+ }
50
+
51
+ console.log("\n\n ************* \n Providers we get from remote:", providers)
52
+
53
+ const provider = providers.find(p => p.def === true) ?? providers.shift()
54
+ // Loaded providers can't be default otherwise we will get stuck with one of them
55
+ if (provider != null && "def" in provider) {
56
+ delete provider.def
57
+ }
58
+
59
+ console.log("\n\nProvider we choose:", provider)
60
+ console.log("************* \n\n")
61
+
62
+ if (provider == null) {
63
+ throw new AuthUnknown()
64
+ }
65
+ oidc.registerTemporaryProvider(provider)
66
+ client = await oidc.getClient({ clientId: provider.clientId, entityId })
54
67
  }
55
- oidc.registerTemporaryProvider(provider)
56
- client = await oidc.getClient({ clientId: provider.clientId, entityId })
57
68
  // Cache provider for a while - we dont actually need to clean it up
58
69
  // setTimeout(() => provider && oidc.unregisterTemporaryProvider(provider), PROVIDER_CACHE_TTL)
59
70
  // } else {
@@ -68,8 +79,8 @@ export const init: RefedModuleHandler = handleBody(async (body: OIDCAuthInitPara
68
79
  console.log("\n\n We create verifierID: ", verifierId(challenge), verifier, " with client: ", client.getClientId(), "\n\n")
69
80
 
70
81
  await cache(context).create({
71
- id: verifierId(challenge),
72
- verifier,
82
+ id: verifierId(challenge),
83
+ verifier,
73
84
  client: client.getClientId(),
74
85
  entityId,
75
86
  }, { ttl: AUTHEN_TIMEFRAME / 1000 })
package/src/model/gate.ts CHANGED
@@ -63,6 +63,10 @@ export const createGateModel = <C extends Config, T extends Context<C>>(ctx: T):
63
63
  )
64
64
 
65
65
  if (!response.ok) {
66
+ if (response.status === 400) {
67
+ throw new AuthUnknown('invalid')
68
+ }
69
+
66
70
  console.warn(await response.text())
67
71
  return []
68
72
  }
package/src/wrapper.ts CHANGED
@@ -2,11 +2,11 @@ import { AuthenFailed, AuthorizationError, AuthRole } from '@owlmeans/auth'
2
2
  import type { Auth, AuthCredentials } from '@owlmeans/auth'
3
3
  import { EnvelopeKind, makeEnvelopeModel } from '@owlmeans/basic-envelope'
4
4
  import { createService } from '@owlmeans/context'
5
- import type { OIDCTokenUpdate, WrappedOIDCService } from '@owlmeans/oidc'
5
+ import type { CommonTokenSetParams, OIDCTokenUpdate, WrappedOIDCService } from '@owlmeans/oidc'
6
6
  import { OIDC_WRAPPED_TOKEN, WRAPPED_OIDC } from '@owlmeans/oidc'
7
7
  import { cache, managedId } from './utils/cache.js'
8
- import type { Config, Context, TokenSetParameters } from './types.js'
9
- import { authService, OIDC_AUTH_LIFTETIME, OIDC_WRAP_FRESHNESS } from './consts.js'
8
+ import type { Config, Context, OidcClientService, TokenSetParameters } from './types.js'
9
+ import { authService, DEFAULT_ALIAS, OIDC_AUTH_LIFTETIME, OIDC_WRAP_FRESHNESS } from './consts.js'
10
10
  import days from 'dayjs'
11
11
  import type { ClientModule } from '@owlmeans/client-module'
12
12
  import { TRUSTED } from '@owlmeans/config'
@@ -21,7 +21,7 @@ export const makeOidcWrappingService = (): WrappedOIDCService => {
21
21
  if (token == null) {
22
22
  throw new AuthorizationError('token')
23
23
  }
24
- const [ , authentication ] = token.split(' ')
24
+ const [, authentication] = token.split(' ')
25
25
  const envelope = makeEnvelopeModel<Auth>(authentication, EnvelopeKind.Token)
26
26
  const user = envelope.message()
27
27
 
@@ -38,42 +38,74 @@ export const makeOidcWrappingService = (): WrappedOIDCService => {
38
38
 
39
39
  record.validated = new Date()
40
40
 
41
- const [ update ] = await ctx.module<ClientModule<OIDCTokenUpdate>>(authService.auth.update)
42
- .call({ body: { token, tokenSet: record.payload } })
41
+ if (ctx.hasModule(authService.auth.update)) {
42
+ const [update] = await ctx.module<ClientModule<OIDCTokenUpdate>>(authService.auth.update)
43
+ .call({ body: { token, tokenSet: record.payload } })
43
44
 
44
- const updateEnvelope = makeEnvelopeModel<AuthCredentials>(update.token, EnvelopeKind.Token)
45
- const authManager = await trust<Config, Context>(ctx, TRUSTED, AUTH_SRV_KEY)
46
- if (!await updateEnvelope.verify(authManager.key)) {
47
- throw new AuthenFailed()
48
- }
45
+ const updateEnvelope = makeEnvelopeModel<AuthCredentials>(update.token, EnvelopeKind.Token)
46
+ const authManager = await trust<Config, Context>(ctx, TRUSTED, AUTH_SRV_KEY)
47
+ if (!await updateEnvelope.verify(authManager.key)) {
48
+ throw new AuthenFailed()
49
+ }
49
50
 
50
- const updatedAuth = updateEnvelope.message()
51
+ const updatedAuth = updateEnvelope.message()
51
52
 
52
- const updatedUser: Auth = {
53
- ...user,
54
- role: updatedAuth.role ?? AuthRole.Guest,
55
- userId: updatedAuth.userId ?? user.userId,
56
- profileId: updatedAuth.profileId,
57
- entityId: updatedAuth.entityId ?? user.entityId,
58
- createdAt: new Date()
59
- }
53
+ const updatedUser: Auth = {
54
+ ...user,
55
+ role: updatedAuth.role ?? AuthRole.Guest,
56
+ userId: updatedAuth.userId ?? user.userId,
57
+ profileId: updatedAuth.profileId,
58
+ entityId: updatedAuth.entityId ?? user.entityId,
59
+ createdAt: new Date()
60
+ }
61
+
62
+ if (updatedAuth.challenge !== user.token) {
63
+ await cache(ctx).delete(record)
64
+ updatedUser.token = updatedAuth.challenge
65
+ record.id = managedId(updatedUser.token)
66
+ }
60
67
 
61
- if (updatedAuth.challenge !== user.token) {
62
- await cache(ctx).delete(record)
63
- updatedUser.token = updatedAuth.challenge
64
- record.id = managedId(updatedUser.token)
65
- }
66
68
 
69
+ const trusted = await trust<Config, Context>(ctx, TRUSTED, ctx.cfg.alias ?? ctx.cfg.service)
70
+ const authorization = await makeEnvelopeModel<Auth>(OIDC_WRAPPED_TOKEN)
71
+ .send(updatedUser, null).sign(trusted.key, EnvelopeKind.Token)
67
72
 
68
- const trusted = await trust<Config, Context>(ctx, TRUSTED, ctx.cfg.alias ?? ctx.cfg.service)
69
- const authorization = await makeEnvelopeModel<Auth>(OIDC_WRAPPED_TOKEN)
70
- .send(updatedUser, null).sign(trusted.key, EnvelopeKind.Token)
73
+ record.payload = update.tokenSet as TokenSetParameters
71
74
 
72
- record.payload = update.tokenSet as TokenSetParameters
75
+ await cache(ctx).save(record, { ttl: OIDC_AUTH_LIFTETIME / 1000 })
73
76
 
74
- await cache(ctx).save(record, { ttl: OIDC_AUTH_LIFTETIME / 1000 })
77
+ return { token: `${OIDC_WRAPPED_TOKEN.toUpperCase()} ${authorization}` }
78
+ } else if (record.payload != null) {
79
+ const oidc = ctx.service<OidcClientService>(DEFAULT_ALIAS)
80
+ const defaultClientId = oidc.getDefault()
81
+ if (defaultClientId != null) {
82
+ let tokenSet: CommonTokenSetParams = record.payload as CommonTokenSetParams
83
+ const client = await oidc.getClient(defaultClientId)
84
+ if (days.unix(tokenSet.expires_at ?? 0).isBefore()) {
85
+ tokenSet = await client.refresh(tokenSet as TokenSetParameters) as CommonTokenSetParams
86
+ } else {
87
+ const result = await client.introspect(tokenSet as TokenSetParameters, 'access_token')
88
+ if (!result.active) {
89
+ throw new AuthorizationError('access-token')
90
+ }
91
+ }
75
92
 
76
- return { token: `${OIDC_WRAPPED_TOKEN.toUpperCase()} ${authorization}` }
93
+ const updatedUser: Auth = {
94
+ ...user,
95
+ createdAt: new Date()
96
+ }
97
+
98
+ const trusted = await trust<Config, Context>(ctx, TRUSTED, ctx.cfg.alias ?? ctx.cfg.service)
99
+ const authorization = await makeEnvelopeModel<Auth>(OIDC_WRAPPED_TOKEN)
100
+ .send(updatedUser, null).sign(trusted.key, EnvelopeKind.Token)
101
+
102
+ record.payload = tokenSet as TokenSetParameters
103
+
104
+ await cache(ctx).save(record, { ttl: OIDC_AUTH_LIFTETIME / 1000 })
105
+
106
+ return { token: `${OIDC_WRAPPED_TOKEN.toUpperCase()} ${authorization}` }
107
+ }
108
+ }
77
109
  } catch (err) {
78
110
  console.error(err)
79
111
  await cache(ctx).delete(managedId(user.token))
@@ -1 +0,0 @@
1
- {"root":["./src/consts.ts","./src/gate.ts","./src/guard.ts","./src/index.ts","./src/models.ts","./src/modules.ts","./src/service.ts","./src/types.ts","./src/wrapper.ts","./src/actions/index.ts","./src/actions/init.ts","./src/actions/process.ts","./src/auth/consts.ts","./src/auth/index.ts","./src/auth/plugins/index.ts","./src/auth/plugins/oidc-client.ts","./src/auth/plugins/types.ts","./src/model/consts.ts","./src/model/gate.ts","./src/model/types.ts","./src/utils/auth.ts","./src/utils/cache.ts","./src/utils/index.ts","./src/utils/types.ts","./src/utils/wrapped.ts"],"version":"5.6.3"}