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('');