New MeshAgents on all platforms.
Ylian Saint-Hilaire committed
May 21, 2020 at 00:25 UTC
0f18e3a5cf0065a2cf97651f9b5483c1194f0388
24 files changed
+42
-6
agents/MeshCmd-signed.exe
Binary files a/agents/MeshCmd-signed.exe and b/agents/MeshCmd-signed.exe differ
agents/MeshCmd64-signed.exe
Binary files a/agents/MeshCmd64-signed.exe and b/agents/MeshCmd64-signed.exe differ
agents/MeshService-signed.exe
Binary files a/agents/MeshService-signed.exe and b/agents/MeshService-signed.exe differ
agents/MeshService.exe
Binary files a/agents/MeshService.exe and b/agents/MeshService.exe differ
agents/MeshService64-signed.exe
Binary files a/agents/MeshService64-signed.exe and b/agents/MeshService64-signed.exe differ
agents/MeshService64.exe
Binary files a/agents/MeshService64.exe and b/agents/MeshService64.exe differ
agents/meshagent_arm
Binary files a/agents/meshagent_arm and b/agents/meshagent_arm differ
agents/meshagent_arm-linaro
Binary files a/agents/meshagent_arm-linaro and b/agents/meshagent_arm-linaro differ
agents/meshagent_arm64
Binary files a/agents/meshagent_arm64 and b/agents/meshagent_arm64 differ
agents/meshagent_armhf
Binary files a/agents/meshagent_armhf and b/agents/meshagent_armhf differ
agents/meshagent_freebsd_x86-64
Binary files a/agents/meshagent_freebsd_x86-64 and b/agents/meshagent_freebsd_x86-64 differ
agents/meshagent_mips
Binary files a/agents/meshagent_mips and b/agents/meshagent_mips differ
agents/meshagent_osx-x86-64
Binary files a/agents/meshagent_osx-x86-64 and b/agents/meshagent_osx-x86-64 differ
agents/meshagent_pogo
Binary files a/agents/meshagent_pogo and b/agents/meshagent_pogo differ
agents/meshagent_poky
Binary files a/agents/meshagent_poky and b/agents/meshagent_poky differ
agents/meshagent_poky64
Binary files a/agents/meshagent_poky64 and b/agents/meshagent_poky64 differ
agents/meshagent_x86
Binary files a/agents/meshagent_x86 and b/agents/meshagent_x86 differ
agents/meshagent_x86-64
Binary files a/agents/meshagent_x86-64 and b/agents/meshagent_x86-64 differ
agents/meshagent_x86-64_nokvm
Binary files a/agents/meshagent_x86-64_nokvm and b/agents/meshagent_x86-64_nokvm differ
agents/meshagent_x86_nokvm
Binary files a/agents/meshagent_x86_nokvm and b/agents/meshagent_x86_nokvm differ
package.json
+1
-1
@@ -1,6 +1,6 @@
1
{
2
"name": "meshcentral",
3
- "version": "0.5.36",
3
+ "version": "0.5.37",
4
"keywords": [
5
"Remote Management",
6
"Intel AMT",
translate/translate.json
+3
-2
@@ -23957,7 +23957,8 @@
23957
"en": "Sign-in using Intel",
23958
"nl": "Log in met Intel",
23959
"xloc": [
23960
- "login-mobile.handlebars->container->page_content->column_l->1->1->0->1->loginpanel->1->authStrategies->auth-intel"
23960
+ "login-mobile.handlebars->container->page_content->column_l->1->1->0->1->loginpanel->1->authStrategies->auth-intel",
23961
+ "login.handlebars->container->column_l->centralTable->1->0->logincell->loginpanel->1->authStrategies->auth-intel"
23962
]
23963
},
23964
{
@@ -31128,4 +31129,4 @@
31129
]
31130
}
31131
]
31131
-}
31132
+}
\ No newline at end of file
views/login.handlebars
+1
@@ -78,6 +78,7 @@
78
<a id="auth-github" href="auth-github" style="display:none"><img src="images/login/github32.png" loading="lazy" width="32" height="32" style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px black;cursor:pointer" title="Sign-in using GitHub" /></a>
79
<a id="auth-reddit" href="auth-reddit" style="display:none"><img src="images/login/reddit32.png" loading="lazy" width="32" height="32" style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px black;cursor:pointer" title="Sign-in using Reddit" /></a>
80
<a id="auth-jumpcloud" href="auth-jumpcloud" style="display:none"><img src="images/login/jumpcloud32.png" loading="lazy" width="32" height="32" style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px black;cursor:pointer" title="Sign-in using JumpCloud" /></a>
81
+ <a id="auth-intel" href="auth-intel" style="display:none"><img src="images/login/intel32.png" loading="lazy" width="32" height="32" style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px black;cursor:pointer" title="Sign-in using Intel" /></a>
82
<a id="auth-saml" href="auth-saml" style="display:none"><img src="images/login/generic32.png" loading="lazy" width="32" height="32" style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px black;cursor:pointer" title="Single Sign-in" /></a>
83
</div>
84
</form>
webserver.js
+37
-3
@@ -2389,7 +2389,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
2389
if ((domain.loginkey != null) && (domain.loginkey.indexOf(req.query.key) == -1)) { res.sendStatus(404); return; } // Check 3FA URL key
2390
2391
if ((obj.userAllowedIp != null) && (checkIpAddressEx(req, res, obj.userAllowedIp, false) === false)) { return; } // Check server-wide IP filter only.
2392
- if (req.query.type == 1) {
2392
+ if ((req.query.type == 1) && (req.query.meshid != null)) {
2393
obj.getCiraConfigurationScript(req.query.meshid, function (script) {
2394
if (script == null) { res.sendStatus(404); } else {
2395
try {
@@ -2408,6 +2408,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
2408
res.send(script);
2409
}
2410
});
2411
+ } else {
2412
+ res.sendStatus(404);
2413
}
2414
}
2415
@@ -4248,10 +4250,42 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4250
}
4251
}
4252
4251
- // JumpCloud
4253
+ // Intel SAML
4254
+ if (typeof domain.authstrategies.intel == 'object') {
4255
+ if ((typeof domain.authstrategies.intel.cert != 'string') || (typeof domain.authstrategies.intel.idpurl != 'string')) {
4256
+ console.log('ERROR: Missing Intel SAML configuration.');
4257
+ } else {
4258
+ var cert = obj.fs.readFileSync(obj.path.join(obj.parent.datapath, domain.authstrategies.intel.cert));
4259
+ if (cert == null) {
4260
+ console.log('ERROR: Unable to read Intel SAML IdP certificate: ' + domain.authstrategies.intel.cert);
4261
+ } else {
4262
+ var options = { path: url + 'auth-intel-callback', entryPoint: domain.authstrategies.intel.idpurl, issuer: 'meshcentral' };
4263
+ if (typeof domain.authstrategies.intel.entityid == 'string') { options.issuer = domain.authstrategies.intel.entityid; }
4264
+ options.cert = cert.toString().split('-----BEGIN CERTIFICATE-----').join('').split('-----END CERTIFICATE-----').join('');
4265
+ const SamlStrategy = require('passport-saml').Strategy;
4266
+ passport.use(new SamlStrategy(options,
4267
+ function (profile, done) {
4268
+ if (typeof profile.nameID != 'string') { return done(); }
4269
+ var user = { id: 'user/' + domain.id + '/~' + profile.issuer + ':' + profile.nameID, name: profile.nameID };
4270
+ if ((typeof profile.firstname == 'string') && (typeof profile.lastname == 'string')) { user.name = profile.firstname + ' ' + profile.lastname; }
4271
+ if (typeof profile.email == 'string') { user.email = profile.email; }
4272
+ return done(null, user);
4273
+ }
4274
+ ));
4275
+ obj.app.get(url + 'auth-intel', function (req, res, next) {
4276
+ domain.passport.authenticate('saml', { failureRedirect: '/', failureFlash: true })(req, res, next);
4277
+ });
4278
+ obj.app.post(url + 'auth-intel-callback', function (req, res, next) {
4279
+ domain.passport.authenticate('saml', { failureRedirect: '/', failureFlash: true })(req, res, next);
4280
+ }, handleStrategyLogin);
4281
+ }
4282
+ }
4283
+ }
4284
+
4285
+ // JumpCloud SAML
4286
if (typeof domain.authstrategies.jumpcloud == 'object') {
4287
if ((typeof domain.authstrategies.jumpcloud.cert != 'string') || (typeof domain.authstrategies.jumpcloud.idpurl != 'string')) {
4254
- console.log('ERROR: Missing JumpCloud configuration.');
4288
+ console.log('ERROR: Missing JumpCloud SAML configuration.');
4289
} else {
4290
var cert = obj.fs.readFileSync(obj.path.join(obj.parent.datapath, domain.authstrategies.jumpcloud.cert));
4291
if (cert == null) {