diff --git a/src/ops/ConfigOps.ts b/src/ops/ConfigOps.ts index cb08e0489..b2bb50f95 100644 --- a/src/ops/ConfigOps.ts +++ b/src/ops/ConfigOps.ts @@ -494,178 +494,174 @@ export async function exportFullConfiguration({ ...config.global, } as FullGlobalExportInterface; - // Clean up duplicates - if (globalConfig.idm) { - Object.keys(globalConfig.idm) - .filter( - (k) => - k === 'ui/themerealm' || - k === 'sync' || - k.startsWith('mapping/') || - k.startsWith('emailTemplate/') - ) - .forEach((k) => delete globalConfig.idm[k]); - } + //Clean up global duplicates + if (globalConfig.idm) { + Object.keys(globalConfig.idm) + .filter( + (k) => + k === 'ui/themerealm' || + k === 'sync' || + k.startsWith('mapping/') || + k.startsWith('emailTemplate/') + ) + .forEach((k) => delete globalConfig.idm[k]); } const realmConfig = {}; - if (!onlyGlobal || onlyRealm) { - // Export realm configs - const activeRealm = state.getRealm(); - for (const realm of Object.keys(config.realm)) { - const currentRealm = getRealmUsingExportFormat(realm); - if ( - onlyRealm && - (activeRealm.startsWith('/') ? activeRealm : '/' + activeRealm) !== - currentRealm - ) { - continue; - } - state.setRealm(currentRealm); - // Export saml2 providers and circle of trusts - let saml = ( - (await exportWithErrorHandling( - exportSaml2Providers, - stateObj, - errors - )) as CirclesOfTrustExportInterface - )?.saml; - const cotExport = await exportWithErrorHandling( - exportCirclesOfTrust, + const currentRealm = state.getRealm(); + for (const realm of Object.keys(config.realm)) { + state.setRealm(getRealmUsingExportFormat(realm)); + //Export saml2 providers and circle of trusts + let saml = ( + (await exportWithErrorHandling( + exportSaml2Providers, stateObj, errors - ); - if (saml) { - saml.cot = cotExport?.saml.cot; - } else { - saml = cotExport?.saml; - } - realmConfig[realm] = { - agentGroup: ( - await exportWithErrorHandling(exportAgentGroups, stateObj, errors) - )?.agentGroup, - agent: ( - await exportWithErrorHandling(exportAgents, realmStateObj, errors) - )?.agent, - application: ( - await exportWithErrorHandling( - exportOAuth2Clients, - { - options: { deps: false, useStringArrays }, - state, - }, - errors - ) - )?.application, - authentication: ( - await exportWithErrorHandling( - exportAuthenticationSettings, - realmStateObj, - errors - ) - )?.authentication, - idp: ( - await exportWithErrorHandling( - exportSocialIdentityProviders, - stateObj, - errors - ) - )?.idp, - trees: ( - await exportWithErrorHandling( - exportJourneys, - { - options: { deps: false, useStringArrays, coords }, - state, - }, - errors - ) - )?.trees, - managedApplication: ( - await exportWithErrorHandling( - exportApplications, - { - options: { deps: false, useStringArrays }, - state, - }, - errors, - isPlatformDeployment - ) - )?.managedApplication, - policy: ( - await exportWithErrorHandling( - exportPolicies, - { - options: { deps: false, prereqs: false, useStringArrays }, - state, - }, - errors - ) - )?.policy, - policyset: ( - await exportWithErrorHandling( - exportPolicySets, - { - options: { deps: false, prereqs: false, useStringArrays }, - state, - }, - errors - ) - )?.policyset, - resourcetype: ( - await exportWithErrorHandling(exportResourceTypes, stateObj, errors) - )?.resourcetype, - saml, - script: ( - await exportWithErrorHandling( - exportScripts, - { - options: { - deps: false, - includeDefault, - useStringArrays, - }, - state, - }, - errors - ) - )?.script, - secretstore: ( - await exportWithErrorHandling( - exportSecretStores, - realmStateObj, - errors, - isClassicDeployment - ) - )?.secretstore, - service: ( - await exportWithErrorHandling(exportServices, realmStateObj, errors) - )?.service, - theme: ( - await exportWithErrorHandling( - exportThemes, - { - state, - }, - errors, - isPlatformDeployment - ) - )?.theme, - trustedJwtIssuer: ( - await exportWithErrorHandling( - exportOAuth2TrustedJwtIssuers, - { - options: { deps: false, useStringArrays }, - state, + )) as CirclesOfTrustExportInterface + )?.saml; + const cotExport = await exportWithErrorHandling( + exportCirclesOfTrust, + stateObj, + errors + ); + if (saml) { + saml.cot = cotExport?.saml.cot; + } else { + saml = cotExport?.saml; + } + realmConfig[realm] = { + agentGroup: ( + await exportWithErrorHandling(exportAgentGroups, stateObj, errors) + )?.agentGroup, + agent: ( + await exportWithErrorHandling(exportAgents, realmStateObj, errors) + )?.agent, + application: ( + await exportWithErrorHandling( + exportOAuth2Clients, + { + options: { deps: false, useStringArrays }, + state, + }, + errors + ) + )?.application, + authentication: ( + await exportWithErrorHandling( + exportAuthenticationSettings, + realmStateObj, + errors + ) + )?.authentication, + idp: ( + await exportWithErrorHandling( + exportSocialIdentityProviders, + stateObj, + errors + ) + )?.idp, + trees: ( + await exportWithErrorHandling( + exportJourneys, + { + options: { deps: false, useStringArrays, coords }, + state, + }, + errors + ) + )?.trees, + managedApplication: ( + await exportWithErrorHandling( + exportApplications, + { + options: { deps: false, useStringArrays }, + state, + }, + errors, + isPlatformDeployment + ) + )?.managedApplication, + policy: ( + await exportWithErrorHandling( + exportPolicies, + { + options: { deps: false, prereqs: false, useStringArrays }, + state, + }, + errors + ) + )?.policy, + policyset: ( + await exportWithErrorHandling( + exportPolicySets, + { + options: { deps: false, prereqs: false, useStringArrays }, + state, + }, + errors + ) + )?.policyset, + resourcetype: ( + await exportWithErrorHandling(exportResourceTypes, stateObj, errors) + )?.resourcetype, + saml, + script: ( + await exportWithErrorHandling( + exportScripts, + { + options: { + deps: false, + includeDefault, + useStringArrays, }, - errors - ) - )?.trustedJwtIssuer, - ...config.realm[realm], - }; + state, + }, + errors + ) + )?.script, + secretstore: ( + await exportWithErrorHandling( + exportSecretStores, + realmStateObj, + errors, + isClassicDeployment + ) + )?.secretstore, + service: ( + await exportWithErrorHandling(exportServices, realmStateObj, errors) + )?.service, + theme: ( + await exportWithErrorHandling( + exportThemes, + { + state, + }, + errors, + isPlatformDeployment + ) + )?.theme, + trustedJwtIssuer: ( + await exportWithErrorHandling( + exportOAuth2TrustedJwtIssuers, + { + options: { deps: false, useStringArrays }, + state, + }, + errors + ) + )?.trustedJwtIssuer, + ...config.realm[realm], + }; + //Clean up realm duplicates + if ( + realmConfig[realm].service && + realmConfig[realm].service['SocialIdentityProviders'] + ) { + delete realmConfig[realm].service['SocialIdentityProviders'] + .nextDescendents; } - state.setRealm(activeRealm); } + state.setRealm(currentRealm); if (throwErrors && errors.length > 0) { throw new FrodoError(`Error exporting full config`, errors); diff --git a/src/ops/ServiceOps.ts b/src/ops/ServiceOps.ts index 16d3ec6b0..56f7117d5 100644 --- a/src/ops/ServiceOps.ts +++ b/src/ops/ServiceOps.ts @@ -405,7 +405,7 @@ export async function putFullService({ }); // return fast if no next descendents supplied - if (nextDescendents.length === 0) { + if (!nextDescendents || nextDescendents.length === 0) { debugMessage({ message: `ServiceOps.putFullService: end (w/o descendents)`, state, diff --git a/src/test/snapshots/ops/ConfigOps.test.js.snap b/src/test/snapshots/ops/ConfigOps.test.js.snap index 134e90a94..c32890a4e 100644 --- a/src/test/snapshots/ops/ConfigOps.test.js.snap +++ b/src/test/snapshots/ops/ConfigOps.test.js.snap @@ -17195,58 +17195,6 @@ exports[`ConfigOps Classic Tests exportFullConfiguration() 6: Export everything }, "enabled": true, "location": "/", - "nextDescendents": [ - { - "_id": "Google Test", - "_type": { - "_id": "googleConfig", - "collection": true, - "name": "Client configuration for Google.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "test", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://accounts.google.com", - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://testurl.com", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "openid", - "profile", - "email", - ], - "tokenEndpoint": "https://www.googleapis.com/oauth2/v4/token", - "transform": "58d29080-4563-480b-89bb-1e7719776a21", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #fff; color: #757575; border-color: #ddd;", - "buttonCustomStyleHover": "color: #6d6d6d; background-color: #eee; border-color: #ccc;", - "buttonDisplayName": "Google", - "buttonImage": "images/g-logo.png", - "iconBackground": "#4184f3", - "iconClass": "fa-google", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://www.googleapis.com/oauth2/v3/userinfo", - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://accounts.google.com/.well-known/openid-configuration", - }, - ], }, "amSessionPropertyWhitelist": { "_id": "", @@ -26487,7 +26435,6 @@ exports[`ConfigOps Classic Tests exportFullConfiguration() 6: Export everything }, "enabled": true, "location": "/first", - "nextDescendents": [], }, "id-repositories": { "_id": "", @@ -34280,7 +34227,6 @@ exports[`ConfigOps Classic Tests exportFullConfiguration() 6: Export everything }, "enabled": true, "location": "/first/second", - "nextDescendents": [], }, "id-repositories": { "_id": "", @@ -51051,58 +50997,6 @@ exports.logDebug = (log, debugMessage) => log.debug(debugMessage); }, "enabled": true, "location": "/", - "nextDescendents": [ - { - "_id": "Google Test", - "_type": { - "_id": "googleConfig", - "collection": true, - "name": "Client configuration for Google.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "test", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://accounts.google.com", - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://testurl.com", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "openid", - "profile", - "email", - ], - "tokenEndpoint": "https://www.googleapis.com/oauth2/v4/token", - "transform": "58d29080-4563-480b-89bb-1e7719776a21", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #fff; color: #757575; border-color: #ddd;", - "buttonCustomStyleHover": "color: #6d6d6d; background-color: #eee; border-color: #ccc;", - "buttonDisplayName": "Google", - "buttonImage": "images/g-logo.png", - "iconBackground": "#4184f3", - "iconClass": "fa-google", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://www.googleapis.com/oauth2/v3/userinfo", - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://accounts.google.com/.well-known/openid-configuration", - }, - ], }, "amSessionPropertyWhitelist": { "_id": "", @@ -56363,7 +56257,6 @@ exports.logDebug = (log, debugMessage) => log.debug(debugMessage); }, "enabled": true, "location": "/first", - "nextDescendents": [], }, "id-repositories": { "_id": "", @@ -60270,7 +60163,6 @@ exports.logDebug = (log, debugMessage) => log.debug(debugMessage); }, "enabled": true, "location": "/first/second", - "nextDescendents": [], }, "id-repositories": { "_id": "", @@ -176348,332 +176240,6 @@ isGoogleEligible; }, "enabled": true, "location": "/alpha", - "nextDescendents": [ - { - "_id": "google", - "_type": { - "_id": "googleConfig", - "collection": true, - "name": "Client configuration for Google.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "297338177925-mho17cgnm540s2gre8h27feb6sbs1msd.apps.googleusercontent.com", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://accounts.google.com", - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "openid", - "profile", - "email", - ], - "tokenEndpoint": "https://www.googleapis.com/oauth2/v4/token", - "transform": "58d29080-4563-480b-89bb-1e7719776a21", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #fff; color: #757575; border-color: #ddd;", - "buttonCustomStyleHover": "color: #6d6d6d; background-color: #eee; border-color: #ccc;", - "buttonDisplayName": "Google", - "buttonImage": "images/g-logo.png", - "iconBackground": "#4184f3", - "iconClass": "fa-google", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://www.googleapis.com/oauth2/v3/userinfo", - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://accounts.google.com/.well-known/openid-configuration", - }, - { - "_id": "github", - "_type": { - "_id": "oauth2Config", - "collection": true, - "name": "Client configuration for providers that implement the OAuth2 specification.", - }, - "authenticationIdKey": "id", - "authorizationEndpoint": "https://github.com/login/oauth/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "bdae6d141d4dcf95a630", - "enabled": true, - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "user", - ], - "tokenEndpoint": "https://ig.mytestrun.com/login/oauth/access_token", - "transform": "23143919-6b78-40c3-b25e-beca19b229e0", - "uiConfig": { - "buttonCustomStyle": "background-color: #fff; color: #757575; border-color: #ddd;", - "buttonCustomStyleHover": "color: #6d6d6d; background-color: #eee; border-color: #ccc;", - "buttonDisplayName": "GitHub", - "buttonImage": "https://cdn-icons-png.flaticon.com/512/25/25231.png", - "iconBackground": "#4184f3", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://ig.mytestrun.com/user", - }, - { - "_id": "apple-stoyan", - "_type": { - "_id": "appleConfig", - "collection": true, - "name": "Client configuration for Apple.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://appleid.apple.com/auth/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "CHANGE ME", - "enableNativeNonce": true, - "enabled": false, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://appleid.apple.com", - "issuerComparisonCheckType": "EXACT", - "jwksUriEndpoint": "https://appleid.apple.com/auth/keys", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectAfterFormPostURI": "https://openam-volker-dev.forgeblocks.com/login", - "redirectURI": "https://openam-volker-dev.forgeblocks.com/am/oauth2/alpha/client/form_post/apple-stoyan", - "requestNativeAppForUserInfo": false, - "responseMode": "FORM_POST", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "name", - "email", - ], - "tokenEndpoint": "https://appleid.apple.com/auth/token", - "transform": "484e6246-dbc6-4288-97e6-54e55431402e", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #000000; color: #ffffff; border-color: #000000;", - "buttonCustomStyleHover": "background-color: #000000; color: #ffffff; border-color: #000000;", - "buttonDisplayName": "Apple", - "buttonImage": "/login/images/apple-logo.png", - "iconBackground": "#000000", - "iconClass": "fa-apple", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://appleid.apple.com/.well-known/openid-configuration", - }, - { - "_id": "apple_web", - "_type": { - "_id": "appleConfig", - "collection": true, - "name": "Client configuration for Apple.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://appleid.apple.com/auth/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "io.scheuber.idc.signinWithApple.service", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://appleid.apple.com", - "issuerComparisonCheckType": "EXACT", - "jwksUriEndpoint": "https://appleid.apple.com/auth/keys", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectAfterFormPostURI": "https://idc.scheuber.io/login", - "redirectURI": "https://idc.scheuber.io/am/oauth2/client/form_post/apple_web", - "requestNativeAppForUserInfo": false, - "responseMode": "FORM_POST", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "name", - "email", - ], - "tokenEndpoint": "https://appleid.apple.com/auth/token", - "transform": "484e6246-dbc6-4288-97e6-54e55431402e", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #000000; color: #ffffff; border-color: #000000;", - "buttonCustomStyleHover": "background-color: #000000; color: #ffffff; border-color: #000000;", - "buttonDisplayName": "Apple", - "buttonImage": "/login/images/apple-logo.png", - "iconBackground": "#000000", - "iconClass": "fa-apple", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://appleid.apple.com/.well-known/openid-configuration", - }, - { - "_id": "okta-trial-5735851", - "_type": { - "_id": "oidcConfig", - "collection": true, - "name": "Client configuration for providers that implement the OpenID Connect specification.", - }, - "acrValues": [], - "authenticationIdKey": "id", - "authorizationEndpoint": "https://trial-5735851.okta.com/oauth2/v1/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "0oa13r2cp29Rynmyw697", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://trial-5735851.okta.com", - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "openid", - "profile", - "email", - ], - "tokenEndpoint": "https://trial-5735851.okta.com/oauth2/v1/token", - "transform": "6325cf19-a49b-471e-8d26-7e4df76df0e2", - "uiConfig": { - "buttonDisplayName": "Okta", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://trial-5735851.okta.com/oauth2/v1/userinfo", - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://trial-5735851.okta.com/.well-known/openid-configuration", - }, - { - "_id": "adfs", - "_type": { - "_id": "oidcConfig", - "collection": true, - "name": "Client configuration for providers that implement the OpenID Connect specification.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://adfs.mytestrun.com/adfs/oauth2/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "aa9a179e-cdba-4db8-8477-3d1069d5ec04", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://adfs.mytestrun.com/adfs", - "issuerComparisonCheckType": "EXACT", - "jwksUriEndpoint": "https://adfs.mytestrun.com/adfs/discovery/keys", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "RS256", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "openid", - "profile", - "email", - ], - "tokenEndpoint": "https://adfs.mytestrun.com/adfs/oauth2/token", - "transform": "dbe0bf9a-72aa-49d5-8483-9db147985a47", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;", - "buttonCustomStyleHover": "background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;", - "buttonDisplayName": "Microsoft ADFS", - "buttonImage": "/login/images/microsoft-logo.png", - "iconBackground": "#0078d7", - "iconClass": "fa-windows", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://adfs.mytestrun.com/adfs/.well-known/openid-configuration", - }, - { - "_id": "azure", - "_type": { - "_id": "microsoftConfig", - "collection": true, - "name": "Client configuration for Microsoft.", - }, - "authenticationIdKey": "id", - "authorizationEndpoint": "https://login.microsoftonline.com/711ffa9c-5972-4713-ace3-688c9732614a/oauth2/v2.0/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "c42a3dc8-f276-496b-a722-269f131cc21c", - "enabled": true, - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "User.Read", - "openid", - ], - "tokenEndpoint": "https://login.microsoftonline.com/711ffa9c-5972-4713-ace3-688c9732614a/oauth2/v2.0/token", - "transform": "73cecbfc-dad0-4395-be6a-6858ee3a80e5", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;", - "buttonCustomStyleHover": "background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;", - "buttonDisplayName": "Microsoft Azure", - "buttonImage": "/login/images/microsoft-logo.png", - "iconBackground": "#0078d7", - "iconClass": "fa-windows", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://graph.microsoft.com/v1.0/me", - }, - ], }, "baseurl": { "_id": "", @@ -193699,7 +193265,6 @@ isGoogleEligible; }, "enabled": true, "location": "/bravo", - "nextDescendents": [], }, "TNTPPingOneService": { "_id": "", @@ -246954,332 +246519,6 @@ outcome = "true"; }, "enabled": true, "location": "/alpha", - "nextDescendents": [ - { - "_id": "google", - "_type": { - "_id": "googleConfig", - "collection": true, - "name": "Client configuration for Google.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "297338177925-mho17cgnm540s2gre8h27feb6sbs1msd.apps.googleusercontent.com", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://accounts.google.com", - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "openid", - "profile", - "email", - ], - "tokenEndpoint": "https://www.googleapis.com/oauth2/v4/token", - "transform": "58d29080-4563-480b-89bb-1e7719776a21", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #fff; color: #757575; border-color: #ddd;", - "buttonCustomStyleHover": "color: #6d6d6d; background-color: #eee; border-color: #ccc;", - "buttonDisplayName": "Google", - "buttonImage": "images/g-logo.png", - "iconBackground": "#4184f3", - "iconClass": "fa-google", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://www.googleapis.com/oauth2/v3/userinfo", - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://accounts.google.com/.well-known/openid-configuration", - }, - { - "_id": "github", - "_type": { - "_id": "oauth2Config", - "collection": true, - "name": "Client configuration for providers that implement the OAuth2 specification.", - }, - "authenticationIdKey": "id", - "authorizationEndpoint": "https://github.com/login/oauth/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "bdae6d141d4dcf95a630", - "enabled": true, - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "user", - ], - "tokenEndpoint": "https://ig.mytestrun.com/login/oauth/access_token", - "transform": "23143919-6b78-40c3-b25e-beca19b229e0", - "uiConfig": { - "buttonCustomStyle": "background-color: #fff; color: #757575; border-color: #ddd;", - "buttonCustomStyleHover": "color: #6d6d6d; background-color: #eee; border-color: #ccc;", - "buttonDisplayName": "GitHub", - "buttonImage": "https://cdn-icons-png.flaticon.com/512/25/25231.png", - "iconBackground": "#4184f3", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://ig.mytestrun.com/user", - }, - { - "_id": "apple-stoyan", - "_type": { - "_id": "appleConfig", - "collection": true, - "name": "Client configuration for Apple.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://appleid.apple.com/auth/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "CHANGE ME", - "enableNativeNonce": true, - "enabled": false, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://appleid.apple.com", - "issuerComparisonCheckType": "EXACT", - "jwksUriEndpoint": "https://appleid.apple.com/auth/keys", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectAfterFormPostURI": "https://openam-volker-dev.forgeblocks.com/login", - "redirectURI": "https://openam-volker-dev.forgeblocks.com/am/oauth2/alpha/client/form_post/apple-stoyan", - "requestNativeAppForUserInfo": false, - "responseMode": "FORM_POST", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "name", - "email", - ], - "tokenEndpoint": "https://appleid.apple.com/auth/token", - "transform": "484e6246-dbc6-4288-97e6-54e55431402e", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #000000; color: #ffffff; border-color: #000000;", - "buttonCustomStyleHover": "background-color: #000000; color: #ffffff; border-color: #000000;", - "buttonDisplayName": "Apple", - "buttonImage": "/login/images/apple-logo.png", - "iconBackground": "#000000", - "iconClass": "fa-apple", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://appleid.apple.com/.well-known/openid-configuration", - }, - { - "_id": "apple_web", - "_type": { - "_id": "appleConfig", - "collection": true, - "name": "Client configuration for Apple.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://appleid.apple.com/auth/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "io.scheuber.idc.signinWithApple.service", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://appleid.apple.com", - "issuerComparisonCheckType": "EXACT", - "jwksUriEndpoint": "https://appleid.apple.com/auth/keys", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectAfterFormPostURI": "https://idc.scheuber.io/login", - "redirectURI": "https://idc.scheuber.io/am/oauth2/client/form_post/apple_web", - "requestNativeAppForUserInfo": false, - "responseMode": "FORM_POST", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "name", - "email", - ], - "tokenEndpoint": "https://appleid.apple.com/auth/token", - "transform": "484e6246-dbc6-4288-97e6-54e55431402e", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #000000; color: #ffffff; border-color: #000000;", - "buttonCustomStyleHover": "background-color: #000000; color: #ffffff; border-color: #000000;", - "buttonDisplayName": "Apple", - "buttonImage": "/login/images/apple-logo.png", - "iconBackground": "#000000", - "iconClass": "fa-apple", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://appleid.apple.com/.well-known/openid-configuration", - }, - { - "_id": "okta-trial-5735851", - "_type": { - "_id": "oidcConfig", - "collection": true, - "name": "Client configuration for providers that implement the OpenID Connect specification.", - }, - "acrValues": [], - "authenticationIdKey": "id", - "authorizationEndpoint": "https://trial-5735851.okta.com/oauth2/v1/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "0oa13r2cp29Rynmyw697", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://trial-5735851.okta.com", - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "openid", - "profile", - "email", - ], - "tokenEndpoint": "https://trial-5735851.okta.com/oauth2/v1/token", - "transform": "6325cf19-a49b-471e-8d26-7e4df76df0e2", - "uiConfig": { - "buttonDisplayName": "Okta", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://trial-5735851.okta.com/oauth2/v1/userinfo", - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://trial-5735851.okta.com/.well-known/openid-configuration", - }, - { - "_id": "adfs", - "_type": { - "_id": "oidcConfig", - "collection": true, - "name": "Client configuration for providers that implement the OpenID Connect specification.", - }, - "acrValues": [], - "authenticationIdKey": "sub", - "authorizationEndpoint": "https://adfs.mytestrun.com/adfs/oauth2/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "aa9a179e-cdba-4db8-8477-3d1069d5ec04", - "enableNativeNonce": true, - "enabled": true, - "encryptJwtRequestParameter": false, - "encryptedIdTokens": false, - "issuer": "https://adfs.mytestrun.com/adfs", - "issuerComparisonCheckType": "EXACT", - "jwksUriEndpoint": "https://adfs.mytestrun.com/adfs/discovery/keys", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtRequestParameterOption": "NONE", - "jwtSigningAlgorithm": "RS256", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "openid", - "profile", - "email", - ], - "tokenEndpoint": "https://adfs.mytestrun.com/adfs/oauth2/token", - "transform": "dbe0bf9a-72aa-49d5-8483-9db147985a47", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;", - "buttonCustomStyleHover": "background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;", - "buttonDisplayName": "Microsoft ADFS", - "buttonImage": "/login/images/microsoft-logo.png", - "iconBackground": "#0078d7", - "iconClass": "fa-windows", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoResponseType": "JSON", - "wellKnownEndpoint": "https://adfs.mytestrun.com/adfs/.well-known/openid-configuration", - }, - { - "_id": "azure", - "_type": { - "_id": "microsoftConfig", - "collection": true, - "name": "Client configuration for Microsoft.", - }, - "authenticationIdKey": "id", - "authorizationEndpoint": "https://login.microsoftonline.com/711ffa9c-5972-4713-ace3-688c9732614a/oauth2/v2.0/authorize", - "clientAuthenticationMethod": "CLIENT_SECRET_POST", - "clientId": "c42a3dc8-f276-496b-a722-269f131cc21c", - "enabled": true, - "issuerComparisonCheckType": "EXACT", - "jwtEncryptionAlgorithm": "NONE", - "jwtEncryptionMethod": "NONE", - "jwtSigningAlgorithm": "NONE", - "pkceMethod": "S256", - "privateKeyJwtExpTime": 600, - "redirectURI": "https://idc.scheuber.io/login", - "responseMode": "DEFAULT", - "revocationCheckOptions": [], - "scopeDelimiter": " ", - "scopes": [ - "User.Read", - "openid", - ], - "tokenEndpoint": "https://login.microsoftonline.com/711ffa9c-5972-4713-ace3-688c9732614a/oauth2/v2.0/token", - "transform": "73cecbfc-dad0-4395-be6a-6858ee3a80e5", - "uiConfig": { - "buttonClass": "", - "buttonCustomStyle": "background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;", - "buttonCustomStyleHover": "background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;", - "buttonDisplayName": "Microsoft Azure", - "buttonImage": "/login/images/microsoft-logo.png", - "iconBackground": "#0078d7", - "iconClass": "fa-windows", - "iconFontColor": "white", - }, - "useCustomTrustStore": false, - "userInfoEndpoint": "https://graph.microsoft.com/v1.0/me", - }, - ], }, "baseurl": { "_id": "", @@ -259043,7 +258282,6 @@ outcome = "true"; }, "enabled": true, "location": "/bravo", - "nextDescendents": [], }, "TNTPPingOneService": { "_id": "",