diff --git a/package-lock.json b/package-lock.json
index 170c4e372cb..7135e3f8aaa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8429,9 +8429,10 @@
}
},
"node_modules/@mongodb-js/oidc-plugin": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-plugin/-/oidc-plugin-1.0.2.tgz",
- "integrity": "sha512-hwTbkmJ31RPB5ksA6pLepnaQOBz6iurE+uH89B1IIJdxVuiO0Qz+OqpTN8vk8LZzcVDb/WbNoxqxogCWwMqFKw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-plugin/-/oidc-plugin-1.1.1.tgz",
+ "integrity": "sha512-u2t3dvUpQJeTmMvXyZu730yJzqJ3aKraQ7ELlNwpKpl1AGxL6Dd9Z2AEu9ycExZjXhyjBW/lbaWuEhdNZHEgeg==",
+ "license": "Apache-2.0",
"dependencies": {
"express": "^4.18.2",
"open": "^9.1.0",
@@ -8445,6 +8446,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
"integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -8456,6 +8458,7 @@
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
"integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
+ "license": "MIT",
"dependencies": {
"default-browser": "^4.0.0",
"define-lazy-prop": "^3.0.0",
@@ -17228,9 +17231,10 @@
"integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ=="
},
"node_modules/big-integer": {
- "version": "1.6.51",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
- "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
+ "version": "1.6.52",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
+ "license": "Unlicense",
"engines": {
"node": ">=0.6"
}
@@ -17408,6 +17412,7 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
"integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
+ "license": "MIT",
"dependencies": {
"big-integer": "^1.6.44"
},
@@ -17687,6 +17692,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
"integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
+ "license": "MIT",
"dependencies": {
"run-applescript": "^5.0.0"
},
@@ -20084,6 +20090,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
"integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
+ "license": "MIT",
"dependencies": {
"bundle-name": "^3.0.0",
"default-browser-id": "^3.0.0",
@@ -20101,6 +20108,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
"integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
+ "license": "MIT",
"dependencies": {
"bplist-parser": "^0.2.0",
"untildify": "^4.0.0"
@@ -20113,9 +20121,10 @@
}
},
"node_modules/default-browser/node_modules/execa": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
- "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
+ "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.1",
@@ -20138,6 +20147,7 @@
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
"integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
+ "license": "Apache-2.0",
"engines": {
"node": ">=14.18.0"
}
@@ -20146,6 +20156,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -20157,6 +20168,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -20165,9 +20177,10 @@
}
},
"node_modules/default-browser/node_modules/npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "license": "MIT",
"dependencies": {
"path-key": "^4.0.0"
},
@@ -20182,6 +20195,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
"integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "license": "MIT",
"dependencies": {
"mimic-fn": "^4.0.0"
},
@@ -20196,6 +20210,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -20207,6 +20222,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
"integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -27555,6 +27571,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
"integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "license": "MIT",
"dependencies": {
"is-docker": "^3.0.0"
},
@@ -27572,6 +27589,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
"integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "license": "MIT",
"bin": {
"is-docker": "cli.js"
},
@@ -39139,6 +39157,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
"integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
+ "license": "MIT",
"dependencies": {
"execa": "^5.0.0"
},
@@ -41598,6 +41617,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
"integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -42503,6 +42523,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
"integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -44320,7 +44341,7 @@
"@mongodb-js/compass-utils": "^0.6.9",
"@mongodb-js/devtools-connect": "^3.2.5",
"@mongodb-js/devtools-proxy-support": "^0.3.5",
- "@mongodb-js/oidc-plugin": "^1.0.0",
+ "@mongodb-js/oidc-plugin": "^1.1.1",
"compass-preferences-model": "^2.26.0",
"electron": "^29.4.5",
"hadron-app-registry": "^9.2.2",
@@ -48269,7 +48290,7 @@
"@mongodb-js/devtools-docker-test-envs": "^1.3.2",
"@mongodb-js/eslint-config-compass": "^1.1.4",
"@mongodb-js/mocha-config-compass": "^1.3.10",
- "@mongodb-js/oidc-plugin": "^1.0.0",
+ "@mongodb-js/oidc-plugin": "^1.1.1",
"@mongodb-js/prettier-config-compass": "^1.0.2",
"@mongodb-js/tsconfig-compass": "^1.0.4",
"@types/lodash": "^4.14.188",
@@ -56122,7 +56143,7 @@
"@mongodb-js/devtools-proxy-support": "^0.3.5",
"@mongodb-js/eslint-config-compass": "^1.1.4",
"@mongodb-js/mocha-config-compass": "^1.3.10",
- "@mongodb-js/oidc-plugin": "^1.0.0",
+ "@mongodb-js/oidc-plugin": "^1.1.1",
"@mongodb-js/prettier-config-compass": "^1.0.2",
"@mongodb-js/tsconfig-compass": "^1.0.4",
"@testing-library/react": "^12.1.5",
@@ -60018,9 +60039,9 @@
}
},
"@mongodb-js/oidc-plugin": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-plugin/-/oidc-plugin-1.0.2.tgz",
- "integrity": "sha512-hwTbkmJ31RPB5ksA6pLepnaQOBz6iurE+uH89B1IIJdxVuiO0Qz+OqpTN8vk8LZzcVDb/WbNoxqxogCWwMqFKw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-plugin/-/oidc-plugin-1.1.1.tgz",
+ "integrity": "sha512-u2t3dvUpQJeTmMvXyZu730yJzqJ3aKraQ7ELlNwpKpl1AGxL6Dd9Z2AEu9ycExZjXhyjBW/lbaWuEhdNZHEgeg==",
"requires": {
"express": "^4.18.2",
"open": "^9.1.0",
@@ -67479,9 +67500,9 @@
"integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ=="
},
"big-integer": {
- "version": "1.6.51",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
- "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg=="
+ "version": "1.6.52",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="
},
"big.js": {
"version": "5.2.2",
@@ -70013,9 +70034,9 @@
},
"dependencies": {
"execa": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
- "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
+ "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
"requires": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.1",
@@ -70044,9 +70065,9 @@
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="
},
"npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
"requires": {
"path-key": "^4.0.0"
}
@@ -80737,7 +80758,7 @@
"@mongodb-js/devtools-docker-test-envs": "^1.3.2",
"@mongodb-js/eslint-config-compass": "^1.1.4",
"@mongodb-js/mocha-config-compass": "^1.3.10",
- "@mongodb-js/oidc-plugin": "^1.0.0",
+ "@mongodb-js/oidc-plugin": "^1.1.1",
"@mongodb-js/prettier-config-compass": "^1.0.2",
"@mongodb-js/ssh-tunnel": "^2.3.3",
"@mongodb-js/tsconfig-compass": "^1.0.4",
diff --git a/packages/atlas-service/package.json b/packages/atlas-service/package.json
index 9f8b4f481a4..879cd0617ac 100644
--- a/packages/atlas-service/package.json
+++ b/packages/atlas-service/package.json
@@ -80,7 +80,7 @@
"@mongodb-js/compass-utils": "^0.6.9",
"@mongodb-js/devtools-connect": "^3.2.5",
"@mongodb-js/devtools-proxy-support": "^0.3.5",
- "@mongodb-js/oidc-plugin": "^1.0.0",
+ "@mongodb-js/oidc-plugin": "^1.1.1",
"hadron-app-registry": "^9.2.2",
"compass-preferences-model": "^2.26.0",
"electron": "^29.4.5",
diff --git a/packages/atlas-service/src/main.spec.ts b/packages/atlas-service/src/main.spec.ts
index cd89272f83d..19e9a527fd2 100644
--- a/packages/atlas-service/src/main.spec.ts
+++ b/packages/atlas-service/src/main.spec.ts
@@ -331,7 +331,7 @@ describe('CompassAuthServiceMain', function () {
} as any;
await CompassAuthService.init(preferences, {} as any);
CompassAuthService['config'] = defaultConfig;
- expect(getListenerCount(logger)).to.eq(27);
+ expect(getListenerCount(logger)).to.eq(30);
// We did all preparations, reset sinon history for easier assertions
sandbox.resetHistory();
diff --git a/packages/connection-form/src/components/advanced-options-tabs/authentication-tab/authentication-oidc.spec.tsx b/packages/connection-form/src/components/advanced-options-tabs/authentication-tab/authentication-oidc.spec.tsx
index 5117c361731..99cae4de99f 100644
--- a/packages/connection-form/src/components/advanced-options-tabs/authentication-tab/authentication-oidc.spec.tsx
+++ b/packages/connection-form/src/components/advanced-options-tabs/authentication-tab/authentication-oidc.spec.tsx
@@ -118,6 +118,27 @@ describe('Authentication OIDC Connection Form', function () {
});
});
+ it('handles the Use ID token instead of Access Token checkbox', async function () {
+ fireEvent.click(screen.getByText('Use ID token instead of Access Token'));
+ await expectToConnectWith({
+ connectionString:
+ 'mongodb://localhost:27017/?authMechanism=MONGODB-OIDC&authSource=%24external',
+ oidc: {
+ passIdTokenAsAccessToken: true,
+ },
+ });
+ });
+
+ it('handles the Use ID token instead of Access Token checkbox on and off', async function () {
+ fireEvent.click(screen.getByText('Use ID token instead of Access Token'));
+ fireEvent.click(screen.getByText('Use ID token instead of Access Token'));
+ await expectToConnectWith({
+ connectionString:
+ 'mongodb://localhost:27017/?authMechanism=MONGODB-OIDC&authSource=%24external',
+ oidc: {},
+ });
+ });
+
it('handles the Consider Target Endpoint Trusted checkbox', async function () {
fireEvent.click(screen.getByText('Consider Target Endpoint Trusted'));
await expectToConnectWith({
diff --git a/packages/connection-form/src/components/advanced-options-tabs/authentication-tab/authentication-oidc.tsx b/packages/connection-form/src/components/advanced-options-tabs/authentication-tab/authentication-oidc.tsx
index 9ac91596774..48dd18cc8a8 100644
--- a/packages/connection-form/src/components/advanced-options-tabs/authentication-tab/authentication-oidc.tsx
+++ b/packages/connection-form/src/components/advanced-options-tabs/authentication-tab/authentication-oidc.tsx
@@ -121,6 +121,38 @@ function AuthenticationOIDC({
/>
+
+ ) => {
+ if (checked) {
+ return handleFieldChanged('passIdTokenAsAccessToken', true);
+ }
+
+ return handleFieldChanged(
+ 'passIdTokenAsAccessToken',
+ undefined
+ );
+ }}
+ data-testid="oidc-pass-id-token-as-access-token"
+ id="oidc-pass-id-token-as-access-token"
+ label={
+ <>
+
+
+ Use ID tokens instead of access tokens to work around
+ misconfigured or broken identity providers. This will only
+ work if the server is configured correspondingly.
+
+ >
+ }
+ checked={!!connectionOptions.oidc?.passIdTokenAsAccessToken}
+ />
+
+
{showOIDCDeviceAuthFlow && (