gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:35 25 4
gpt4 key购买 nike

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

我以前没有使用过 LDAP 服务器,但据我所知,我们可以为不同的对象定义我们的模式。所以我在网上搜索了一个简单的 实现示例code>resource/action based authorization using LDAP 我还没有找到任何东西(每个人都在谈论用户、组和角色)

所以我想到了两个问题:

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

PS:我们的应用程序是用 C# 编写的。是否有任何好的开源 LDAP 客户端可供我们使用,或者我们应该使用 .Net DirectoryServices

最佳答案

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

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

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

使用 ABAC,您可以获得以下好处:

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

您可以在 ABAC 中表达以下场景:

  • 如果 document.location==user.location,具有角色==manager 的用户可以对文档执行 action==edit

XACML,可扩展访问控制标记语言实现了 ABAC。您可以在此处阅读有关 XACML 和 ABAC 的更多信息:

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

关于c# - 如何使用 LDAP 实现基于资源/操作的授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791401/

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