C# 软件开发人员不';授权是否外部化?

C# 软件开发人员不';授权是否外部化?,c#,java,.net,security,jaas,C#,Java,.net,Security,Jaas,身份外部化的价值主张开始增加,许多站点现在接受OpenID、CardSpace或联邦身份。然而,许多开发人员还没有采取下一步来具体化基于XACML的授权和使用方法 原因是缺乏意识还是别的什么?您希望如何学习基于Web的软件开发方法 请注意,我询问的是授权,而不是身份验证。我认为这取决于您从事的项目类型。如果客户希望存储授权,则无法使用OpenID。。。我使用谷歌应用程序引擎开发了一个小项目,因此我使用谷歌进行授权。因此,这在很大程度上取决于项目的类型。我们继续推出自己的项目的主要原因是,像ope

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

原因是缺乏意识还是别的什么?您希望如何学习基于Web的软件开发方法


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

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

我们继续推出自己的项目的主要原因是,像openid等选项似乎只有技术网站支持。我们是一个较小的玩家,所以我们不会开始使用外部提供商,直到有一个更大的用户接受度


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

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


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

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

我认为外部化授权的前景比外部化身份验证(OpenID、CardSpace等)困难得多。这主要是因为授权更具体于应用程序。在我的应用程序中授权某人做什么,他可能无法在你的应用程序中做,这甚至假设我的应用程序和你的应用程序之间存在某种共同的平行关系,而这很可能不会


我不想说外部化授权永远都不会实现,但老实说,我很难找到您真正想要这样做的原因。也许对于一套并行工作的应用程序来说,这很可能是内部支持的,而不是外部支持的。

一个问题是不是在这里发明的,而且对外部化的权威不信任(甚至是伪合法的)身份。这里有一篇很好的评论:


另外,我认为这可能是惯性。如果没有一个杀手级的应用程序来驱动它,人们迁移的速度会很慢。考虑到我最近看到的Facebook整合数量的增加,我认为我们正站在一个陡峭的斜坡上,即将进入这个世界。

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

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

1) 正如所指出的,授权!=认证。OpenID处理身份验证,但web应用所有者仍然可以完全控制分配给该登录的权限。这是一个积极的方面,但对这一点的混淆是一个消极的方面

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

3) 联邦ID的每个提供者都有能力(有些人会说有责任)跟踪其用户的所有活动,而不管他们将ID用于哪个站点。这就是为什么Google和Yahoo致力于提供联邦ID,但对使用它们却不那么兴奋的原因

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


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

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


Google now.

正如另一张海报所示,授权通常是特定于应用程序的。在一个应用程序中可以执行的操作与在另一个应用程序中可以执行的操作有很大差异。特别是在客户现成的应用程序中,授权通常由应用程序更自然地处理

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