问题标签 [geneva-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9488 浏览

wcf-security - 实现基于声明的安全性 (WCF/ASP.NET)

在研究了基于声明的安全(或联合安全模型)的主题之后。我遇到过许多使用CardSpace作为示例的示例。我读到的主要文章对这个主题给出了很好的解释,它是Microsoft 在一个名为Zermatt的框架上编写的PDF

我正在研究的基于声明的安全架构相当于实现STS身份验证代理和 STS 授权代理。这样,当我创建一个新服务时,我需要做的就是确保该服务只接受授权代理发出的声明。正如文章中所指出的,授权代理将只接受身份验证代理发出的声明。

设置完成后,任何时候客户端尝试使用新服务,它都必须通过Authentication Broker 进行身份验证(发出经过身份验证的声明),然后通过 Authorization Broker 获得授权(发出经过授权的声明)

这一切都很好,而且架构很清晰,但我不知道如何实现 STS。正如我所提到的,网络上的大多数(如果不是全部)示例都展示了如何使用 CardSpace,但是当您有一个数据库备份您的身份验证方案时,这并不完全有效。

示例场景

替代文字 http://img512.imageshack.us/img512/8329/claimsbasedsecurityza6.jpg

0 投票
2 回答
2401 浏览

federated-identity - 使用日内瓦框架创建本地令牌缓存

还没有看到很多与日内瓦相关的问题,我也在日内瓦论坛上发布了这个问题......

我正在处理一个场景,我们有一个具有广泛安装基础的 win forms 应用程序,它将在整个操作过程中对我们集中托管的各种服务发出频繁的调用。

这些服务都使用日内瓦框架,所有客户都应该首先调用我们的 STS 以获取令牌以允许访问服务。

开箱即用,使用 ws2007FederationHttpBinding,可以将应用程序配置为在每次服务调用之前从 STS 检索令牌,但显然这不是最有效的方式,因为我们几乎重复了调用服务的工作。

或者,我已经实现了从应用程序“手动”检索令牌所需的代码,然后在对服务调用操作时传递相同的预检索令牌(基于 WSTrustClient 示例和论坛上的帮助);效果很好,所以我们确实有一个解决方案,但我认为它不是很优雅,因为它需要在代码中构建 WCF 通道,远离美妙的 WCF 配置。

我更喜欢 ws2007FederationHttpBinding 方法,在这种方法中,客户端只需像任何其他 WCF 服务一样调用该服务,而无需了解有关日内瓦的任何信息,并且绑定负责令牌交换。

然后有人(乔恩辛普森)给了我 [我认为是] 一个好主意 - 添加一个服务,托管在应用程序本身中以缓存本地检索到的令牌。本地缓存服务将执行与 STS 相同的合约;当接收到请求时,它会检查是否存在缓存令牌,如果存在则返回它,否则它将调用“真实”STS,检索新令牌,缓存并返回它。客户端应用程序仍然可以使用 ws2007FederationHttpBinding,但不是将 STS 作为颁发者,而是使用本地缓存;

通过这种方式,我认为我们可以实现两全其美 - 在没有服务特定的自定义代码的情况下缓存令牌;我们的缓存应该能够处理所有 RP 的令牌。

我创建了一个非常简单的原型来看看它是否有效,并且 - 不幸的是有点不足为奇 - 我有点卡住了 -

我的本地服务(当前是控制台应用程序)获取请求,并且 - 第一次 - 调用 STS 以检索令牌,将其缓存并成功将其返回给客户端,随后客户端使用它来调用 RP。一切正常。

然而,第二次,我的本地 cahce 服务尝试再次使用相同的令牌,但客户端失败并出现 MessageSecurityException -

“安全处理器无法在消息中找到安全标头。这可能是因为消息是不安全的错误,或者是因为通信双方之间存在绑定不匹配。如果为安全配置了服务并且客户端是不使用安全性。”

是否有什么东西阻止了同一个令牌被多次使用?我对此表示怀疑,因为当我按照 WSTrustClient 示例重用令牌时,它运行良好;我错过了什么?我的想法可能吗?一个好?

这是本地缓存的(非常基本的,在这个阶段)主要代码位 -

0 投票
1 回答
366 浏览

asp.net - 在被动 STS 的依赖方中指定必需/可选声明类型

我有一个 asp.net 应用程序(依赖方),它使用被动 STS 进行身份验证和检索声明值。依赖方正在使用 FederatedAuthenticationModule (FAM) 来启用到 sts 的被动重定向。我找到了有关如何在使用 InformationCards 时指定所需声明的文档,但尚未找到有关如何使用 FAM 进行配置的详细信息。

有没有人有这方面的例子?我能找到的最接近的例子是在日内瓦框架示例中,但它们处理的是不适用的活动 STS 和 WCF。

提前致谢。

0 投票
1 回答
827 浏览

authorization - 从 ADFS 迁移到日内瓦框架

我的公司需要联合身份解决方案,作为 Microsoft 商店,我们希望使用 MS 技术来实现这一目标。

我们在生产中没有 Server 2008 或 .NET 3.5,因此我们仅限于基于 .NET 2.0/Server 2003 的解决方案。

这意味着(就联合身份解决方案而言)Active Directory 联合服务

ADFS 看起来不错,因为它支持 WS-Federation 标准,这意味着我们可以与不使用 Microsoft 技术的合作伙伴进行联合。

不幸的是(对我们来说),微软即将发布基于 .NET 3.5 的身份框架,即日内瓦框架

日内瓦框架似乎在各方面都优于 ADFS(主要是因为它是 ADFS 加上额外的功能和标准支持)。

由于我们不是 .NET 3.5 商店,并且 Geneva 仅处于测试阶段,因此目前这对我们来说不是一个可行的选择。

我的问题是:我们从 ADFS 搬到日内瓦有多难?

我们正处于 ADFS 的概念验证阶段,因此我们还没有开始深入研究从基于身份的授权转移到基于声明的 ADFS 所需的代码更改。我确信我们可以将这个逻辑放在一个可以更新以支持基于日内瓦声明的身份验证的程序集中。

除了所需的代码更改之外,将我们基于声明的基础架构从 ADFS 迁移到日内瓦会有多困难?(例如从 ADFS 的 STS(联合服务)迁移到日内瓦的 STS(日内瓦服务器))

感谢您对此主题的任何意见,非常感谢!

0 投票
2 回答
298 浏览

java - 从 Java 与 Microsoft 日内瓦服务器对话

有没有人尝试通过 Java 与 Microsoft Geneva Server 进行交互?

使用通用库的某种组合可以轻松完成吗?如果是这样:需要研究哪些重要的 Java 库/框架?

0 投票
2 回答
1779 浏览

federated-identity - Simple Claims Transformation for an RP-STS in Geneva Framework

After reading the MSDN article (http://msdn.microsoft.com/en-us/magazine/2009.01.genevests.aspx) on implementing a Custom STS using the Microsoft Geneva Framework I am a bit puzzled about one of the scenarios covered there. This scenario is shown in figure 13 of the above referenced article.

My questions are around how does the RP initiate the call to the RP-STS in order to pass on the already obtained claims from the IP-STS? How does the desired method DeleteOrder() get turned into a Claim Request for the Action claim from the RP-STS which responds with the Action claim with a value Delete which authorizes the call? I also think the figure is slightly incorrect in that the interaction between the RP-STS and the Policy Engine should have the Claims and arrows the other way around.

I can see the structure but it's not clear what is provided by Geneva/WCF and what has to be done in code inside the RP, which would seem a bit odd since we could not protect the DeleteOrder method with a PrincipalPermission demand for the Delete "permission" but would have to demand a Role first then obtain the fine-grained claim of the Delete Action after that point.

If I have missed the point (since I cannot find this case covered easily on the Web), then apologies!

Thanks in advance.

0 投票
2 回答
226 浏览

asp.net-mvc - asp.net mvc 安全性

如何禁止匿名访问我的 ASP.NET mvc 控制器?具体来说,我想要求对所有控制器进行身份验证访问,但允许匿名访问资源类型文件,例如 .css 和 .js 文件。不要像我使用 Microsoft Geneva 一样计划使用会员服务。

0 投票
2 回答
149 浏览

openid - 从应用程序中外化身份的趋势

Stackoverlow 决定使用 OpenID 可能是因为它的简单性,而其他人则认为信息卡(例如 cardspace)是一种更好的策略,因为它得到了主要行业供应商的支持并且众所周知更安全。

开发人员是否可以将库放入 Java Web 应用程序中,从而轻松支持两者?

0 投票
2 回答
318 浏览

.net - 日内瓦框架的替代方案

是否有Microsoft Geneva Framework的替代品(最好是开源的)。我们计划在生产环境中使用它,但看起来微软的许可证在日内瓦框架处于测试阶段时不允许这样做。

0 投票
1 回答
596 浏览

java - 基于日内瓦的 STS、Java 互操作

我想测试我的基于日内瓦的联合安全服务是否可以与 NetBeans/WSIT 一起使用。有没有类似分步指南的东西?服务器端使用“基于 HTTPS 的消息凭据”安全模式,而我看到的所有示例都依赖于消息级加密,并专注于从 Java RP 服务使用 .net STS。