软件开发人员不将授权外部化有什么原因吗?

发布于 2024-07-23 10:33:00 字数 244 浏览 4 评论 0原文

外部化身份的价值主张开始增加,许多站点现在接受 OpenID、CardSpace 或联合身份。 然而,许多开发人员尚未采取下一步行动来外部化基于 XACML 的授权和使用方法。

原因是缺乏认识还是其他原因? 您希望如何了解基于XACML的软件开发方法?

请注意,我询问的是授权,而不是身份验证。

The value proposition of externalizing identity is starting to increase where many sites now accept OpenID, CardSpace or federated identity. However, many developers haven't yet taken the next step to externalize authorization and use approaches based on XACML.

Is the reason lack of awareness or something else? How would you expect to learn about XACML-based approaches to software development?

Please note that I am asking about authorization, not authentication.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

月野兔 2024-07-30 10:33:00

我认为外部化授权的前景比外部化身份验证(OpenID、CardSpace 等)困难得多。 这主要是因为授权更加特定于应用程序。 A 被授权在我的应用程序中执行的操作可能无法在您的应用程序中执行,甚至假设我的应用程序和您的应用程序之间存在一些共同的相似之处,但很可能不会存在。

我不想说外部化授权永远会被完成,但说实话,我很难想出为什么你真的想这样做。 也许对于一组并行工作的应用程序来说,但同样,这很可能是内部支持,而不是外部支持。

I think the prospect of externalize authorization is a much more difficult thing than externalizing authentication (OpenID, CardSpace, etc.). This is mainly due to the fact that authorization is much more application specific. What Person A is authorized to do in my application he may not be able to do in your application, and that's even assuming there's some common parrallel between my application and your's, which most likely there won't be.

I don't want to say that externalizing authorization will never be done, but I honestly have a tough time coming up with reasons why you'd really want to do that. Maybe for a suite of applications that work side by side, but again, that would most likely be supported internally, rather than externally.

萌化 2024-07-30 10:33:00

另外,请记住授权!==身份验证。 仅仅因为用户经过身份验证并不意味着您已经解决了站点的授权部分。 您仍然需要确定谁可以在何时做什么。

Also, remember that authorization !== authentication. Just because a user is authenticated doesn't mean you have solved the authorization part of your site. You still need to determine who gets to do what and when.

养猫人 2024-07-30 10:33:00

我们继续推出自己的主要原因是像 openid 等选项似乎只受到技术网站的支持。 我们是一个规模较小的参与者,因此在用户接受度更高之前我们不会开始使用外部提供商。

我们不希望用户在我们网站上要做的第一件事就是访问另一个网站。

The main reason we continue to roll our own is that the options like openid et al are only seemingly supported by tech sites. We're a smaller player, so we won't start using an external provider until such a time that there is a much greater user acceptance.

We don't want the first thing a user has to do on our site to involve going to another site.

吃颗糖壮壮胆 2024-07-30 10:33:00

我似乎陷入了其他人的误解 - 问题是关于外部授权的。 就我个人而言,我只信任本地网络上的分布式授权,在本地网络上我可以控制身份验证和授权服务器。 我永远不会在网站上使用外部授权。

以下是我对 OpenID 作为身份验证服务的评论。

1)正如所指出的,授权!=身份验证。 OpenID 处理身份验证,但 Web 应用程序所有者仍然可以完全控制分配给该登录的权限。 这是积极的一面,但对此的困惑是消极的。

2)我找不到链接,但OpenID对社会工程/中间主要/网络钓鱼攻击开放。 提供商试图阻止这种情况(ID 图像、浏览器证书、回调验证等),但当黑帽网站弹出一个对话框/页面显示“输入您的 OpenID 用户名和密码”并且天才时,这并没有帮助。用户遵守。

3) 联合 ID 的每个提供商都有能力(有些人会说有责任)跟踪其用户的所有活动,无论他们将该 ID 用于哪个网站。 这就是为什么 Google 和 Yahoo 热衷于提供联合 ID,但对使用它们却不太感兴趣。

4) 与上述评论相反,通常的情况是使用 OpenID 减少了注册障碍,特别是当有用的 UI 指出新用户可能已经拥有 OpenID 时。 当您使用组合的 OpenID / OAuth 解决方案(例如 RPX)时,情况更是如此。

因此,从我的角度来看,使用 OpenID 的风险在于用户,而不是网站。 我无法通过让用户尝试记住另一个用户 ID 和密码来防止用户被钓鱼。 密码。 此外,黑帽不需要做任何比以纯文本形式存储其网站的用户密码更邪恶的事情来访问用户的其他帐户。 有多少人在登录的每个网站上使用不同的密码?

I seem to have fallen into the misunderstanding that the others have - the question was about external authorization. Personally, I would only trust distributed authorization on a local network where I have control over the authentication and authorization servers. I would never use external authorization on a web site.

Below are my comments on OpenID as a authentication service.

1) As was pointed out, authorization != authentication. OpenID handles authentication, but the web app owner still has full control over the rights assigned to that login. This is a positive, but the confusion about this is a negative.

2) I can't find the link, but OpenID is open to social engineering / main in the middle / phishing attacks. The providers try to prevent this (ID images, browser certificates, call back verification, etc) but it doesn't help when the black hat site pops up a dialog / page that says "enter your OpenID user name and password" and the genius user complies.

3) Each provider of a federated ID has the ability (and some would say responsibility) to track all the activities of their users, regardless of what site they use the ID for. This is why Google and Yahoo are gung-ho to provide federated IDs, but not so excited about consuming them.

4) Contrary to an above comment, it is commonly the case that using OpenID reduces the barrier to registration, especially when a helpful UI points out that a new user probably already has an OpenID. This is even more true when you use a combined OpenID / OAuth solution such as RPX.

So, from my point of view, the risks of using OpenID are on the user, not the web site. I can't prevent the user from being phished by making them try to remember yet another user ID & password. Further, Black Hats don't need to do anything more nefarious than store user passwords for their site in plain text to get access to a user's other accounts. How many people use a different password for every web site the log into?

站稳脚跟 2024-07-30 10:33:00

我所做的大多数项目都是在大公司内使用的专有应用程序,在这些情况下,外部身份验证服务很少是一种选择,而是由某些内部服务(例如 Active Directory)处理身份验证。

如果我碰巧成为一个构建公共网站的项目的一部分,我肯定会尝试使用 OpenID 之类的东西,而不是托管我自己的身份验证。

Most projects that I have done have been proprietary applications for use within large companies, and in those cases external authentication services are rarely an option, but authentication is instead handled by some internal service (such as Active Directory).

Should I happen to become part of a project that would build a public web site I would definately try to make use of something like OpenID instead of hosting my own authentication.

暖风昔人 2024-07-30 10:33:00

一个问题是“Not Invented Here”和对外部权威(甚至是假名)身份的不信任的某种结合。 一篇很好的文章在这里:

另外,我认为这可能是惯性。 如果没有杀手级应用程序为其提供支持,人们的迁移速度就会很慢。 鉴于我最近看到的 Facebook 集成数量的增加,我认为我们正处于陡峭斜坡的顶部,即将进入那个世界。

One problem is some combination of Not Invented Here and mistrust of externalized authorities for (even pseudonomous) identity. A good write-up is here:

Also, I think it may be inertia. Without a killer app to power it, people are slow to migrate. Given the rise in the number of Facebook-integrations I've seen lately I think we're on the top of a steep slope, about to enter that world.

薄荷梦 2024-07-30 10:33:00

正如另一位发帖者所指出的,授权通常是特定于应用程序的。 您在一个应用程序中可以执行的操作与在另一个应用程序中可以执行的操作有很大不同。 特别是在客户现成的应用程序中,授权通常更自然地由应用程序处理。

性能是另一个问题。 这可以通过获取 Sun 的 XACML 实现并使用它来外部化一些授权来看出。 您在请求双方产生的网络成本(取决于您构建请求/响应等的方式)可能远远超过授权决策的实际成本。 将其构建到 COTS 应用程序中,在其中性能优化的自由度较小,情况会变得更糟。

然而,我认为一些有前途的领域是围绕监管合规性的。 有些授权不会因应用程序而异。 例如,专有或机密信息或材料的传输。 在这些情况下,可以为每个应用程序中存在的相同控件提供强有力的理由,因为相反的情况非常糟糕。 对于相同的访问控制拥有任意数量的实现和规则是管理的噩梦。 使用 XACML 等控制框架的一个简单方法可能是从某人可以看到的内容开始,然后确定某人可以做什么。

As another poster indicated, authorization is generally application-specific. What you can DO in one application varies significantly from what you can DO in another. Especially in customer off-the-shelf applications, authorization is generally more naturally handled by the application.

Performance is another concern. This can be seen by obtaining Sun's XACML implementation, and using it to externalize some authorization. You incur network costs on both sides of the request that (depending on the way you architect request/response, etc.) can far exceed the actual cost of the authorization decision. Build that into a COTS application, where you have less freedom for performance optimization and things get even worse.

However, I think some of the promising areas are around regulatory compliance. There are some authorizations that do not vary by application. Transfer of proprietary or classified information or materials, for example. In these cases, a strong case can be made for the same control existing in each application, because the converse is so bad. Having any number of implementations and rules for the same access control is a management nightmare. An easy place to start with a control framework like XACML may be to start with what someone can see, and then work out to what someone can do.

独享拥抱 2024-07-30 10:33:00

我认为这取决于您从事的项目类型。 如果客户想要存储授权,则无法使用 OpenID...我使用 google apps 引擎开发一个小项目,因此我使用 google 进行授权。 因此,这在很大程度上取决于项目的类型。

I think it depends on the type of project you work on. If the customer wants store the authorization there is no way to use OpenID... I develop a small project using google apps engine and therefor I use google to do the authorization. So it strongly depends on the type of project.

呆头 2024-07-30 10:33:00

有几个原因:

  1. 正如一些评论所表明的那样,人们普遍认为“授权是本地的”,这意味着重复使用维护高质量所需的昂贵的“主题属性”几乎没有潜力。重要的访问决策。 (我相信,由于某些法律/法规广泛适用,因此存在很高的重用潜力,但是对于这种格式来说,对此进行全面讨论太长了。)
  2. 缺乏数据基础设施:在组织之间应用基于策略的访问控制(我使用/信任某些其他组织的授权(“AuthZ”)数据来解锁对我的数据的访问)至少要求我了解该属性的语义(什么是“执法人员”?什么是“美国公民”。 )之后,如果能有易于理解的属性质量标准和第三方认证就好了。 (有些人可能会发现,这些要求类似于 PKI 互操作性的要求:这是怎么回事?这只是针对一项数据,加上支持内容。)
  3. 对角色/职责的影响:外部化授权,无论是“角色”还是“角色” “属性”或“具有数字策略的属性”意味着本地“数据所有者”失去了对资源的控制。 他还卸下了维护用户列表的大量工作和责任。 这种变化将外部 AuthZ 的实施从技术问题提升为具有政治方面的组织问题。
  4. 大多数组织不知道也没有写下他们的政策是什么。 访问权限可能是“任何人提出要求”或“任何人提出要求并且我喜欢”或“任何人可以给我一些东西,例如访问他们的数据”。 当通过以政策语言表达它们而被迫公开时,所应用的真正规则可能会非常丑陋。 将书面政策良好地转化为数字政策的技能也不是从树上长出来的。 事实上,所需的技能是业务分析师或律师,而不是 IT 人员,而为这些人提供的工具很少甚至不存在。
  5. 当您确实拥有可靠的策略规则时,您可能会发现处理它所需的属性并不存在——它们通常不是您在 AD 中找到的那种东西。 电话号码作为 AuthZ 属性没有用处,甚至“组织”也可能不适合您实际记录的大多数法律或法规。 这甚至没有提到您必须实施(并获得批准)以表达“可能的原因”等政策要求的解决方法和近似方法。
  6. 相对容易处理但仍然真实的是,许多非常普遍的 COTS 应用程序不支持外部授权,并且许多应用程序开发人员不习惯进行外部化,因此会 (a) 试图说服您放弃它; (b) 花点钱学,但学得不好。

听起来很糟糕,对吧? 所以,最后我想说的是,尽管如此,我认为这款游戏还是得不偿失的。 潜在好处的清单将在其他时间发布另一篇文章。

祝你好运!

Several reasons:

  1. As some of the comments demonstrated, there is a general perception that "authorization is local" which implies that there's little potential from re-use of the expensive-to-maintain-at-high-quality "subject attributes" needed for important access decisions. (I believe that there is high reuse potential since some laws/regs are widely applicable, but full discussion of this is too long for this format.)
  2. Lack of data infrastructure: to apply policy-based access control between organizations (me using/trusting some other org's authorization ("AuthZ") data to unlock access to my data) requires, at a minimum, that I understand the semantics of the attribute (what is a "law-enforcemment officer"? What is a "US Citizen".) After that, it would be nice to have easy to understand attribute quality standards and third-party certification of same. (Some may observe that these requirements are analogous to the requirements for PKI interoperability: how's that coming along? And that's just for one piece of data, plus supporting stuff.)
  3. Impact on roles/responsibilities: externalizing authorization, whether to "roles" or to "attributes" or to "attributes with digital policy", means that the local "data owner" loses control of the resource. He also offloads considerable work and responsibility for maintaining user lists. This kind of change elevates implementation of external AuthZ from a technical problem to an organizational matter with a side of politics.
  4. Most organizations don't know and haven't written down what their policies are. Access may be "whoever asks" or "whoever asks and I like" or "whoever can give me something, like access to their data." The real rules applied can be pretty ugly when they are forced into the open by expressing them in a policy language. And the skill set for good rendition of written policies into digital policies doesn't grow on trees, either. In fact, the skill set is business analyst or lawyer, not IT guy, and tools for those folks are rare to non-existent.
  5. When you do have a solid policy rule, you will likely discover that the attributes needed to process it do not exist--they are not typically the kind of thing you find already in AD. Phone number is NOT useful as an AuthZ attribute, and even "Organization" is probably not appropriate for most law or regs you can actually document. That's not even mentioning the work-arounds and approximations you have to implement (and get approved) to express policy requirements like "probable cause."
  6. Relatively tractable, but still real, is that many very widespread COTS apps don't support external authorization, and many app-developers are not used to doing externalization, and so will (a) try to talk you out of it; or (b) learn it on your dime, and do it badly.

Sounds pretty bad, right? So, let me end by saying I think the game is worth the candle despite all this. The list of potential benefits is for another post at another time.

Good luck!

墨洒年华 2024-07-30 10:33:00

同意约瑟夫关于授权高度针对应用程序的观点。

但除此之外,外包授权还带来了一个重大风险问题:由于授权具有高度的应用特定性和粒度,一旦将授权外部化给服务提供商,迁移或替换该提供商几乎是不可能的任务。 你已经无可挽回地陷入困境了。

因此,在评估您的风险和收益时,商业推理会促使您避免如此严重的依赖。

Agree with Joseph's point on authorization being highly application specific.

But besides that, outsourcing authorization also brings in a major risk concern: since authorization is highly application specific and granular, once you externalize authorization to a service provider, migrating away or replacing that provider becomes a nearly impossible task. You are on the hook irrevocably.

So in evaluation of your risks and benefits, business reasoning drives you to avoid going with such a hard dependency.

泪是无色的血 2024-07-30 10:33:00

对于我个人来说,这是我第一次听说外部授权。
所以可能只是缺乏意识。

现在谷歌搜索..

For me personally, this is the first thing I have ever heard about external Authorization..
So it might just be lack of awareness.

Googling now..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文