![托管(外部防火墙)ASP.Net 应用程序到客户 LDAP](https://linux22.com/image/552729/%E6%89%98%E7%AE%A1%EF%BC%88%E5%A4%96%E9%83%A8%E9%98%B2%E7%81%AB%E5%A2%99%EF%BC%89ASP.Net%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%88%B0%E5%AE%A2%E6%88%B7%20LDAP.png)
情况:我管理一个使用 winform 身份验证的托管 ASP.Net 应用程序。该应用程序具有基于角色的安全性和对各种资产的访问控制列表。多个客户使用同一个应用程序。一些(但不是全部)客户要求该应用程序根据他们的 LDAP 对用户进行身份验证。大概是为了让用户免于登录,或让他们的密码和帐户名保持同步。
问题:我想知道从两个层面上如何做到这一点。第 1 层 - 我甚至可以在互联网上做这样的事情吗?如果可以,需要什么。第 2 层 - 我如何在我的应用程序之外管理以这种方式进行身份验证的用户的注册、滚动和 ACL?
答案1
SharePoint 通过使用自定义成员资格和角色提供程序支持这种类型的身份验证。在 SharePoint 2010 中,这称为声明身份验证。
会员和角色提供程序负责与目录存储进行通信(无论是 SQL、AD、LDAP 还是其他)。会员将承担身份验证的重任(此人是否是他们所说的那个人)。角色将承担授权的重任(此用户属于哪些组)。
SharePoint 使用将角色映射到 ACL 的本地数据库。因此,在运行时,SharePoint 将使用来自角色提供程序及其内部数据库的信息来授权用户请求(用户必须拥有角色 X 才能访问资源 Y)。
因此我相信您在申请时需要遵循类似的模式。
请注意,实时对远程系统进行 LDAP 调用可能会遇到性能问题。因此,您可能希望通过某种方式将角色提供程序中的用户角色缓存在内存中。