oidc-spa 8.6.9 → 8.6.11

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.
@@ -543,6 +543,7 @@ function runMonkeyPatchingPrevention() {
543
543
  if (!pd.configurable) {
544
544
  continue;
545
545
  }
546
+ const target = `window.${name}.prototype.${propertyName}`;
546
547
  Object.defineProperty(original.prototype, propertyName, {
547
548
  enumerable: pd.enumerable,
548
549
  configurable: false,
@@ -550,18 +551,100 @@ function runMonkeyPatchingPrevention() {
550
551
  ? {
551
552
  get: () => pd.value,
552
553
  set: () => {
553
- throw createWriteError(`window.${name}.prototype.${propertyName}`);
554
+ throw createWriteError(target);
554
555
  }
555
556
  }
556
557
  : {
557
558
  get: pd.get,
558
559
  set: pd.set ??
559
560
  (() => {
560
- throw createWriteError(`window.${name}.prototype.${propertyName}`);
561
+ throw createWriteError(target);
561
562
  })
562
563
  })
563
564
  });
564
565
  }
566
+ for (const symbol of Object.getOwnPropertySymbols(original.prototype)) {
567
+ const pd = Object.getOwnPropertyDescriptor(original.prototype, symbol);
568
+ assert(pd !== undefined);
569
+ if (!pd.configurable) {
570
+ continue;
571
+ }
572
+ const target = `window.${name}.prototype[Symbol.${symbol.toString()}]`;
573
+ Object.defineProperty(original.prototype, symbol, {
574
+ enumerable: pd.enumerable,
575
+ configurable: false,
576
+ ...("value" in pd
577
+ ? {
578
+ get: () => pd.value,
579
+ set: () => {
580
+ throw createWriteError(target);
581
+ }
582
+ }
583
+ : {
584
+ get: pd.get,
585
+ set: pd.set ??
586
+ (() => {
587
+ throw createWriteError(target);
588
+ })
589
+ })
590
+ });
591
+ }
592
+ for (const propertyName of Object.getOwnPropertyNames(original)) {
593
+ const pd = Object.getOwnPropertyDescriptor(original, propertyName);
594
+ assert(pd !== undefined);
595
+ if (!pd.configurable) {
596
+ continue;
597
+ }
598
+ const target = `window.${name}.${propertyName}`;
599
+ Object.defineProperty(original, propertyName, {
600
+ enumerable: pd.enumerable,
601
+ configurable: false,
602
+ ...("value" in pd
603
+ ? {
604
+ get: () => pd.value,
605
+ set: () => {
606
+ throw createWriteError(target);
607
+ }
608
+ }
609
+ : {
610
+ get: pd.get,
611
+ set: pd.set ??
612
+ (() => {
613
+ throw createWriteError(target);
614
+ })
615
+ })
616
+ });
617
+ }
618
+ if (Symbol.iterator in original.prototype) {
619
+ // @ts-expect-error
620
+ const iterator_prototype = Object.getPrototypeOf(new original()[Symbol.iterator]());
621
+ for (const propertyName of Object.getOwnPropertyNames(iterator_prototype)) {
622
+ const pd = Object.getOwnPropertyDescriptor(iterator_prototype, propertyName);
623
+ assert(pd !== undefined);
624
+ if (!pd.configurable) {
625
+ continue;
626
+ }
627
+ const target = `new ${name}()[Symbol.iterator]().__proto__.${propertyName}`;
628
+ Object.defineProperty(iterator_prototype, propertyName, {
629
+ enumerable: pd.enumerable,
630
+ configurable: false,
631
+ ...("value" in pd
632
+ ? {
633
+ get: () => pd.value,
634
+ set: () => {
635
+ throw createWriteError(target);
636
+ }
637
+ }
638
+ : {
639
+ get: pd.get,
640
+ set: pd.set ??
641
+ (() => {
642
+ throw createWriteError(target);
643
+ })
644
+ })
645
+ });
646
+ }
647
+ }
565
648
  }
566
649
  Object.defineProperty(window, name, {
567
650
  configurable: false,
@@ -1 +1 @@
1
- {"version":3,"file":"tokenExfiltrationDefense.js","sourceRoot":"","sources":["../../src/core/tokenExfiltrationDefense.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenExfiltrationDefense.js","sourceRoot":"","sources":["../../src/core/tokenExfiltrationDefense.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function getDoMatchWildcardsPattern(params: {
2
+ stringWithWildcards: string;
3
+ candidate: string;
4
+ }): boolean;
@@ -0,0 +1,11 @@
1
+ export function getDoMatchWildcardsPattern(params) {
2
+ const { stringWithWildcards, candidate } = params;
3
+ if (!stringWithWildcards.includes("*")) {
4
+ return stringWithWildcards === candidate;
5
+ }
6
+ const escapedRegex = stringWithWildcards
7
+ .replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
8
+ .replace(/\\\*/g, ".*");
9
+ return new RegExp(`^${escapedRegex}$`).test(candidate);
10
+ }
11
+ //# sourceMappingURL=wildcardsMatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wildcardsMatch.js","sourceRoot":"","sources":["../../src/tools/wildcardsMatch.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,0BAA0B,CAAC,MAG1C;IACG,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAElD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,mBAAmB,KAAK,SAAS,CAAC;IAC7C,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB;SACnC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;SACtC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE5B,OAAO,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oidc-spa",
3
- "version": "8.6.9",
3
+ "version": "8.6.11",
4
4
  "description": "OIDC Client for Client Centric Web Applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -950,10 +950,15 @@ export async function createOidc_nonMemoized<
950
950
  assert(result_loginSilent.outcome !== "token refreshed using refresh token", "876995");
951
951
 
952
952
  if (result_loginSilent.outcome === "timeout") {
953
+ const { authorization_endpoint } = oidcMetadata;
954
+
955
+ assert(authorization_endpoint !== undefined, "39447394");
956
+
953
957
  return (await import("./diagnostic")).createIframeTimeoutInitializationError({
954
958
  redirectUri: homeUrlAndRedirectUri,
955
959
  clientId,
956
- issuerUri
960
+ issuerUri,
961
+ authorizationEndpointUrl: authorization_endpoint
957
962
  });
958
963
  }
959
964
 
@@ -2,6 +2,8 @@ import { OidcInitializationError } from "./OidcInitializationError";
2
2
  import { isKeycloak, createKeycloakUtils } from "../keycloak";
3
3
  import { getIsValidRemoteJson } from "../tools/getIsValidRemoteJson";
4
4
  import { WELL_KNOWN_PATH } from "./OidcMetadata";
5
+ import { assert } from "../tools/tsafe/assert";
6
+ import { getDoMatchWildcardsPattern } from "../tools/wildcardsMatch";
5
7
 
6
8
  export async function createWellKnownOidcConfigurationEndpointUnreachableInitializationError(params: {
7
9
  issuerUri: string;
@@ -90,8 +92,9 @@ export async function createIframeTimeoutInitializationError(params: {
90
92
  redirectUri: string;
91
93
  issuerUri: string;
92
94
  clientId: string;
95
+ authorizationEndpointUrl: string;
93
96
  }): Promise<OidcInitializationError> {
94
- const { redirectUri, issuerUri, clientId } = params;
97
+ const { redirectUri, issuerUri, clientId, authorizationEndpointUrl } = params;
95
98
 
96
99
  check_if_well_known_endpoint_is_reachable: {
97
100
  const isValid = await getIsValidRemoteJson(`${issuerUri}${WELL_KNOWN_PATH}`);
@@ -103,7 +106,8 @@ export async function createIframeTimeoutInitializationError(params: {
103
106
  return createWellKnownOidcConfigurationEndpointUnreachableInitializationError({ issuerUri });
104
107
  }
105
108
 
106
- iframe_blocked: {
109
+ // Investigate if framing was prevented by some header defined policies
110
+ {
107
111
  const headersOrError = await fetch(redirectUri).then(
108
112
  response => {
109
113
  if (!response.ok) {
@@ -131,62 +135,165 @@ export async function createIframeTimeoutInitializationError(params: {
131
135
 
132
136
  const headers = headersOrError;
133
137
 
134
- let key_problem = (() => {
135
- block: {
136
- const key = "Content-Security-Policy" as const;
138
+ content_security_policy_issue: {
139
+ const cspHeaderValue = headers["Content-Security-Policy"];
137
140
 
138
- const header = headers[key];
141
+ if (cspHeaderValue === null) {
142
+ break content_security_policy_issue;
143
+ }
139
144
 
140
- if (header === null) {
141
- break block;
145
+ const csp_parsed: Record<string, string[] | undefined> = Object.fromEntries(
146
+ cspHeaderValue
147
+ .split(";")
148
+ .filter(part => part !== "")
149
+ .map(statement => {
150
+ const [directive, ...values] = statement.split(" ");
151
+ assert(directive !== undefined);
152
+ assert(values.length !== 0);
153
+ return [directive, values];
154
+ })
155
+ );
156
+
157
+ frame_src_issue: {
158
+ const frameSrcValues = csp_parsed["frame-src"];
159
+
160
+ if (frameSrcValues === undefined) {
161
+ break frame_src_issue;
142
162
  }
143
163
 
144
- const hasFrameAncestorsNone = header
145
- .replace(/["']/g, "")
146
- .replace(/\s+/g, " ")
147
- .toLowerCase()
148
- .includes("frame-ancestors none");
149
-
150
- if (!hasFrameAncestorsNone) {
151
- break block;
164
+ const hasIssue = (() => {
165
+ for (const frameSrcValue of frameSrcValues) {
166
+ if (frameSrcValue === "'none'") {
167
+ return true;
168
+ }
169
+
170
+ const origin_authorizationEndpoint = new URL(authorizationEndpointUrl).origin;
171
+
172
+ if (frameSrcValue === "'self'") {
173
+ const origin_app = new URL(location.href).origin;
174
+
175
+ if (origin_app === origin_authorizationEndpoint) {
176
+ return false;
177
+ }
178
+ }
179
+
180
+ if (
181
+ getDoMatchWildcardsPattern({
182
+ candidate: origin_authorizationEndpoint,
183
+ stringWithWildcards: frameSrcValue
184
+ })
185
+ ) {
186
+ return false;
187
+ }
188
+ }
189
+
190
+ return true;
191
+ })();
192
+
193
+ if (!hasIssue) {
194
+ break frame_src_issue;
152
195
  }
153
196
 
154
- return key;
197
+ const recommendedValue = (() => {
198
+ const hostname_app = new URL(location.href).hostname;
199
+ const {
200
+ hostname: hostname_authorizationEndpoint,
201
+ origin: origin_authorizationEndpoint
202
+ } = new URL(authorizationEndpointUrl);
203
+
204
+ if (hostname_app === hostname_authorizationEndpoint) {
205
+ return "'self'";
206
+ }
207
+
208
+ const [lvl1, lvl2] = hostname_app.split(".").reverse();
209
+
210
+ if (!lvl2) {
211
+ return origin_authorizationEndpoint;
212
+ }
213
+
214
+ if (hostname_authorizationEndpoint.endsWith(`.${lvl2}.${lvl1}`)) {
215
+ return `https://*.${lvl2}.${lvl1}`;
216
+ }
217
+
218
+ return origin_authorizationEndpoint;
219
+ })();
220
+
221
+ return new OidcInitializationError({
222
+ isAuthServerLikelyDown: false,
223
+ messageOrCause: [
224
+ `Session restoration via iframe failed due to the following HTTP header on GET ${redirectUri}:`,
225
+ `\nContent-Security-Policy “frame-src”: ${frameSrcValues.join("; ")}`,
226
+ `\nThis header prevents opening an iframe to ${authorizationEndpointUrl}.`,
227
+ `\nTo fix this:`,
228
+ `\n - Update your CSP to: frame-src ${[
229
+ ...frameSrcValues.filter(v => v !== "'none'"),
230
+ recommendedValue
231
+ ]}`,
232
+ `\n - OR remove the frame-src directive from your CSP`,
233
+ `\n - OR, if you cannot change your CSP, call bootstrapOidc/createOidc with sessionRestorationMethod: "full page redirect"`,
234
+ `\n\nMore info: https://docs.oidc-spa.dev/v/v8/resources/csp-configuration`
235
+ ].join(" ")
236
+ });
155
237
  }
156
238
 
157
- block: {
158
- const key = "X-Frame-Options" as const;
159
-
160
- const header = headers[key];
239
+ frame_ancestor_issue: {
240
+ const frameAncestorsValues = csp_parsed["frame-ancestors"];
161
241
 
162
- if (header === null) {
163
- break block;
242
+ if (frameAncestorsValues === undefined) {
243
+ break frame_ancestor_issue;
164
244
  }
165
245
 
166
- const hasFrameAncestorsNone = header.toLowerCase().includes("deny");
246
+ const hasIssue =
247
+ frameAncestorsValues.includes("'none'") || !frameAncestorsValues.includes("'self'");
167
248
 
168
- if (!hasFrameAncestorsNone) {
169
- break block;
249
+ if (!hasIssue) {
250
+ break frame_ancestor_issue;
170
251
  }
171
252
 
172
- return key;
253
+ return new OidcInitializationError({
254
+ isAuthServerLikelyDown: false,
255
+ messageOrCause: [
256
+ `Session restoration via iframe failed due to the following HTTP header on GET ${redirectUri}:`,
257
+ `\nContent-Security-Policy “frame-ancestors”: ${frameAncestorsValues.join(
258
+ "; "
259
+ )}`,
260
+ `\nThis header prevents your app from being iframed by itself.`,
261
+ `\nTo fix this:`,
262
+ `\n - Update your CSP to: frame-ancestors 'self'`,
263
+ `\n - OR remove the frame-ancestors directive from your CSP`,
264
+ `\n - OR, if you cannot modify your CSP, call bootstrapOidc/createOidc with sessionRestorationMethod: "full page redirect"`,
265
+ `\n\nMore info: https://docs.oidc-spa.dev/v/v8/resources/csp-configuration`
266
+ ].join(" ")
267
+ });
173
268
  }
269
+ }
174
270
 
175
- return undefined;
176
- })();
271
+ x_frame_option_header_issue: {
272
+ const key = "X-Frame-Options" as const;
177
273
 
178
- if (key_problem === undefined) {
179
- break iframe_blocked;
180
- }
274
+ const value = headers[key];
181
275
 
182
- return new OidcInitializationError({
183
- isAuthServerLikelyDown: false,
184
- messageOrCause: [
185
- `${redirectUri} is currently served by your web server with the HTTP header \`${key_problem}: ${headers[key_problem]}\`.\n`,
186
- "This header prevents the silent sign-in process from working.\n",
187
- "Refer to this documentation page to fix this issue: https://docs.oidc-spa.dev/v/v8/resources/third-party-cookies-and-session-restoration"
188
- ].join(" ")
189
- });
276
+ if (value === null) {
277
+ break x_frame_option_header_issue;
278
+ }
279
+
280
+ const hasFrameAncestorsNone = value.toLowerCase().includes("deny");
281
+
282
+ if (!hasFrameAncestorsNone) {
283
+ break x_frame_option_header_issue;
284
+ }
285
+
286
+ return new OidcInitializationError({
287
+ isAuthServerLikelyDown: false,
288
+ messageOrCause: [
289
+ `Session restoration via iframe failed due to the following HTTP header on GET ${redirectUri}:`,
290
+ `\n${key}: ${value}`,
291
+ `\nThis header prevents your app from being framed by itself.`,
292
+ `\nTo fix this, remove the ${key} header and rely on Content-Security-Policy if you need to restrict framing.`,
293
+ `\n\nMore info: https://docs.oidc-spa.dev/v/v8/resources/csp-configuration`
294
+ ].join(" ")
295
+ });
296
+ }
190
297
  }
191
298
 
192
299
  // Here we know that the server is not down and that the issuer_uri is correct
@@ -225,8 +332,8 @@ export async function createIframeTimeoutInitializationError(params: {
225
332
  ];
226
333
  })(),
227
334
  "\n\n",
228
- "If nothing works, you can try disabling the use of iframe: https://docs.oidc-spa.dev/resources/iframe-related-issues\n",
229
- "with some OIDC provider it might solve the issue."
335
+ `If nothing works, or if you see in the console a message mentioning 'refused to frame' there might be a problem with your CSP.`,
336
+ `Read more: https://docs.oidc-spa.dev/v/v8/resources/csp-configuration`
230
337
  ].join(" ")
231
338
  });
232
339
  }
@@ -776,6 +776,8 @@ function runMonkeyPatchingPrevention() {
776
776
  continue;
777
777
  }
778
778
 
779
+ const target = `window.${name}.prototype.${propertyName}`;
780
+
779
781
  Object.defineProperty(original.prototype, propertyName, {
780
782
  enumerable: pd.enumerable,
781
783
  configurable: false,
@@ -783,7 +785,39 @@ function runMonkeyPatchingPrevention() {
783
785
  ? {
784
786
  get: () => pd.value,
785
787
  set: () => {
786
- throw createWriteError(`window.${name}.prototype.${propertyName}`);
788
+ throw createWriteError(target);
789
+ }
790
+ }
791
+ : {
792
+ get: pd.get,
793
+ set:
794
+ pd.set ??
795
+ (() => {
796
+ throw createWriteError(target);
797
+ })
798
+ })
799
+ });
800
+ }
801
+
802
+ for (const symbol of Object.getOwnPropertySymbols(original.prototype)) {
803
+ const pd = Object.getOwnPropertyDescriptor(original.prototype, symbol);
804
+
805
+ assert(pd !== undefined);
806
+
807
+ if (!pd.configurable) {
808
+ continue;
809
+ }
810
+
811
+ const target = `window.${name}.prototype[Symbol.${symbol.toString()}]`;
812
+
813
+ Object.defineProperty(original.prototype, symbol, {
814
+ enumerable: pd.enumerable,
815
+ configurable: false,
816
+ ...("value" in pd
817
+ ? {
818
+ get: () => pd.value,
819
+ set: () => {
820
+ throw createWriteError(target);
787
821
  }
788
822
  }
789
823
  : {
@@ -791,11 +825,80 @@ function runMonkeyPatchingPrevention() {
791
825
  set:
792
826
  pd.set ??
793
827
  (() => {
794
- throw createWriteError(`window.${name}.prototype.${propertyName}`);
828
+ throw createWriteError(target);
795
829
  })
796
830
  })
797
831
  });
798
832
  }
833
+
834
+ for (const propertyName of Object.getOwnPropertyNames(original)) {
835
+ const pd = Object.getOwnPropertyDescriptor(original, propertyName);
836
+
837
+ assert(pd !== undefined);
838
+
839
+ if (!pd.configurable) {
840
+ continue;
841
+ }
842
+
843
+ const target = `window.${name}.${propertyName}`;
844
+
845
+ Object.defineProperty(original, propertyName, {
846
+ enumerable: pd.enumerable,
847
+ configurable: false,
848
+ ...("value" in pd
849
+ ? {
850
+ get: () => pd.value,
851
+ set: () => {
852
+ throw createWriteError(target);
853
+ }
854
+ }
855
+ : {
856
+ get: pd.get,
857
+ set:
858
+ pd.set ??
859
+ (() => {
860
+ throw createWriteError(target);
861
+ })
862
+ })
863
+ });
864
+ }
865
+
866
+ if (Symbol.iterator in original.prototype) {
867
+ // @ts-expect-error
868
+ const iterator_prototype = Object.getPrototypeOf(new original()[Symbol.iterator]());
869
+
870
+ for (const propertyName of Object.getOwnPropertyNames(iterator_prototype)) {
871
+ const pd = Object.getOwnPropertyDescriptor(iterator_prototype, propertyName);
872
+
873
+ assert(pd !== undefined);
874
+
875
+ if (!pd.configurable) {
876
+ continue;
877
+ }
878
+
879
+ const target = `new ${name}()[Symbol.iterator]().__proto__.${propertyName}`;
880
+
881
+ Object.defineProperty(iterator_prototype, propertyName, {
882
+ enumerable: pd.enumerable,
883
+ configurable: false,
884
+ ...("value" in pd
885
+ ? {
886
+ get: () => pd.value,
887
+ set: () => {
888
+ throw createWriteError(target);
889
+ }
890
+ }
891
+ : {
892
+ get: pd.get,
893
+ set:
894
+ pd.set ??
895
+ (() => {
896
+ throw createWriteError(target);
897
+ })
898
+ })
899
+ });
900
+ }
901
+ }
799
902
  }
800
903
 
801
904
  Object.defineProperty(window, name, {
@@ -0,0 +1,16 @@
1
+ export function getDoMatchWildcardsPattern(params: {
2
+ stringWithWildcards: string;
3
+ candidate: string;
4
+ }): boolean {
5
+ const { stringWithWildcards, candidate } = params;
6
+
7
+ if (!stringWithWildcards.includes("*")) {
8
+ return stringWithWildcards === candidate;
9
+ }
10
+
11
+ const escapedRegex = stringWithWildcards
12
+ .replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
13
+ .replace(/\\\*/g, ".*");
14
+
15
+ return new RegExp(`^${escapedRegex}$`).test(candidate);
16
+ }
@@ -0,0 +1,4 @@
1
+ export declare function getDoMatchWildcardsPattern(params: {
2
+ stringWithWildcards: string;
3
+ candidate: string;
4
+ }): boolean;