.NET ADFS声称感知Web应用程序在收到有效令牌时返回到客户端浏览器的cookie是什么?

时间:2013-09-27 14:09:11

标签: .net iis-7 saml adfs

当客户端浏览器首次向Web应用程序提供有效的SAML令牌时(通过POST),应用程序将处理令牌并返回身份验证cookie。

此cookie是否是从表单身份验证返回的标准ASPXAUTH cookie,还是表示/包含SAML令牌?

如果是后者,那么IIS上的.NET Web应用程序的标准ADFS设置中是否有配置允许在验证初始令牌后切换到ASPXAUTH?

这样做会有不利之处吗?

1 个答案:

答案 0 :(得分:2)

作为登录过程的一部分,一旦收到并接受了令牌,WSFederationAuthenticationModule就会调用SessionAuthenticationModule s WriteSessionTokenToCookie方法:

public void WriteSessionTokenToCookie(SessionSecurityToken sessionToken)
{
    //Error checking omitted
    byte[] buffer = handler.WriteToken(sessionToken);
    SessionSecurityTokenCacheKey key = new SessionSecurityTokenCacheKey(this.CookieHandler.Path, sessionToken.ContextId, sessionToken.KeyGeneration);
    DateTime expiryTime = DateTimeUtil.Add(sessionToken.ValidTo, base.FederationConfiguration.IdentityConfiguration.MaxClockSkew);
    handler.Configuration.Caches.SessionSecurityTokenCache.AddOrUpdate(key, sessionToken, expiryTime);
    this.CookieHandler.Write(buffer, sessionToken.IsPersistent, sessionToken.ValidTo);
}

正如您所看到的那样,正在编写某种形式的令牌(适当地序列化)作为cookie。确切地说,这取决于某些选项 - 例如,SaveBootstrapContext可能会影响存储的内容。如果启用此选项,则是,我相信SAML令牌存储在cookie中。

那么,存储什么cookie?这取决于this.CookieHandler正在做什么。默认情况下,这是ChunkedCookieHandler,最终(再次,默认情况下)将上述方法调用的二进制blob分成多个较小的blob,并将其存储在{{1}形式的一系列cookie中},FedAuth1

  

IIS上的.NET Web应用程序的标准ADFS设置中是否有配置,以便在验证初始令牌后允许切换到ASPXAUTH

我不知道。