首页 > 解决方案 > 如何由活动目录中的任何用户登录(无密码)

问题描述

我的主要目标是为管理员创建任何用户登录的后门。

我使用核心 API 和 Active Directory 身份验证并使用 LDAP。

services.AddLdap(Configuration);
app.UseLdapAuthentication(Configuration);

它工作正常。

现在我需要为管理员添加任何用户登录的功能。当然,管理员不知道密码。

我确实连接

_connection.Connect(_config.Url, LdapConnection.DEFAULT_PORT);

并在我必须知道密码的地方绑定。

 _connection.Bind(username, password);

我使用基于 cookie 的身份验证。

我找不到办法做到这一点。

标签: c#asp.net-coreactive-directoryldap

解决方案


我使用基于 cookie 的身份验证。

如果您使用的是基于 cookie 的身份验证,那么您不需要让 AD 参与您的模拟。

我认为这是您的身份验证通常的工作方式:

  1. 用户输入用户名和密码。
  2. 您的应用程序通过 LDAP 验证凭据。
  3. 您的应用程序为用户发出一个 cookie。

如果您想允许管理员在您的应用程序中模拟其他任何人,请创建一个页面,管理员可以在其中查看所有用户帐户并选择要模拟的帐户。然后应用程序只为该用户帐户发出一个 cookie。

所以它会是这样的:

  1. 管理员用户输入他们自己的用户名和密码。
  2. 您的应用程序通过 LDAP 验证凭据并验证用户是管理员。
  3. 您的应用程序为用户自己的帐户发出 cookie。
  4. 管理员用户转到“用户”页面并选择要模拟的帐户。
  5. 您的应用程序为所选用户发出一个新的 cookie。

我在我们的一个应用程序中做了这件事。


推荐阅读