【问题标题】:Get currently authenticated user against Active Directory through javascript通过 javascript 针对 Active Directory 获取当前经过身份验证的用户
【发布时间】:2015-07-10 08:10:17
【问题描述】:

我(我们在我的公司)面临着挑战。我们的大多数客户(如果不是全部)都要求我们使用他们先前输入的 Windows 身份验证自动对用户进行身份验证,这与 LDAP Active Directory 相违背。该应用程序是一个在 .NET 网络表单中运行的网络应用程序,但我们目前正处于第二版的设计阶段,如果有帮助的话,它将向 MVC 过渡。

行为

  • 用户打开一个针对 Active Directory 进行身份验证的 Windows 会话
  • 用户打开浏览器并进入他/她的公司安装我们的产品(大部分时间安装在本地服务器中,但也可能安装在外部)
  • 该页面必须检查用户是否通过 Active Directory 进行身份验证,如果是,则将用户身份验证到应用程序(为简单起见,必须在我们的应用程序中注册 AD 中的相同登录名高级)
  • 如果不是(用户未登录 AD),则提示输入用户凭据,并针对 AD 验证这些凭据。

我面临的问题是我不知道如何检索这 2 件事

  • 用户使用的验证方式。其实我只需要知道是不是通过AD就可以了。
  • 用户名 他/她使用(即当前 Windows 会话的用户名)。

我非常有信心这必须通过 javascript 来完成,但如果它不能,我们可以为浏览器开发一个小插件来获得必要的Windows API 函数。

请让我知道您对此事的看法,以及您是否需要更多信息。

【问题讨论】:

  • 这些网站是专门的 Intranet 网站吗?如果出于安全原因,他们不确定您是否要通过域凭据自动登录,无论是否可行。
  • 他们可能会也可能不会,这取决于客户想要使用该软件做什么。我很确定 AD 服务器将“仅限室内”,这就是我们提供辅助登录以防有人从公司防火墙外部连接的原因。无论如何,为什么会有风险?我不精通 Active Directory,但它不会通过安全通道发送内容吗?

标签: javascript asp.net authentication active-directory


【解决方案1】:

据我了解,NTLM 和 Kerberos 将成为您的解决方案的一部分,并且此问题似乎对此进行了详细介绍:

How does SSO using Active Directory works where user is transparently logged in. (intranet webapp)

或者,你听说过Stormpath吗? (免责声明:我在那里工作)。 Stormpath 在您的 Active Directory 实例之上提供只读 REST API,允许您快速编写可以针对您的 AD 环境进行身份验证的 Web 应用程序。

您可以在这里了解更多信息:Integrating Stormpath with Active Directory and LDAP

【讨论】:

  • 感谢您的信息。我们目前正在将 Kerberos 视为我们最可能的行动方案,但我需要更多关于此事的信息(也许在第三次 bokk 之后我会停下来……煮咖啡 :D)谢谢你指点我在正确的方向。已接受答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 2015-10-28
相关资源
最近更新 更多