如何使用 AD / LDAP 管理 ASP.NET 核心中的用户?我是否将用户存储在数据库中?
How to manage users in ASP.NET core with AD / LDAP? Do I store the users in a database?
我正在编写一个内部应用程序,其中所有用户都是 AD 的一部分。我有以下步骤来实现这一点。这个对吗?
创建操作过滤器以获取对网站的所有 HTTP 请求并检查它们是否处于所需的特定 AD 角色中 (var isUserInRole = User.IsInRole("M2-ITU-PWApplicationDevelopers"))
如果用户不属于任何应用程序角色,则将用户发送到错误页面
如果用户处于应用程序角色,则将用户添加到 SQL 数据库并将 link 添加到数据库中的角色 table 所以现在我有 user/role 准备好与其他数据一起在数据库中使用的数据
当用户再次访问LDAP之前先检查数据库?
如何设置 cookie 或其他东西,以便每个请求都不需要通过身份验证的过程?
试图了解基础知识..也许我做错了?
使用Windows Authentication. Your application need to be behind IIS to do it in ASP.NET Core 2.2 and lower, but starting ASP.NET Core 3.0 you can do it with Kestrel alone.
如果这样做,您可以跳过第 3 步和第 4 步。当一个人通过 Windows 身份验证进行身份验证时,应用程序将获得一个登录令牌,其中包含该帐户所属的所有安全组.所以 User.IsInRole
很快。无需将该信息存储在您自己的数据库中。
您也不必担心 cookie。
Windows 身份验证的额外好处是它可以支持无缝登录:如果您的站点在 Internet 选项中的受信任站点中,那么 IE 和 Chrome 将自动发送用户当前登录 Windows。用户不必输入他们的凭据。
Firefox 使用它自己的 network.negotiate-auth.delegation-uris
设置来实现相同的目的。
我正在编写一个内部应用程序,其中所有用户都是 AD 的一部分。我有以下步骤来实现这一点。这个对吗?
创建操作过滤器以获取对网站的所有 HTTP 请求并检查它们是否处于所需的特定 AD 角色中 (var isUserInRole = User.IsInRole("M2-ITU-PWApplicationDevelopers"))
如果用户不属于任何应用程序角色,则将用户发送到错误页面
如果用户处于应用程序角色,则将用户添加到 SQL 数据库并将 link 添加到数据库中的角色 table 所以现在我有 user/role 准备好与其他数据一起在数据库中使用的数据
当用户再次访问LDAP之前先检查数据库?
如何设置 cookie 或其他东西,以便每个请求都不需要通过身份验证的过程?
试图了解基础知识..也许我做错了?
使用Windows Authentication. Your application need to be behind IIS to do it in ASP.NET Core 2.2 and lower, but starting ASP.NET Core 3.0 you can do it with Kestrel alone.
如果这样做,您可以跳过第 3 步和第 4 步。当一个人通过 Windows 身份验证进行身份验证时,应用程序将获得一个登录令牌,其中包含该帐户所属的所有安全组.所以 User.IsInRole
很快。无需将该信息存储在您自己的数据库中。
您也不必担心 cookie。
Windows 身份验证的额外好处是它可以支持无缝登录:如果您的站点在 Internet 选项中的受信任站点中,那么 IE 和 Chrome 将自动发送用户当前登录 Windows。用户不必输入他们的凭据。
Firefox 使用它自己的 network.negotiate-auth.delegation-uris
设置来实现相同的目的。