C# 如何使用LDAP实现基于资源/操作的授权?

C# 如何使用LDAP实现基于资源/操作的授权?,c#,ldap,authorization,rbac,abac,C#,Ldap,Authorization,Rbac,Abac,我们有一个使用基于资源/操作的授权的遗留系统。最近,我们公司决定使用LDAP服务器作为身份验证和授权的存储库 我以前没有使用过LDAP服务器,但据我所知,我们可以为不同的对象定义模式。因此,我在网上搜索了一个使用LDAP实现基于资源/操作的授权的简单示例,但我没有找到任何结果(每个人都在谈论用户、组和角色) 所以我想到了两个问题: 使用LDAP进行基于资源操作的授权是一个好主意吗 (因为我找不到一个好的例子来说明如何做到这一点) 如果是,我们如何实现它?(任何谷歌结果都会有帮助:) PS:我们的

我们有一个使用基于
资源/操作的授权的遗留系统。最近,我们公司决定使用
LDAP
服务器作为
身份验证
授权
的存储库

我以前没有使用过
LDAP
服务器,但据我所知,我们可以为不同的对象定义模式。因此,我在网上搜索了一个使用
LDAP
实现
基于资源/操作的授权的简单示例,但我没有找到任何结果(每个人都在谈论用户、组和角色)

所以我想到了两个问题:

  • 使用
    LDAP
    进行基于
    资源操作的授权是一个好主意吗
    (因为我找不到一个好的例子来说明如何做到这一点)
  • 如果是,我们如何实现它?(任何谷歌结果都会有帮助:)

  • PS:我们的应用程序是用C写的。有没有好的开源
    LDAP
    客户端可以使用,或者我们应该使用.Net
    DirectoryServices

    LDAP非常灵活,您可以定义任何您想要的模式,但这不是一项显而易见的任务

    我想说它非常适合你的情况,但我知道没有默认模式。在谷歌上搜索一下,我发现这可能会给你一个起点。这和你需要的相符吗

    关于.Net库:它是“纯”LDAP服务器还是Active Directory服务器?
    似乎
    DirectoryServer
    两者都支持,所以我会坚持使用它。请注意,对于纯LDAP服务器,必须使用
    System.DirectoryServices.Protocols.LdapConnection
    进行连接

    可能也会有帮助


    希望这能有所帮助。

    LDAP非常灵活,您可以定义任何您想要的模式,但这不是一项显而易见的任务

    我想说它非常适合你的情况,但我知道没有默认模式。在谷歌上搜索一下,我发现这可能会给你一个起点。这和你需要的相符吗

    关于.Net库:它是“纯”LDAP服务器还是Active Directory服务器?
    似乎
    DirectoryServer
    两者都支持,所以我会坚持使用它。请注意,对于纯LDAP服务器,必须使用
    System.DirectoryServices.Protocols.LdapConnection
    进行连接

    可能也会有帮助


    希望这有帮助。

    您可以退一步,看看更大的访问控制/授权用例。如果您想进行基于资源操作的授权,可以推出ABAC,即基于属性的访问控制模型

    ABAC是RBAC和以身份为中心的授权的演变。它由NIST设计,与标准化RBAC的组织相同

    使用ABAC,LDAP服务器将成为属性的来源。属性只是一个键值对。在您的案例中使用ABAC的好处是您不需要扩展或更改LDAP模式

    使用ABAC,您可以实现以下好处:

    • 将授权逻辑外部化到中心策略决策点
    • 您可以将授权逻辑表示为策略而不是角色
    • 策略可以使用用户、资源、操作和上下文的任何属性
    您可以在ABAC中表达以下场景:

    • 如果document.location==user.location,则角色==manager的用户可以对文档执行操作==编辑
    可扩展访问控制标记语言XACML实现了ABAC。您可以在此处阅读有关XACML和ABAC的更多信息:

    • ABAC:

    您需要在要保护的应用程序前面部署拦截器(策略实施点)。

    您可以后退一步,看看更大的访问控制/授权用例。如果您想进行基于资源操作的授权,可以推出ABAC,即基于属性的访问控制模型

    ABAC是RBAC和以身份为中心的授权的演变。它由NIST设计,与标准化RBAC的组织相同

    使用ABAC,LDAP服务器将成为属性的来源。属性只是一个键值对。在您的案例中使用ABAC的好处是您不需要扩展或更改LDAP模式

    使用ABAC,您可以实现以下好处:

    • 将授权逻辑外部化到中心策略决策点
    • 您可以将授权逻辑表示为策略而不是角色
    • 策略可以使用用户、资源、操作和上下文的任何属性
    您可以在ABAC中表达以下场景:

    • 如果document.location==user.location,则角色==manager的用户可以对文档执行操作==编辑
    可扩展访问控制标记语言XACML实现了ABAC。您可以在此处阅读有关XACML和ABAC的更多信息:

    • ABAC:

    您需要在要保护的应用程序前面部署一个拦截器(策略执行点)。

    谢谢:)我如何搜索其他rfc?您可以使用此
    ldap站点进行谷歌搜索:www.rfc-base.org
    ,但会有很多噪音。。。我熟悉LDAP,但不了解基于资源操作的授权本身。老实说,用户/组对我来说很好:)谢谢:)我如何搜索其他rfc?你可以用这个
    ldap站点进行谷歌搜索:www.rfc-base.org
    ,但是会有很多噪音。。。我熟悉LDAP,但不了解基于资源操作的授权本身。老实说,用户/组在我看来不错:)具体来说,为什么要在LDAP中定义自己的模式?客户通常在拥有基础设施和/或管理团队(如帮助台)并且希望通过更改LDAP中的内容来控制对应用程序的访问时使用LDAP。所以通常你