Web应用的细粒度授权

2024-04-19

我有一个 C# .net 应用程序,为公司的内部用户和外部客户提供服务。我需要进行细粒度的授权,比如谁访问什么资源。因此,我需要基于资源或基于属性的授权,而不是基于角色的授权。

我想到的是:

  1. 为我的 .net 应用程序实现我自己的授权机制和 SQL 表
  2. 使用/实现标准机制,例如实现 XACML 的软件(例如 Axiomatics)

第一种方法的问题是它不是集中式的,也不是标准的,因此其他系统无法使用它进行授权。

第二种方法的问题是它可能会更慢(由于每个资源都需要额外的调用)。另外,我不确定市场上的应用程序对像 XACML 这样的标准授权的支持范围有多大,以使未来的集成更加容易。

所以,一般来说细粒度授权的良好实践有哪些对于应该为内部用户和外部客户提供服务的 Web 应用程序?


我肯定会选择外部化授权。这并不意味着它会变慢。这意味着您已经将访问控制与业务逻辑完全分离。

OverviewXACML 是一个好方法。该 TC 非常活跃,Boeing、EMC、Veterans Administration、Oracle 和 Axiomatics 等公司都是活跃成员。

XACML架构保证您可以获得您想要的性能。由于执行(PEP)和决策引擎(PDP)是松散耦合的,您可以选择它们如何通信、使用什么协议、是否使用多个决策等......这意味着您可以选择进行集成满足您的性能需求。

XACML 的 SAML 配置文件中还定义了一个标准 PDP 接口。这保证了您的访问控制“面向未来”,您不会被任何特定的供应商解决方案所束缚。

Web 应用程序的访问控制您可以通过使用 ISAPI 和 ASP.NET 中的 HTTP 过滤器简单地放入 .Net Web 应用程序的 PEP。 Axiomatics 有现成的解决方案。

目前的实施如果您查看 Axiomatics 的客户页面,您会看到他们有 Paypal、贝尔直升机等。因此,XACML 确实成为现实,它可以处理非常大的部署(数亿用户)。

此外,领先的金融服务提供商 Datev eG 正在为其服务/应用程序使用 Axiomatics 的 .Net PDP 实施。由于在这种情况下嵌入了 .Net PDP,因此性能是最佳的。

否则,您始终可以从现成的 .Net PEP 中进行选择,以便与任何 PDP 集成 - 例如基于 SOAP 的 XACML 授权服务。

通过 XACML 实现高水平的性能去年 7 月,在 Gartner“Catalyst”会议上,Axiomatics 宣布发布最新产品 Axiomatics 反向查询,该产品可帮助您应对“十亿条记录的挑战”。它的目标是数据源和 RIA 的访问控制。它使用纯 XACML 解决方案,以便与其他解决方案保持互操作性。

事实上,Kuppinger Cole 很快就会举办有关该主题的网络研讨会:http://www.kuppingercole.com/events/n10058 http://www.kuppingercole.com/events/n10058

也可以在此处查看 Axiomatics ARQ 新闻稿:http://www.axiomatics.com/latest-news/216-axiomatics-releases-new-reverse-query-authorization-product-a-breakthrough-innovation-for-authorization-services.html http://www.axiomatics.com/latest-news/216-axiomatics-releases-new-reverse-query-authorization-product-a-breakthrough-innovation-for-authorization-services.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web应用的细粒度授权 的相关文章

  • SVN 显示日志不起作用

    如何在不设置 r 向所有人 所有内容读取 的情况下使用显示日志功能 我的 authz 文件中有几个组 它看起来像这样 groups Profs dave bruno franck Team1 1036091 1036103 1036087
  • 登录会员.NET

    您好 我想知道强制用户在到达 net 网站时登录的最佳方法是什么 我已经设置了会员功能 我想知道什么是最好的方法来确保无论用户到达哪个地址 他们都必须首先经过身份验证 然后才能进入他们请求的页面 任何资源都会很棒 谢谢 Alter Web
  • 如何处理 UI 的 Lambda/API 网关的 Cognito 身份验证重定向?

    当我进入 Cognito 身份验证页面时 https example auth us east 1 amazoncognito com login response type token client id xxxxxxxxxxxxxxxx
  • ASP.NET MVC 授权

    如何使用 MVC asp net 实现授权 使用授权属性 Authorize public ActionResult MyAction stuff 您也可以在控制器上使用它 也可以传递用户或角色 如果你想要更多控制的东西 你可以尝试类似的东
  • 寻找许可证密钥算法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Stack Overflow 上有很多与许可证密钥相关的问题 但他们不回答这个问题 任何人都可以提供一个简单的许可证密钥算法 该算法独
  • 如何在 Node.JS Google Cloud 函数中获取访问令牌?

    我在 Google Cloud 上的 Node JS 中有一个云函数 我需要向 Google 发出 GET 请求 并且它需要一个身份验证令牌 使用curl你可以使用生成一个 gcloud auth application default p
  • Laravel 在所有 api 路由中使用 Web 身份验证重定向到主页

    我想对所有 api 路由使用网络身份验证 我创建了中间件 它是这样的 Route group middleware gt auth web prefix gt v1 function router Route apiResource sub
  • 将 Fetch 与授权标头和 CORS 结合使用

    我正在尝试让我的请求通过一个在线游戏 API 但我似乎无法正常工作 我正在使用FetchAPI 以及一些请求需要授权承载令牌 但请求永远不会与授权标头一起发送 我努力了 mode no cors credentials include 显然
  • 是否可以对 Websocket 升级请求使用承载身份验证?

    打开WebSocket连接的升级请求是标准的HTTP请求 在服务器端 我可以像其他任何请求一样验证请求 就我而言 我想使用承载身份验证 不幸的是 在浏览器中打开 Websocket 连接时无法指定标头 这会让我相信不可能使用承载身份验证来验
  • 具有不同身份验证标头的 HttpClient 单实例

    鉴于 net HttpClient 的设计考虑到了重用 并且旨在长寿 http chimera labs oreilly com books 1234000001708 ch14 html and 已报告内存泄漏 https stackov
  • 对于 MVC,Webform 的“UrlAuthorizationModule.CheckUrlAccessForPrincipal”等效项是什么?

    我在为我的公司编写自定义 SSO 解决方案时遇到了问题 为了简单起见 我制作了一个自定义身份验证http模块 它拦截所有请求以检查用户身份验证状态 如果未通过身份验证 用户将被重定向到我的自定义 sso 登录页面 问题是 当用户未经身份验证
  • Rails:使用 Authlogic 进行授权

    我需要一个非常精细的授权系统 可以与真实逻辑 http github com binarylogic authlogic tree master 到目前为止我已经尝试过这些宝石 插件 Lockdown http stonean com wi
  • 单个项目中的 Identityserver4 和 API

    我有一个 IdentityServer4 asp net core 主机设置资源所有者密码授予 http docs identityserver io en release quickstarts 2 resource owner pass
  • 无需登录的 Vimeo API AuthorizationUrl

    我正在使用 Vimeo API 在 Web 应用程序上下文中获取视频 我有一个简单的问题 我希望 P 可以使用 oAuth 协议并通过以下链接请求应用程序授权 https vimeo com oauth authorize oauth to
  • 为什么 IIS 中的授权规则不会限制对我的 WCF 服务的访问?

    我有一个托管在 IIS 10 中的独立 WCF 服务 我想将对 Web 服务的访问限制为选定的用户组 我可以通过在 IIS 中执行以下操作来为 Web 应用程序执行此操作 身份验证 仅 Windows 身份验证 禁用匿名身份验证 授权规则
  • 当 btoa 被弃用时,如何在 ReactJS 中编码 Base 64 字符串?

    我正在使用一个 API 它要求我授权我的客户端 ID 和客户端密钥 我尝试使用 btoa 方法 但它说它已被弃用 这是我到目前为止所尝试过的 授权 基本 btoa ClientID ClientSecret 这似乎给出了相同的结果btoa
  • 如何在 Laravel 中使用主密码登录用户?

    在 Laravel 中 我想使用主密码登录我的任何用户帐户 这是我在控制器中尝试过的 if Input get password master password email Input get email user User find em
  • 单元测试 AuthorizationHandler

    我在 NET Core 2 1 中使用了基于资源的授权模式 如下所述 我唯一的问题是我不知道如何测试我的AuthorizationHandler干净地 这里有人已经做过类似的事情了吗 AuthorizationHandler示例 来自上面的
  • cakephp 3 中的授权和 ACL

    我搜索了文档 但没有找到有关 cakephp 3 中 ACL 实现的任何信息 如何在 cakephp 3 中使用 ACL 实现授权 ACL 不像 CakePHP 2 那样内置在 CakePHP 3 中 它现在作为单独的插件提供 引用自htt
  • Pyramid 中基于动态用户的授权

    我正在跟进Pyramid 文档中的安全指南 http docs pylonsproject org projects pyramid 1 1 narr security html以及 wiki 教程添加授权 http docs pylons

随机推荐