Fixed SSO CallBack URL's

Ylian Saint-Hilaire committed Jun 10, 2020 at 11:55 UTC 9ea93a658efb8046dd93d1850d92ae57a0dbef0f
1 file changed +16 -38
webserver.js
+16 -38
@@ -4363,11 +4363,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4363 // Twitter
4364 if ((typeof domain.authstrategies.twitter == 'object') && (typeof domain.authstrategies.twitter.clientid == 'string') && (typeof domain.authstrategies.twitter.clientsecret == 'string')) {
4365 const TwitterStrategy = require('passport-twitter');
4366 - var options = {
4367 - consumerKey: domain.authstrategies.twitter.clientid,
4368 - consumerSecret: domain.authstrategies.twitter.clientsecret,
4369 - callbackURL: (typeof domain.authstrategies.twitter.callbackurl == 'string') ? domain.authstrategies.twitter.callbackurl : (url + 'auth-twitter-callback')
4370 - };
4366 + var options = { consumerKey: domain.authstrategies.twitter.clientid, consumerSecret: domain.authstrategies.twitter.clientsecret };
4367 + if (typeof domain.authstrategies.twitter.callbackurl == 'string') { options.callbackURL = domain.authstrategies.twitter.callbackurl; } else { options.path = url + 'auth-twitter-callback'; }
4368 parent.debug('web', 'Adding Twitter SSO with options: ' + JSON.stringify(options));
4369 passport.use(new TwitterStrategy(options,
4370 function (token, tokenSecret, profile, cb) {
@@ -4400,11 +4397,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4397 // Google
4398 if ((typeof domain.authstrategies.google == 'object') && (typeof domain.authstrategies.google.clientid == 'string') && (typeof domain.authstrategies.google.clientsecret == 'string')) {
4399 const GoogleStrategy = require('passport-google-oauth20');
4403 - var options = {
4404 - clientID: domain.authstrategies.google.clientid,
4405 - clientSecret: domain.authstrategies.google.clientsecret,
4406 - callbackURL: (typeof domain.authstrategies.google.callbackurl == 'string') ? domain.authstrategies.google.callbackurl : (url + 'auth-google-callback')
4407 - };
4400 + var options = { clientID: domain.authstrategies.google.clientid, clientSecret: domain.authstrategies.google.clientsecret };
4401 + if (typeof domain.authstrategies.google.callbackurl == 'string') { options.callbackURL = domain.authstrategies.google.callbackurl; } else { options.path = url + 'auth-google-callback'; }
4402 parent.debug('web', 'Adding Google SSO with options: ' + JSON.stringify(options));
4403 passport.use(new GoogleStrategy(options,
4404 function (token, tokenSecret, profile, cb) {
@@ -4429,11 +4423,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4423 // Github
4424 if ((typeof domain.authstrategies.github == 'object') && (typeof domain.authstrategies.github.clientid == 'string') && (typeof domain.authstrategies.github.clientsecret == 'string')) {
4425 const GitHubStrategy = require('passport-github2');
4432 - var options = {
4433 - clientID: domain.authstrategies.github.clientid,
4434 - clientSecret: domain.authstrategies.github.clientsecret,
4435 - callbackURL: (typeof domain.authstrategies.github.callbackurl == 'string') ? domain.authstrategies.github.callbackurl : (url + 'auth-github-callback')
4436 - };
4426 + var options = { clientID: domain.authstrategies.github.clientid, clientSecret: domain.authstrategies.github.clientsecret };
4427 + if (typeof domain.authstrategies.github.callbackurl == 'string') { options.callbackURL = domain.authstrategies.github.callbackurl; } else { options.path = url + 'auth-github-callback'; }
4428 parent.debug('web', 'Adding Github SSO with options: ' + JSON.stringify(options));
4429 passport.use(new GitHubStrategy(options,
4430 function (token, tokenSecret, profile, cb) {
@@ -4458,11 +4449,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4449 // Reddit
4450 if ((typeof domain.authstrategies.reddit == 'object') && (typeof domain.authstrategies.reddit.clientid == 'string') && (typeof domain.authstrategies.reddit.clientsecret == 'string')) {
4451 const RedditStrategy = require('passport-reddit');
4461 - var options = {
4462 - clientID: domain.authstrategies.reddit.clientid,
4463 - clientSecret: domain.authstrategies.reddit.clientsecret,
4464 - callbackURL: (typeof domain.authstrategies.reddit.callbackurl == 'string') ? domain.authstrategies.reddit.callbackurl : (url + 'auth-reddit-callback')
4465 - };
4452 + var options = { clientID: domain.authstrategies.reddit.clientid, clientSecret: domain.authstrategies.reddit.clientsecret };
4453 + if (typeof domain.authstrategies.reddit.callbackurl == 'string') { options.callbackURL = domain.authstrategies.reddit.callbackurl; } else { options.path = url + 'auth-reddit-callback'; }
4454 parent.debug('web', 'Adding Reddit SSO with options: ' + JSON.stringify(options));
4455 passport.use(new RedditStrategy.Strategy(options,
4456 function (token, tokenSecret, profile, cb) {
@@ -4502,12 +4490,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4490 // Azure
4491 if ((typeof domain.authstrategies.azure == 'object') && (typeof domain.authstrategies.azure.clientid == 'string') && (typeof domain.authstrategies.azure.clientsecret == 'string')) {
4492 const AzureOAuth2Strategy = require('passport-azure-oauth2');
4505 - var options = {
4506 - clientID: domain.authstrategies.azure.clientid,
4507 - clientSecret: domain.authstrategies.azure.clientsecret,
4508 - tenant: domain.authstrategies.azure.tenantid,
4509 - callbackURL: (typeof domain.authstrategies.azure.callbackurl == 'string') ? domain.authstrategies.azure.callbackurl : (url + 'auth-azure-callback')
4510 - };
4493 + var options = { clientID: domain.authstrategies.azure.clientid, clientSecret: domain.authstrategies.azure.clientsecret, tenant: domain.authstrategies.azure.tenantid };
4494 + if (typeof domain.authstrategies.azure.callbackurl == 'string') { options.callbackURL = domain.authstrategies.azure.callbackurl; } else { options.path = url + 'auth-azure-callback'; }
4495 parent.debug('web', 'Adding Azure SSO with options: ' + JSON.stringify(options));
4496 passport.use('azure', new AzureOAuth2Strategy(options,
4497 function (accessToken, refreshtoken, params, profile, done) {
@@ -4558,10 +4542,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4542 if (cert == null) {
4543 console.log('ERROR: Unable to read SAML IdP certificate: ' + domain.authstrategies.saml.cert);
4544 } else {
4561 - var options = {
4562 - callbackUrl: (typeof domain.authstrategies.saml.callbackurl == 'string') ? domain.authstrategies.saml.callbackurl : (url + 'auth-saml-callback'),
4563 - entryPoint: domain.authstrategies.saml.idpurl, issuer: 'meshcentral'
4564 - };
4545 + var options = { entryPoint: domain.authstrategies.saml.idpurl, issuer: 'meshcentral' };
4546 + if (typeof domain.authstrategies.saml.callbackurl == 'string') { options.callbackUrl = domain.authstrategies.saml.callbackurl; } else { options.path = url + 'auth-saml-callback'; }
4547 if (domain.authstrategies.saml.disablerequestedauthncontext != null) { options.disableRequestedAuthnContext = domain.authstrategies.saml.disablerequestedauthncontext; }
4548 parent.debug('web', 'Adding SAML SSO with options: ' + JSON.stringify(options));
4549 if (typeof domain.authstrategies.saml.entityid == 'string') { options.issuer = domain.authstrategies.saml.entityid; }
@@ -4600,10 +4582,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4582 if (cert == null) {
4583 console.log('ERROR: Unable to read Intel SAML IdP certificate: ' + domain.authstrategies.intel.cert);
4584 } else {
4603 - var options = {
4604 - callbackUrl: (typeof domain.authstrategies.intel.callbackurl == 'string') ? domain.authstrategies.intel.callbackurl : (url + 'auth-intel-callback'),
4605 - entryPoint: domain.authstrategies.intel.idpurl, issuer: 'meshcentral'
4606 - };
4585 + var options = { entryPoint: domain.authstrategies.intel.idpurl, issuer: 'meshcentral' };
4586 + if (typeof domain.authstrategies.intel.callbackurl == 'string') { options.callbackUrl = domain.authstrategies.intel.callbackurl; } else { options.path = url + 'auth-intel-callback'; }
4587 if (domain.authstrategies.intel.disablerequestedauthncontext != null) { options.disableRequestedAuthnContext = domain.authstrategies.intel.disablerequestedauthncontext; }
4588 parent.debug('web', 'Adding Intel SSO with options: ' + JSON.stringify(options));
4589 if (typeof domain.authstrategies.intel.entityid == 'string') { options.issuer = domain.authstrategies.intel.entityid; }
@@ -4644,10 +4624,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4624 if (cert == null) {
4625 console.log('ERROR: Unable to read JumpCloud IdP certificate: ' + domain.authstrategies.jumpcloud.cert);
4626 } else {
4647 - var options = {
4648 - callbackUrl: (typeof domain.authstrategies.jumpcloud.callbackurl == 'string') ? domain.authstrategies.jumpcloud.callbackurl : (url + 'auth-jumpcloud-callback'),
4649 - entryPoint: domain.authstrategies.jumpcloud.idpurl, issuer: 'meshcentral'
4650 - };
4627 + var options = { entryPoint: domain.authstrategies.jumpcloud.idpurl, issuer: 'meshcentral' };
4628 + if (typeof domain.authstrategies.jumpcloud.callbackurl == 'string') { options.callbackUrl = domain.authstrategies.jumpcloud.callbackurl; } else { options.path = url + 'auth-jumpcloud-callback'; }
4629 parent.debug('web', 'Adding JumpCloud SSO with options: ' + JSON.stringify(options));
4630 if (typeof domain.authstrategies.jumpcloud.entityid == 'string') { options.issuer = domain.authstrategies.jumpcloud.entityid; }
4631 options.cert = cert.toString().split('-----BEGIN CERTIFICATE-----').join('').split('-----END CERTIFICATE-----').join('');