kyr*_*isu 12 javascript node.js electron
如何在Windows下运行的电子应用中获取域用户安全上下文(用户名等)?
我知道我可以使用环境变量(process.env.USER),但我不认为它是安全的.
一个正确的答案将取决于您的环境的许多不同方面,但这里有一些想法.
Passportjs
Passportjs是nodejs身份验证的goto包.通过一些谷歌搜索,我发现微软已经创建了一个名为passport-azure-ad的github repo,其中包含stragaties(接口passportjs用来连接东西),专门用于Asure AD身份验证.因此,如果你使用的是Asure AD,那么passport-azure-ad是一个很好的方法.
passport-azure-ad问题
如果没有,并且您尝试使用passport-azure-ad对ADFS,WS-FED或SAML进行身份验证,则可能会遇到此问题.简而言之,该回购不支持它.
Passport-ldapauth
所以在这种情况下,请看一下这篇SO帖子,描述如何使用passport-ldapauth策略对ADFS进行身份验证.这似乎并不太难,尽管有一些"陷阱"需要注意.对于OAuth还有其他好的建议,以及该回购的所有者对passport-ldapauth的进一步解释.
虽然我没有使用passport-ldapauth,但多年来我已经完成了许多AD/LDAP集成,并且LDAP是众所周知且记录良好的身份验证方法,并且它相当安全.本文是使用LDAP时要注意的安全问题的一个很好的例子.但是,这些问题与协议的使用有关,并且与Passport-ldapauth包直接无关.
希望这可以帮助!
从Electron版本0.35.0开始,新的app.allowNTLMCredentialsForAllDomains(允许)也可能影响您的情况.根据文档,它允许您动态设置是否始终发送HTTP NTLM凭据或正常协商它们.还有一个关于此选项的免责声明不适用于某些"配置不当"的网络,但它值得一试.