【问题标题】:SAML token assertion validationSAML 令牌断言验证
【发布时间】:2013-01-31 16:27:21
【问题描述】:

我正在将 SAMLP CTP 源用于基于 SAML 协议的 FSSO。我想在通过 Saml2AuthenticationModule 转换为 IClaimsPrincipal 之前以及在 SessionAuthenticationModule 生效之前在 SP 端拦截 SAML 令牌。

为什么? 我想对断言进行一些验证。如果一切正常,WIF 必须按照常规流程进行。如果不是,我必须避免创建 Fed cookie 和 SessionAuthenticationModule 会话。

另一种解决方案(但不是那么自然)是登录用户,然后在代码中验证断言。如果验证无法注销用户,但仅从这一应用程序而不是从联合中的所有应用程序注销。我不太确定如何做到这一点。我试过了:

SessionAuthenticationModule sam = FederatedAuthentication.SessionAuthenticationModule; sam.DeleteSessionTokenCookie(); sam.SignOut();

但它不起作用。

任何这种情况都适用于我。首先会更好,但我会满足此刻的任何一个。

问候, 拉斯特科

【问题讨论】:

    标签: wif


    【解决方案1】:

    您只需要在配置中注册一个声明身份验证管理器。这将在收到令牌之后和创建会话之前调用。

    我不会使用 SAML2 CTP。我认为这永远不会发布。

    【讨论】:

    • 谢谢leastprivilege,[1] 我在玩ClaimsAuthenticationManager,奇怪的是它是在调用我的IdP之前而不是之后调用的。其次,如何在Authenticate方法中访问令牌,它的签名是'code' public override Microsoft.IdentityModel.Claims.IClaimsPrincipal Authenticate(string resourceName, Microsoft.IdentityModel.Claims.IClaimsPrincipal incomingPrincipal) 所以我只得到声明 principal.Assertions 可以找到仅在 Saml2SecurityToken 中。 [2] 作为独立于所选 IDP 的通用解决方案,您会建议什么来代替 SAMLP CTP? Tnx
    • 在安全令牌处理程序将令牌转换为声明后调用 ClaimsAuthenticationManager。如果这对您来说没问题 - 那就是您的可扩展点。如果您需要更多控制,则需要编写自己的令牌处理程序。不幸的是,我没有给你一个好的答案。但使用此 CTP 并不能解决任何战略问题。
    • 感谢您的澄清
    猜你喜欢
    • 2021-05-28
    • 2015-05-19
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多