gpt4 book ai didi

asp.net - 具有基于本地角色的授权的 Active Directory 身份验证

转载 作者:行者123 更新时间:2023-12-01 06:26:26 26 4
gpt4 key购买 nike

我正在开发一个 ASP.NET MVC 应用程序。我需要支持多种身份验证机制(此应用程序由多个客户使用,每个客户都有自己首选的身份验证提供程序)。一个身份验证提供程序将是 Active Directory。用于身份验证的 AD 集成很简单,我对此没有任何问题。

对于授权,角色将存储在本地数据库中(注意:我们不能使用 Active Directory 组进行授权 - 角色需要是本地应用程序角色,因为我们支持多个身份验证提供程序并且 AD 管理员不想在 AD 中创建自定义组仅适用于我们的应用程序)。我的期望是我们需要在我们的本地数据库中创建“ stub ”用户帐户,以便执行 User-is-assigned-which-Roles 映射。这些 stub 用户帐户还将用于指示哪些用户有权访问应用程序(并非 AD 数据库中的每个人都应该具有访问权限)。

预期的控制流将是:

  • 用户访问登录页面 > 输入凭据 > 将凭据发布到应用服务器。
  • 该应用程序根据 AD 验证凭据。此时,我们知道用户是否已通过身份验证。
  • 该应用程序会检查用户的 SID,以查看本地数据库中是否存在具有该 SID 的“ stub ”用户帐户。如果没有,应用程序会向用户显示“未授权”错误消息。
  • 该应用程序将在本地数据库 user-is-assigned-which-roles 表中查找用户的角色。

  • 包括角色在内的用户身份信息将存储为声明,应用程序将使用典型的基于声明的授权(即 ClaimsAuthorizationManager)。

    我的问题是在本地数据库中创建“ stub ”用户帐户的最佳方法是什么?我的猜测是我们应该使用某种 AD 导出脚本为那些应该被授予访问 ASP.NET 应用程序的用户导出 AD 帐户,然后将这些用户导入本地数据库(注意:我希望 stub 帐户将包含最少的信息 - 也许只是来自 AD 的用户 SID 和用户名)。

    批量导出/导入可能适合作为初始部署过程。在应用程序启动并运行并且新用户加入组织后,我希望需要一种更加用户友好的机制来授予新用户访问我们的应用程序的权限(除了将新用户的帐户从 AD 导出/导入到我们的本地数据库)。我的猜测是我们需要某种用户浏览器屏幕,以便我们应用程序中的管理员可以浏览 AD 目录,选择一个用户,单击一个按钮,然后在我们的应用程序中自动创建该用户的“ stub ”帐户。

    有没有人实现过具有类似要求的应用程序?如果是这样,您是如何在本地数据库中引导创建“ stub ”帐户的?有没有更好的方法来满足这些要求?

    最佳答案

    如果这对您有帮助,请随时使用 Custom Annotation Authorization

    这只是一种解决方法,或者只是一个想法,而不是解决方案......

    要使用它,您只需要在 Controller 中使用 Annotation
    例如

     [ARQAuthorize]
    public class BlaBlaController : Controller .....

    关于asp.net - 具有基于本地角色的授权的 Active Directory 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28069525/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com